Table des matières:

UChip - Simple croquis pour télécommander des moteurs et/ou des servos via une radio Tx-Rx à 2,4 GHz ! : 3 étapes
UChip - Simple croquis pour télécommander des moteurs et/ou des servos via une radio Tx-Rx à 2,4 GHz ! : 3 étapes

Vidéo: UChip - Simple croquis pour télécommander des moteurs et/ou des servos via une radio Tx-Rx à 2,4 GHz ! : 3 étapes

Vidéo: UChip - Simple croquis pour télécommander des moteurs et/ou des servos via une radio Tx-Rx à 2,4 GHz ! : 3 étapes
Vidéo: #171 Руководство Arduino по инфракрасной (ИК) связи также для ESP32 и ESP8266. 2024, Juillet
Anonim
Image
Image
UChip - Simple croquis pour télécommander des moteurs et/ou des servos via une radio Tx-Rx de 2,4 GHz !
UChip - Simple croquis pour télécommander des moteurs et/ou des servos via une radio Tx-Rx de 2,4 GHz !
UChip - Simple croquis pour télécommander des moteurs et/ou des servos via une radio Tx-Rx de 2,4 GHz !
UChip - Simple croquis pour télécommander des moteurs et/ou des servos via une radio Tx-Rx de 2,4 GHz !

J'aime beaucoup le monde RC. L'utilisation d'un jouet RC vous donne le sentiment de contrôler quelque chose d'extraordinaire, même s'il s'agit d'un petit bateau, d'une voiture ou d'un drone !

Cependant, il n'est pas facile de personnaliser vos jouets et de leur faire faire ce que vous voulez qu'ils fassent. Habituellement, vous êtes contraint d'utiliser les paramètres par défaut de l'émetteur ou les combinaisons spécialement conçues de commutateurs et de boutons.

Il est assez difficile de tout contrôler comme vous le souhaitez, principalement parce que le monde RC nécessite une connaissance assez approfondie de la programmation au niveau matériel afin d'en tirer le meilleur parti.

J'ai essayé de nombreuses plates-formes et configurations, mais cela a toujours coûté un effort énorme afin de me familiariser suffisamment avec le code avant de personnaliser réellement mon jouet RC.

Ce qui me manquait, c'est un simple croquis que je pouvais charger à l'aide de l'IDE Arduino et qui me permettrait facilement de traduire les valeurs sortant de la radio RX (récepteur) dans le contrôle moteur/servo souhaité.

Par conséquent, voici ce que j'ai créé après avoir joué un peu avec uChip et l'IDE Arduino: Un croquis simple pour contrôler à distance des moteurs et/ou des servos via une radio Tx-Rx 2,4 GHz !

Nomenclature

1 x uChip: carte compatible Arduino IDE

1 système radio xTx-Rx: tout système radio avec récepteur cPPM est bon (mon combo est un ancien Spectrum DX7 Tx + Orange R614XN cPPM Rx), assurez-vous de suivre la bonne procédure de liaison afin de lier le Tx et le Rx.

1 x batterie: des batteries à courant de décharge élevé sont nécessaires pour les moteurs et les servos.

Moteurs/Servos: selon vos besoins

Composants électroniques pour piloter les moteurs/servos: des résistances simples, des MOSFET et des diodes vous permettent d'accomplir l'objectif de pilotage.

Étape 1: Câblage

Câblage
Câblage
Câblage
Câblage
Câblage
Câblage
Câblage
Câblage

Câblez les composants ensemble comme décrit dans les schémas.

Le Rx est connecté directement à uChip et ne nécessite aucun composant externe. Si vous utilisez un autre récepteur, vérifiez si vous avez besoin d'un levier de niveau ou non. Assurez-vous de connecter le signal cPPM à uChip PIN_9 (qui est PORTA19 au cas où vous voudriez adapter le code à une autre carte SAMD21).

Le reste du câblage est nécessaire pour piloter le moteur et/ou le servo. Le schéma ci-joint représente le circuit de base afin de protéger uChip contre les pointes/dépassements qui se produisent généralement lors de la conduite de charges inductives. Le composant clé pour préserver la sécurité uChip est la diode Zener d'alimentation de 5,1 V (D1 dans le schéma) que vous devez mettre en parallèle avec le VEXT (uChip broche 16) et GND (uChip broche 8). Alternativement, au lieu d'utiliser la diode Zener, vous pouvez opter pour les circuits en option représentés par D2, C1 et C2, qui empêchent les pointes inverses d'endommager les composants uChip.

