Sections > Vos projets et Montages d'Électronique

La radiocommande de modélisme

(1/2) > >>

sylvainmahe:
Bonjour à  vous,

Je profite de ce forum qui nous est mis à  disposition afin de vous présenter plus ou moins succintement un projet de radiocommande, pour les personnes intéressées.

Ce projet de radiocommande est la suite logique de mon intérêt et de mes convictions pour un modélisme aérien tel qu'il devrait être pratiqué, c'est-à -dire la conception et la fabrication de systèmes radio-pilotés en partant réellement de zéro.





À partir des premières ébauches sur papier, études des possibilités et contraintes techniques, schémas des circuits électroniques, conception des programmes dans la radiocommande et les modèles associés, dessins du boîtier et définition des différentes pièces d'usinage (etc...), jusqu'à  la finalisation du projet, il aura fallu plus d'une année de conception, fabrication, et tests de validation.

Les caractéristiques de la radiocommande :
- Automate programmable MODULABLE 32 équipé du microcontrôleur ATmega1284P.
- Émetteur/récepteur (transceiver) radio 2.4GHz (composant nRF24L01+).
- Antenne Trèfle omnidirectionnelle 3 branches (7dBm).
- Communication multidirectionnelle vers (sol/air air/sol) et entre (air/air) plusieurs modèles.
- Communication vers périphériques relais pour applications longues distances basse puissance.
- Communication par trames de 32 bits.
- Affichage digital avec mini afficheur à  digits.
- Buzzer de signalement.
- Système à  tolérance de pannes (fail-safe) sur 5 bits (0 à  31).
- Surveillance de l'activité du modèle (watchdog) sur 5 bits (0 à  31).
- 1 menu principal + 1 menu des paramètres/réglages.
- Aucune mémoire de modèles (la mémoire est située dans les modèles).
- Possibilité de copier les réglages d'un modèle vers un autre très facilement.
- 15 paramètres/réglages par défaut envoyés par le modèle.
- Réglage des trims (autour des neutres) des manches de gaz/roulis et profondeur/lacet.
- Réglage d'une alarme (visuelle et sonore) tension de batterie faible du modèle (de 0V à  100V).
- Réglage d'une alarme (visuelle et sonore) temporisation/chronomètre (de 0s à  3600s).
- Réglage de l'inversion des manches de gaz/roulis et profondeur/lacet.
- Réglage de courbes des manches de gaz/roulis et profondeur/lacet.
- Jusqu'à  16 paramètres/réglages personnalisés supplémentaires envoyés par le modèle.
- 5 paramètres/réglages par défaut propres à  la radiocommande.
- Calibration des potentiomètres des manches et auxiliaire (si remplacement/autre).
- Verrouillage des menus (plus de réglages possibles, ni d'extinction de la radiocommande).
- Affichage de la tension de la batterie de la radiocommande.
- Affichage de la tension de la batterie du modèle.
- Affichage d'une temporisation/chronomètre (temps d'utilisation du modèle/autre).
- Affichage des trims (verrouillage et remise à  0 possible par le bouton de sélection).
- Affichage d'une télémétrie personnalisée.
- Affichage des paramètres/réglages par défaut et personnalisés.
- Menu de mise à  jour des paramètres/réglages du modèle.
- Menu de sauvegarde des réglages propres à  la radiocommande.
- Allumage ou extinction de la radiocommande ou du modèle dans n'importe quel ordre.
- Accumulateur Nickel-hydrure métallique (NiMH) 8S (+9.6V) 600mAh.
- Alarme niveau de batterie faible (en dessous de +6V).
- Prise de charge de la batterie (XT30).
- Prise de programmation du microcontrôleur (mini XLR).
- Boîtier fermé en aluminium, acier inoxydable, bois (contreplaqué 5mm), et ertalon.
- Dimensions : 214mm x 205mm x 118mm.



L'interface électromécanique entre l'homme et la machine :
- 2 manches analogiques (1 gaz/roulis + 1 tangage/lacet) sur 10 bits chacun (0 à  1023).
- 4 interrupteurs de trims (3 positions) sur 2 bits chacun (0 à  2).
- 1 interrupteur de coupure moteur/autre (2 positions) sur 1 bit (0 à  1).
- 3 interrupteurs auxiliaires (3 positions) sur 2 bits chacun (0 à  2).
- 1 bouton rotatif auxiliaire sur 10 bits (0 à  1023).
- 1 bouton rotatif de sélection/menus sur 10 bits (0 à  1023).
- 1 bouton poussoir de sélection/menus (2 positions, dont 1 momentanée) sur 1 bit (0 à  1).
- 1 interrupteur d'alimentation maintenue on/off (2 positions).



Programmation de l'automate programmable MODULABLE 32 avec MODULE :
Le programme en langage C++ fonctionnant avec MODULE est téléchargeable ici : http://www.sylvainmahe.site/download/cpp/radio_control.zip



Connexions (automate programmable MODULABLE 32 sur les différents systèmes embarqués) :
- Port GPIO 1 (PB0) sur broche STATE (état) interrupteur d'alimentation maintenue.
- Port GPIO 2 (PB1) sur broche HOLD (auto-maintien) interrupteur d'alimentation maintenue.
- Port GPIO 3 (PB2) sur broche SS (slave select) mini afficheur à  digits.
- Port GPIO 4 (PB3) sur broche WAVE (onde) buzzer de signalement.
- Port GPIO 5 (PB4) sur broche CSN (slave select) composant nRF24L01+.
- Port GPIO 6 (PB5) sur broche MOSI (master output slave input) mini afficheur à  digits et composant nRF24L01+.
- Port GPIO 7 (PB6) sur broche MISO (master input slave output) composant nRF24L01+.
- Port GPIO 8 (PB7) sur broche SCK (serial clock) mini afficheur à  digits et composant nRF24L01+.
- Port GPIO 9 (PD0) sur bouton poussoir de sélection/menus.
- Port GPIO 10 (PD1) sur interrupteur de coupure moteur/autre.
- Port GPIO 11 (PD2) sur interrupteur auxiliaire A (position 1).
- Port GPIO 12 (PD3) sur interrupteur auxiliaire A (position 3).
- Port GPIO 13 (PD4) sur interrupteur auxiliaire B (position 1).
- Port GPIO 14 (PD5) sur interrupteur auxiliaire B (position 3).
- Port GPIO 15 (PD6) sur interrupteur auxiliaire C (position 1).
- Port GPIO 16 (PD7) sur interrupteur auxiliaire C (position 3).
- Port GPIO 17 (PC0) sur interrupteur trim de gaz (position 1).
- Port GPIO 18 (PC1) sur interrupteur trim de gaz (position 3).
- Port GPIO 19 (PC2) sur interrupteur trim de tangage (position 1).
- Port GPIO 20 (PC3) sur interrupteur trim de tangage (position 3).
- Port GPIO 21 (PC4) sur interrupteur trim de roulis (position 1).
- Port GPIO 22 (PC5) sur interrupteur trim de roulis (position 3).
- Port GPIO 23 (PC6) sur interrupteur trim de lacet (position 1).
- Port GPIO 24 (PC7) sur interrupteur trim de lacet (position 3).
- Port GPIO 25 (PA7) sur curseur bouton rotatif de sélection/menus.
- Port GPIO 26 (PA6) sur curseur manche analogique des gaz.
- Port GPIO 27 (PA5) sur curseur manche analogique de tangage.
- Port GPIO 28 (PA4) sur curseur manche analogique de roulis.
- Port GPIO 29 (PA3) sur curseur manche analogique de lacet.
- Port GPIO 30 (PA2) sur curseur bouton rotatif auxiliaire.
- Port GPIO 31 (PA1) sur broche VOLT (tension) interrupteur d'alimentation maintenue.

Le concept de cette radiocommande :

Depuis les premiers temps ou je pilote des modèles radiocommandés dans des associations d'aéromodélisme jusqu'à  aujourd'hui, je me suis souvent demandé et au vu de l'avancée précédente et actuelle en matière d'électronique embarquée :
Mais pourquoi donc les radiocommandes du commerce ont-elles des mémoires de modèles ? Les mémoires de modèles permettent en effet de retenir les réglages relatifs à  un modèle, dans la mémoire de la radiocommande.

À ce propos je ne citerais que l'exemple d'un ami au terrain de modélisme sans le nommer, qui par mégarde se trompe assez régulièrement de mémoire de modèles (il vole avec beaucoup de choses). En conséquence cela lui arrive souvent d'écraser ses réglages, ou d'écraser son modèle tout simplement au sens physique du terme !

En fait, cette "lacune" des mémoires de modèles dans les radiocommandes modernes trouve historiquement ses racines dans la conception même des premiers radio-émetteurs/récepteurs de modélisme. En effet, les premières radiocommandes se contentaient uniquement d'être émetteur d'information, et le modèle étant lui simplement un récepteur. Dans cette situation (unidirectionnelle), il est facile de comprendre que le modèle reste toujours muet. Plus tard, les concepteurs et divers industriels se sont décidés (au vue de la demande qui augmentait) à  ajouter une communication du modèle vers la radiocommande, sur un circuit électronique bien distinct et avec une antenne radio supplémentaire sur le modèle et la radiocommande. C'est un retour air/sol qui a été appelé télémétrie (en rapport avec la télémétrie à  l'époque des débuts de la conquête spatiale jusqu'à  nos jours).

L'avancée en matière de miniaturisation des composants permet aujourd'hui d'avoir dans une même puce un émetteur et un récepteur, qui se sert de la même antenne radio pour communiquer, ces systèmes sont appelés transceivers (émetteurs/récepteurs).



Le concept que je développe ici permet de vous expliquer l'idée même de ma radiocommande, celle-ci n'a en effet aucune mémoire de modèles, ayant souhaité aller au bout de ma logique, c'est le modèle qui contient la mémoire .

Cette idée simple permet beaucoup de choses, notamment le fait que c'est le modèle qui envoi des paramètres et réglages personnalisés à  la radiocommande, qui à  l'origine dispose d'un menu des paramètres et réglages vide. La radiocommande se voit alors garnie de paramètres personnalisés relatifs au modèle qui est actuellement en communication avec elle. Ces paramètres peuvent être de n'importe quel type et agir sur n'importe quelle fonction du modèle. Ce retour radio air/sol permet également à  la radiocommande de disposer de l'affichage de la tension de la batterie du modèle en temps réel, et d'une télémétrie personnalisée en fonction du modèle. Une fois cette notion comprise, tout est alors possible. Pour régler votre modèle, ma radiocommande dispose alors de 15 paramètres par défaut qui en général sont assez communs aux modèles réduits (trims, alarmes, inversion des voies, courbes de gaz, etc...), et d'un maximum de 16 paramètres personnalisés par le modèle (dont le type de paramètre n'est pas défini par défaut). Ceci est largement suffisant parce que par définition même, ces paramètres sont spécifiques au modèle considéré. Terminé les réglages et menus à  n'en plus finir (souvent la plupart du temps inutilisés) dans les radiocommandes du commerce !



Dans ce que je propose ici, vous disposez des réglages uniquement nécessaires au modèle mis en oeuvre, ce qui facilite grandement son utilisation sur le terrain de modélisme.


Liens utiles si vous êtes intéressés par mon projet :

Descriptif complet de la radiocommande : http://www.sylvainmahe.site/projectRadioControl.html
L'automate programmable MODULABLE 32 : http://www.sylvainmahe.site/projectModulable32.html
Un projet associé, le quadri-hélicoptère : http://www.sylvainmahe.site/projectQuadcopter.html
Le programme MODULE avec lequel je programme tous mes projets : http://www.sylvainmahe.site/understandWhatIsModule.html
 

Je vais essayer d'agrémenter ce sujet si besoin et de fournir des explications si des personnes sont intéressés. Je suis ouvert aux suggestions, commentaires, et interrogations :)

Bonne soirée à  vous tous.


Électro-Bidouilleur:
Wow!

Curiosus:
Bonjour sylvainmahe, et tout le forum,

 8) Très belle conception, chapeau l'artiste, pas grand chose à  dire dessus, je fais moi même du modélisme dans le domaine de l’hélicoptère seulement, une question que je me pose vu la complicité de cette télécommande.

Ne pas répondre si ça te gêne,  tu fais quoi comme métier ?

Parce que la ça demande pas mal de connaisance technique sur tout point de vu....

J'ai vu aussi ton compteur Geiger, impressionnant, super bien fait, il existe des photodiodes bpw34 pour détection de la radioactivité l'avantage c'est que tu n'as pas besoin de haut tension, donc, beaucoup moins dangereux, car même si c'est bien protégé le risque est là .

J'ai une question concernant L'interface de communication USB

Avec le MCP2221 tu utilises quelle protocole(Eusart, I²C, SPI) sur ton microcontrôleur, pour communiquer avec l'ordinateur ?

 A+ 

Curiosus:
Bonjour sylvainmahe, et tout le forum,


--- Citer ---Écrit par sylvainmahe : Vous en faites dans quelle région ?
--- Fin de citation ---

Je pratique l'hélicoptériste dans la région àŽle-de-France

 8) Chapeau pour un autodidacte, et de plus qui n'est pas du tout du métier......  je suis pour ma part un de cela, et pour moi c'est pas toujours facile, car les datasheet tout en anglais :-\ même avec Google traduction j'ai du mal à  les comprendre.


--- Citer ---Écrit par sylvainmahe : Par contre je doute fortement de la sensibilité, un sbm20 par exemple a beaucoup plus de surface, et un lnd712 comme j'utilise est sensible aux Alpha
--- Fin de citation ---

Question surface, tout dépend de la quantité des photodiodes bpw34 que tu vas utiliser, quand à  la sensibilité ça dépends de ton ampli.

De plus c'est photodiodes sont sensibles aux Alpha, d'après ce que j'ai pu lire
 
Voici un montage à  base de cette photodiode : http://home.earthlink.net/~bat-detector/Loggers/RadMon.html


--- Citer ---Écrit par sylvainmahe : j'ai supprimé cette page car je n'ai jamais réussi (j'ai pas beaucoup essayé certes) à  faire communiquer le MCP2221
--- Fin de citation ---

Le MCP2221 à  un bug, il faut prendre le MCP2221A

Sur le site de Microchip tu peux consulter l'errata du MCP2221 ou il mentionne l'erreur, bon tout est en anglais >:(

Lien sur l'errata du MCP2221 : https://www.microchip.com/wwwproducts/en/MCP2221

Lien du MCP221A : https://www.microchip.com/wwwproducts/en/MCP2221A


--- Citer ---Écrit par sylvainmahe : C'est du TWI le protocole (l'équivalent de l'I2C mais chez mocrochip).
--- Fin de citation ---

Je connais bien les composants de chez Microchip, car je travaille beaucoup avec, si tu communiques en I²C c'est pas le plus simple.
pourquoi n'avoir pas pris le protocole Eusart qui est présent sur le MCP2221


--- Citer ---Écrit par sylvainmahe : Par contre ce que je vais proposer bientôt est 100 fois mieux, de mon point de vu. Ce sera une interface RS232 relié en USART au microcontrôleur
--- Fin de citation ---

MAX3232 pour une vrai RS232 c'est ce qui se fait de plus simple


--- Citer ---Écrit par sylvainmahe : Certains le considèrent comme obsolète
--- Fin de citation ---

C'est vrai qu'il est obsolète, mais comme les industrielles ne veulent pas changer toutes leurs machines, il garde ce protocole ;).


A+

Curiosus:
Bonjour sylvainmahe, et tout le forum,


--- Citer ---Écrit par sylvainmahe : Certains le considèrent comme obsolète mais en réalité dans l'industrie et les labos il est très utilisé
--- Fin de citation ---

Quand je parle d'obsolète, c'est par rapport à  ce que vous avez dit, d'abord vous précisez bien certain pour ma part je trouve que cette prise RS232 à  encore de beau jour devant elle.

Ton gyroscope sur ton quadri-hélicoptère, si je me trompe pas c'est un MPU-6050  https://www.ebay.fr/itm/New-MPU-6050-3-Axis-Accelerometer-Gyroscope-Sensor-Module-GY-521-for-Arduino-FR/122878352223?hash=item1c9c1edb5f:g:stkAAOSwv-ZaQKqW

Tu pilotes tes contrôleurs moteurs, par l'intermédiaire de ton microcontrôleur, tu le fais par PWM avec modulation de largeur d'impulsion ?

A+
 

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique