Go Down

Topic: Fabrication d'une radiocommande (base nRF24L01+) (Read 4083 times) previous topic - next topic

sylvainmahe

#15
Jun 10, 2017, 11:05 pm Last Edit: Sep 24, 2017, 11:59 am by sylvainmahe
J'ai assemblé quelques autres petites cartes qui me seront utiles pour ce projet (entre autre), un buzzer piloté un peu plus proprement que connecté en direct (comme j'avais l'habitude de faire avant):

**** Photo supprimée, voir plus bas pour plus d'infos ****

Plan dispo au format Gerber ici: http://sylvainmahe.xyz/download/pcb/buzzer.zip

Liste des composants:
Quote
1x Buzzer piézoélectrique CUI1203 (diamètre 12mm, hauteur 8.5mm, écartement des broches 6.35mm)
1x Résistance 47Ω carbone 0.25W
1x Résistance 1kΩ carbone 0.25W
1x Condensateur 100nF céramique
1x Diode 1N4002
1x Diode Zener BZX85C5V1
1x Transistor 2N3904
3x Broches mâles 0.1"
Plus d'infos ici: http://sylvainmahe.xyz/projectBuzzer.html


Une distribution des pins:



Plan dispo ici: http://sylvainmahe.xyz/download/pcb/pin_header.zip

Liste des composants:
Quote
24x Broches mâles 0.1"
Plus d'infos ici: http://sylvainmahe.xyz/projectPinHeader.html


Régulateur de tension 3.3V pour alimenter le nRF24L01+ (et peut être un gyroscope):



Plan dispo ici: http://sylvainmahe.xyz/download/pcb/max604.zip

Liste des composants:
Quote
1x Régulateur de tension MAX604CPA
1x Résistance 100Ω carbone 0.25W
1x Condensateur 100nF céramique
2x Condensateurs 10μF électrolytiques radiaux
1x Diode 1N4002
1x Del 3mm
1x Support DIP 8 300mil
4x Broches mâles 0.1"
Plus d'infos ici: http://sylvainmahe.xyz/projectMax604.html

Il peut délivrer jusqu'à 500mA.



La petite famille réunie:

**** Photo supprimée, voir plus bas pour plus d'infos ****


Affaire à suivre ;)
http://sylvainmahe.xyz

sylvainmahe

Dual core :smiley-sweat:



La fine équipe quasiment au complet:



Y a plus qu'à monter tout ce merdier dans la radiocommande et dans mon quadri:

http://sylvainmahe.xyz

J-M-L

Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

sylvainmahe

Oui, c'est plus proche de la fin que du début ;)

La j'ai monté tout les inters et potars sur la radio, il reste 2 cartes à assembler: l'afficheur et la carte qui maintien l'alimentation (voir ici http://sylvainmahe.xyz/projectHoldSwitch.html).

Ensuite je dois créer le programme de la radio (ça c'est rien), et modifier le programme du quadri (c'est pas grand chose à faire non plus) donc maintenant ça va aller vite.


Je suis sur un nouveau projet de contrôleur brushless également, en revanche il va me falloir pas mal de mois de tests avant qu'il soit aussi performant que mes actuels esc achetés dans le commerce, mais j'y travaille:




J'en suis à la digitalisation du bemf, ça fonctionne mais ça ne dépasse pas le mi-gaz (décrochage du moteur), donc j'essaye de voir d'où ça vient. Peut être un composant pas assez rapide.
http://sylvainmahe.xyz

J-M-L

super

où faites vous créer vos PCB violets ?
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

sylvainmahe


Tout mes PCB sont commandés chez pcbway.com

Une fois les prototypes sur plaque d'essai validés bien entendu, sauf pour ce cas la, ou j'en étais (et j'en suis toujours) encore à l'état de prototype... ...voir la précédente version qui m'avait explosé au visage avec une gerbe d'étincelle caractéristique ( :smiley-sweat: ):




La qualité avec cette usine pcbway est vraiment excellente, sans parler de grandes dimensions comme ce contrôleur brushless (ou la c'est pas donné), la plupart des pcb me coûtent 5$ pour 5 exemplaires + 10$ de frais de port.

On peut donc commander chez eux des pcb pour seulement 15$ avec une qualité vraiment exceptionnelle (en tout cas pour un amateur comme moi, je ne sais pas ce qu'en dirait un professionnel).


...Ce matin je me suis amusé à souder une face de l'afficheur à digits de la radiocommande:



L'autre face sera soudée quand j'aurais reçu mes 7 segments à implanter sur l'autre face:



Cet afficheur donnera toutes les infos, tension de la batterie en temps réel à bord du modèle, température, valeurs des trims, inversion des voies, etc...
http://sylvainmahe.xyz

sylvainmahe

Petite news,

J'ai un peu avancé concernant la radiocommande, j'ai presque fini de programmer le main.cpp, et un modèle lambda qui marchera avec, j'attends un nouveau PCB d'un nouvel automate basé sur le 644P (voir explications plus bas), voila quelques photos du projet pour l'instant:




Concernant l'automate basé sur le 644p, il ne tiens pas tout à fait ses promesses concernant le régulateur de tension LT1073, ce qui à vachement retardé le projet:



En effet, ce petit régulateur à découpage est super, il est équipé d'un transistor de puissance 1A, il est petit en boîtier DIP8, mais en réalité on s'aperçoit qu'on peine à lui faire cracher 500mA. Ce que j'ai constaté sur mes 2 cartes, c'est que le régulateur fait un bruit un peu désagréable, un sifflement, vous me direz c'est bien un régulateur à découpage... Certes il ne chauffe pas, mais il est vite à genoux pour pas grand chose malgré les condensateurs qu'il y a en aval.

Rajouter à ceci, en fonction de la tension d'entrée, l'inductance calculée n'est plus trop optimisée, mais ça je m'en doutais bien.

La 2ème erreur que j'ai fait sur cette carte, c'est le pont redresseur, j'ai été surpris d'apprendre que mes diodes 1n4002 me faisaient une descente de 0.85V x 2 soit 1.7V
Du coup, en comptant le voltage dropout du LT1073, on se retrouvait avec 5V + 2V environ (dropout) + 1.7V de redressement , bref le low voltage se situait à 8.7V , génial quand on branche une batterie dont la tension nominale est à peut prêt à 9.6V ! :) On a 0.9V d'autonomie.

Par contre, j'ai testé des diodes Schottky que j'avais en stock, des 1N5819 abaissent la tension de seulement 0.35V par diode, ce qui nous fait 0.7V pour le pont redresseur, c'est déjà beaucoup mieux !



Bref, ceci étant et préférant dissiper l'énergie en chaleur plutôt qu'en bruit énervant, je préfère repartir sur mes premières idées, j'ai donc opté pour une régulation à base d'un LM7805 qui ne sera pas équipé d'un dissipateur thermique puisque il ne débitera qu'environ 250mA max, et sera assisté d'un transistor Darlington BD646 de 8A max.

Je me suis inspiré de ces 2 schémas très connus:
http://deltajp.pagesperso-orange.fr/montages/renfor78.html
https://www.sonelec-musique.com/electronique_realisations_alim_sym_010.html


Sans changer les dimensions de ma carte, j'ai réussi à caser une régulation linéaire, le nouveau plan de cet automate programmable avec régulation costaud est dispo ici: http://sylvainmahe.xyz/projectAtmega644p.html

Les photos arriveront quand j'aurais reçu la plaque PCB et monté une carte ;)
http://sylvainmahe.xyz

sylvainmahe


Avant, la régulation à découpage:


Après, la régulation linéaire:
http://sylvainmahe.xyz

sylvainmahe

J'ai pas mal avancé sur ma radiocommande, le code source est totalement fini (en 4 semaines), il fait 4000 lignes environ, et sera bientôt disponible en téléchargement ;)

En attendant, voici les caractéristiques de ma radiocommande:
Quote
- Automate programmable MODULABLE M32 équipé du microcontrôleur ATmega1284P.
- Émetteur/récepteur radio 2.4Ghz (composant nRF24L01+, portée 1km environ).
- Communication bi-directionelle.
- Antenne Trèfle omnidirectionnelle 3 branches.
- Communication par trames de 32 bits.
- Affichage digital avec afficheur à digits MAX7219.
- Buzzer de signalement.
- Système à tolérance de pannes (fail-safe) envoyé au modèle sur 6 bits (0 à 63).
- 1 menu principal + 1 menu des paramètres/réglages.
- Réglage de la tension de batterie faible du modèle (de 0V à 100V).
- Réglage d'une temporisation (de 0s à 3600s).
- 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.
- Jusqu'à 16 paramètres/réglages personnalisés envoyés par le modèle.
- Verrouillage des menus (plus de réglages possibles, ni d'extinction de la radiocommande).
- Affichage de la tension de la batterie de la radiocommande.
- Alarme (visuelle et sonore) niveau de batterie faible de la radiocommande.
- Affichage de la tension de la batterie du modèle.
- Alarme (visuelle et sonore) niveau de batterie faible du modèle (si paramétrée).
- Affichage d'une temporisation (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 personnalisés.
- Menu de mise à jour des paramètres/réglages du modèle.
- Allumage ou extinction de la radiocommande ou du modèle dans n'importe quel ordre.
- Accumulateur NIMH (+1.2V par élément) 8S 600mAh (+9.6V).
- Prise de charge de la batterie (XT30).
- Boîtier fermé en Aluminium, Acier inoxydable, bois (contreplaqué 5mm), et Ertalon.
- Dimensions: 214mm x 204mm x 117mm.
L'interface physique:
Quote
- 2 manches analogiques (1 gaz/rouli + 1 tangage/lacet) sur 10 bits (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 du menu sur 10 bits (0 à 1023).
- 1 bouton poussoir de sélection du menu (2 positions, dont 1 momentanée) sur 1 bit (0 à 1).
- 1 interrupteur d'alimentation maintenue on/off (2 positions).
Pour plus d'infos et si vous souhaitez en savoir plus, tout est expliqué ici: http://sylvainmahe.xyz/projectRadioControl.html

N'hésitez pas si vous avez des questions que je n'évoque pas dans l'article ;)
http://sylvainmahe.xyz

sylvainmahe

Petite info, j'ai à présent spécialisé et optimisé ma bibliothèque MODULE pour 8 microcontrôleurs qui peuvent équiper mes 2 automates programmables, c'est à dire l'ATmega48P, l'ATmega88P, l'ATmega168P et l'ATmega328P qui peuvent équiper mon automate MODULABLE M20, et l'ATmega164P, l'ATmega324P, l'ATmega644P et l'ATmega1284P qui peuvent équiper mon automate MODULABLE M32.


Dans le dossier module téléchargeable sur mon site vous trouverez donc maintenant 8 répertoires:
atmega48p
atmega88p
atmega168p
atmega328p
atmega164p
atmega324p
atmega644p
atmega1284p


Mes routines de compilation pour linux et windows (également dispos dans l'archive de MODULE) qui utilisent avr-gcc, avr-dude, etc.. détectent automatiquement le microcontrôleur qui équipe la carte électronique.

Je recopie ici les différences notables entre les différents microcontrôleurs:
Quote
Microcontrôleur ATmega48P:
- Mémoire Flash = 4096 octets (4k)
- Mémoire EEPROM = 256 octets (0.25k)
- Mémoire SRAM = 512 octets (0.5k)

Microcontrôleur ATmega88P:
- Mémoire Flash = 8192 octets (8k)
- Mémoire EEPROM = 512 octets (0.5k)
- Mémoire SRAM = 1024 octets (1k)

Microcontrôleur ATmega168P:
- Mémoire Flash = 16384 octets (16k)
- Mémoire EEPROM = 512 octets (0.5k)
- Mémoire SRAM = 1024 octets (1k)

Microcontrôleur ATmega328P:
- Mémoire Flash = 32768 octets (32k)
- Mémoire EEPROM = 1024 octets (1k)
- Mémoire SRAM = 2048 octets (2k)
Quote
Microcontrôleur ATmega164P:
- Mémoire Flash = 16384 octets (16k)
- Mémoire EEPROM = 512 octets (0.5k)
- Mémoire SRAM = 1024 octets (1k)

Microcontrôleur ATmega324P:
- Mémoire Flash = 32768 octets (32k)
- Mémoire EEPROM = 1024 octets (1k)
- Mémoire SRAM = 2048 octets (2k)

Microcontrôleur ATmega644P:
- Mémoire Flash = 65536 octets (64k)
- Mémoire EEPROM = 2048 octets (2k)
- Mémoire SRAM = 4096 octets (4k)

Microcontrôleur ATmega1284P:
- Mémoire Flash = 131072 octets (128k)
- Mémoire EEPROM = 4096 octets (4k)
- Mémoire SRAM = 16384 octets (16k)
N'hésitez pas si vous avez des interrogations ;)
http://sylvainmahe.xyz

J-M-L

#25
Aug 17, 2017, 12:10 pm Last Edit: Aug 17, 2017, 12:11 pm by J-M-L
Bon exercice intellectuel que de "partir from scratch" pour le code et les cartes - mais pas forcément sa place ici qui reste le forum de discussion "Arduino" sur lequel les participants utilisent des librairies et cartes s'intégrant dans cette chaîne de production (cette partie du forum s'appelant "Présentations de projets complets ou de réalisations à base d'Arduino")




Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

sylvainmahe

Bonjour, j'ai écrit un nouveau paragraphe sur mon site pour expliquer une fonctionnalité qui peut vous intéresser: Système multidirectionnel (multiceiver) ;) (voir: http://www.sylvainmahe.site/projectRadioControl.html).


Le système de radiocommande 2.4GHz que je propose ici permet la communication multidirectionnelle entre la radiocommande et un ou plusieurs modèles, autorise le dialogue entre les modèles eux-mêmes (réseau d'émetteurs/récepteurs, ou multiceivers), et rend possible l'ajout de plusieurs émetteurs/récepteurs (tranceivers) embarqués dans un même véhicule (pour les gros modèles notamment).

Tout projet est alors possible, sans même évoquer le modélisme piloté dont il est question ici:
Quote
Par exemple des applications robotiques mettant en œuvre des réseaux de robots qui communiquent entre-eux, et bien d'autres projets encore. Libre à vous d'imaginer vos propres applications en fonction de vos besoins !
Ce principe d'émetteur/récepteur intégré donne également la possibilité à l'utilisateur d'effectuer des communications longues distances en basse puissance d'émission (inférieure à 100mW), ceci par transmission de données de la radiocommande vers des périphériques relais qui se chargent non pas de traiter l'information et de l'utiliser, mais plutôt de la relayer vers d'autres périphériques afin d'atteindre la portée radio vers le modèle.
Quote
Cette propriété de pouvoir recevoir et émettre avec de multiples périphériques ainsi que de relayer l'information, est effectué de manière complètement transparente pour l'utilisateur ou le programmeur via l'utilisation de ma classe Nrf24l01p.h.
Il est envisageable d'imaginer un robot d'exploration de décombres hors de portée radio directe avec le poste de pilotage (à cause des bardages métalliques des bâtiments par exemple), mais étant à portée radio de plusieurs relais qui se chargent seulement de transmettre (relayer) les informations aux téléopérateurs.

Quote
Toutes ces propriétés multidirectionnelles (multiceivers) sont à définir non pas dans la radiocommande, mais uniquement à la conception des programmes à bord de vos modèles, robots, et autres systèmes embarqués (libre à chacun de créer une logique en rapport avec le type de système piloté).
À noter que les paragraphes qui relatent de l'utilisation de ma radiocommande sur mon site font état d'une utilisation avec un seul modèle, car c'est mon application principale (l'aéromodélisme). Néanmoins tout ce qui est expliqué (utilisation des menus, fonctionnalités, etc...) fonctionne avec plusieurs modèles (suivant la logique que vous avez programmé dans leurs microcontrôleurs respectifs bien entendu).



Dans les caractéristiques de la radiocommande j'ai donc rajouté:
- 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.

;)
http://sylvainmahe.xyz

Artouste

Bonjour Sylvain
je vais lire ça avec intérêt 8)  

sylvainmahe

J'ai monté hier la dernière version de mes automates programmables 32 entrées/sorties et courant max de 8A qui iront à bord du quadri et de la radiocommande si vous voulez voir:



La régulation de tension est linéaire et est basée sur un simple LM7805 assisté par un transistor Darlington BD646 (schéma inspiré de celui-ci: http://deltajp.pagesperso-orange.fr/montages/renfor78.html)

Description et plus de photos ici: http://www.sylvainmahe.site/projectModulableM32.html


J'ai monté également une version améliorée de mon buzzer:


Voir description complète et plan de la carte: http://www.sylvainmahe.site/projectBuzzer.html
http://sylvainmahe.xyz

J-M-L

super photos !

curieux sur les pins qui dépassent vers le haut - je suppose que c'est  pour votre version de test et que dans l'embarqué vous souderez directement sur une carte et donc avec les pins en dessous ?

Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

Go Up