Vous pouvez piloter autant de moteurs/servos que vous le souhaitez en répliquant simplement le schéma et en changeant les broches de commande (vous pouvez utiliser n'importe quelle broche sauf les broches d'alimentation (PIN_8 et PIN_16) et la broche cPPM (PIN_9)). N'oubliez pas que, bien que vous n'ayez besoin que d'un seul circuit de protection qui est représenté par la diode Zener (ou les composants pour les circuits optionnels), les composants électriques liés à la commande du moteur/servo doivent être reproduits autant de fois que le nombre de moteurs/ servos que vous avez l'intention de conduire.

Comme je voulais piloter au moins 2 moteurs et 2 servos, j'ai réalisé un petit PCB qui implémente le circuit décrit et que vous pouvez voir sur la photo. Cependant, le premier prototype a été réalisé sur une proto-carte à l'aide de fils volants.

Ainsi, vous n'avez besoin d'aucune compétence en soudure/conception de PCB pour mettre en œuvre ce projet simple:)

Étape 2: Programmation

La programmation
La programmation

Voici la magie ! C'est là que les choses deviennent intéressantes.

Dans le cas où vous avez construit le circuit décrit dans le schéma précédent, vous pouvez simplement charger le croquis « DriveMotorAndServo.ino » et tout devrait fonctionner.

Jetez un œil au code et vérifiez comment il fonctionne.

Au début, peu de #define sont utilisés pour définir:

- le nombre de canaux du Rx (6Ch avec le Orange 614XN)

- les broches où les moteurs/servos sont attachés

- Max et min utilisés pour le servo et les moteurs

- Max et min utilisés pour la plage de canaux radio

Ensuite, il y a la section de déclaration des variables où les variables moteurs/servos sont déclarées.

Si vous conduisez plus d'un moteur et d'un servo attaché comme décrit dans le schéma précédent, vous devez modifier le croquis et ajouter le code gérant les moteurs/servos supplémentaires que vous avez attachés. Vous devez ajouter autant de servos, servo_value et motor_value que de servos/moteurs que vous utilisez.

Dans la section de déclaration des variables, il existe également des variables volatiles utilisées pour la comparaison de capture du signal cPPM. NE CHANGEZ PAS CES VARIABLES !

Ce que vous devez faire ensuite, c'est dans la fonction loop(). Ici, vous pouvez décider de l'utilisation à faire de la valeur des canaux entrants.

Dans mon cas, j'ai connecté la valeur entrante directement au moteur et au servo, mais vous êtes plus que bienvenus pour la modifier en fonction de vos besoins ! Dans la vidéo et les images liées dans ce tutoriel, j'ai connecté 2 moteurs et 2 servos, mais il pourrait y avoir 3, 4, 5, … jusqu'au maximum de broches libres disponibles (13 dans le cas d'uChip).

Vous pouvez trouver la valeur du canal capturé dans le tableau ch[index], dont « index » va de 0 à NUM_CH - 1. Chaque canal correspond à un stick/switch/knob sur votre radio. C'est à vous de comprendre ce qui est quoi:)

Enfin, j'ai implémenté quelques fonctions de débogage afin de faciliter la compréhension de ce qui se passe. Commentez/décommentez le #define DEBUG pour imprimer sur le SerialUSB natif la valeur des canaux.

ASTUCE: il y a plus de code sous la fonction loop(). Cette partie du code est nécessaire pour définir les broches d'alimentation uChip, gérer les interruptions générées par la fonction de comparaison de capture, définir les minuteries et le but du débogage. Si vous vous sentez assez courageux pour jouer avec les registres, n'hésitez pas à le modifier !

Edit: croquis mis à jour, correction d'un bug dans la fonction de mappage.

Étape 3: Jouez, conduisez, courez, volez

Image
Image

Assurez-vous de relier correctement le système Tx et Rx. Mettez-le sous tension en connectant la batterie. Vérifiez que tout fonctionne. Vous pouvez étendre les fonctionnalités ou modifier la fonction de chaque canal à votre guise, car vous avez désormais le contrôle total de votre futur modèle RC.

Maintenant, construisez votre modèle RC personnalisé !

P. S.: comme la reliure peut être assez ennuyeuse à faire, je prévois de sortir bientôt un croquis qui permet de relier votre système Tx-Rx sans avoir à le faire manuellement. Restez à l'écoute pour les mises à jour !

Conseillé: