- Moteur CC sans noyau pour voitures RC
- Matériaux nécessaires
- Joystick RF pour voiture RC utilisant Arduino
- Schéma de circuit de voiture Arduino RC
- Fabrication de PCB pour Arduino RC Car
- Assemblage du PCB
- Roues d'impression 3D et support moteur
- Programmation de l'Arduino
- Fonctionnement de la voiture Arduino RC
Les voitures radiocommandées sont toujours amusantes à jouer, je suis personnellement un grand fan de ces voitures télécommandées et j'ai beaucoup joué (toujours) avec elles. La plupart de ces voitures fournissent aujourd'hui un couple énorme pour gérer les terrains accidentés, mais il y a quelque chose qui était toujours à la traîne, sa vitesse !!.. Donc, dans ce projet, nous allons construire un type de voiture RC totalement différent en utilisant Arduino, L'objectif de cette voiture est d'atteindre la vitesse maximale, c'est pourquoi j'ai décidé d'essayer le moteur à courant continu sans noyau pour une voiture RC. Ces moteurs sont normalement utilisés dans les drones et sont évalués à 39000 tr / min ce qui devrait être plus que suffisant pour étancher notre soif de vitesse. La voiture sera alimentée par une petite batterie au lithium et pourra être contrôlée à distance à l'aide du module RF nRF24L01. Alternativement, si vous recherchez quelque chose de simple, vous pouvez également consulter ces projets Simple RF Robot et Raspberry Pi Bluetooth Car.
Moteur CC sans noyau pour voitures RC
Le moteur CC sans noyau utilisé dans ce projet est illustré ci-dessous. Vous pouvez les trouver facilement car ils sont largement utilisés dans les mini drones. Recherchez simplement le moteur magnétique micro sans noyau 8520 et vous les trouverez.
Maintenant, il y a certains inconvénients à utiliser des moteurs à courant continu pour une voiture RC. La première chose est qu'ils fournissent un couple de démarrage très faible, donc notre voiture RC doit être aussi légère que possible. C'est pourquoi j'ai décidé de construire toute la voiture sur un PCB en utilisant des composants SMD et de réduire au maximum la taille de la carte. Le deuxième problème est sa vitesse élevée, 39000 tr / min (tr / min de l'arbre) est difficile à gérer, nous avons donc besoin d'un circuit de contrôle de vitesse du côté Arduino, que nous avons construit à l'aide d'un MOSFET. La troisième chose est que ces moteurs seront alimentés par une seule batterie au lithium-polymère avec une tension de fonctionnement comprise entre 3,6V et 4,2V, nous devons donc concevoir notre circuit pour fonctionner sur 3,3V. C'est pourquoi nous avons utilisé un mini Arduino Pro 3.3Vcomme le cerveau de notre voiture RC. Une fois ces problèmes résolus, examinons les matériaux nécessaires pour construire ce projet.
Matériaux nécessaires
- 3.3V Arduino Pro Mini
- Arduino Nano
- NRF24L01 - 2 pièces
- Module joystick
- MOSFET SI2302
- Diode 1N5819
- Moteurs BLDC sans noyau
- AMS1117-3.3V
- Batterie au lithium polymère
- Résistances, condensateurs,
- Fils de connexion
Joystick RF pour voiture RC utilisant Arduino
Comme mentionné précédemment, la voiture RC sera contrôlée à distance à l'aide d'un joystick RF. Ce joystick sera également construit à l'aide d'un Arduino avec un module RF nRF24L01, nous avons également utilisé le module Joystick pour contrôler notre RC dans la direction requise. Si vous êtes complètement nouveau dans ces deux modules, vous pouvez envisager de lire les articles Interfacing Arduino with nRF24L01 et Interfacing Joystick with Arduino pour apprendre comment ils fonctionnent et comment les utiliser. Pour construire votre joystick Arduino RF Remote, vous pouvez suivre le schéma de circuit ci-dessous.
Le circuit RF Joystick peut être alimenté en utilisant le port USB de la nano board. Le module nRF24L01 fonctionne uniquement sur 3,3 V, c'est pourquoi nous avons utilisé la broche 3,3 V sur Arduino. J'ai construit le circuit sur une maquette et il ressemble à ci-dessous, vous pouvez également créer un PCB pour cela si nécessaire.
Le code Arduino pour le circuit du joystick RF est assez simple, nous devons lire la valeur X et la valeur Y de notre joystick et l'envoyer à la voiture RC via le nRF24L01. Le programme complet de ce circuit se trouve au bas de cette page. Nous n'entrerons pas dans l'explication de cela puisque nous en avons déjà discuté dans le lien du projet d'interfaçage partagé ci-dessus.
Schéma de circuit de voiture Arduino RC
Le schéma de circuit complet de notre voiture Arduino télécommandée est illustré ci-dessous. Le schéma de circuit comprend également une option pour ajouter deux modules IR TCRT5000 à notre voiture. Cela a été prévu pour permettre à notre voiture radiocommandée de fonctionner comme un robot de suivi de ligne afin qu'elle puisse fonctionner seule sans être contrôlée de l'extérieur. Cependant, pour le bien de ce projet, nous ne nous concentrerons pas dessus, restez à l'écoute pour un autre tutoriel de projet dans lequel nous essaierons de construire le «Robot suiveur de ligne le plus rapide». J'ai combiné les deux circuits sur un seul PCB pour la facilité de construction, vous pouvez ignorer le capteur infrarouge et la section ampli-op pour ce projet.
La voiture RC sera alimentée par la batterie Lipo connectée à la borne P1. L' AMS117-3.3V est utilisé pour réguler 3,3V pour notre nRF24L01 et notre pro-mini-board. Nous pouvons également alimenter la carte Arduino directement sur la broche brute, mais le régulateur de tension 3.3V intégré sur pro mini ne pourra pas fournir suffisamment de courant à nos modules RF, nous avons donc utilisé un régulateur de tension externe.
Pour piloter nos deux moteurs BLDC, nous avons utilisé deux MOSFET SI2302. Il est important de s'assurer que ces MOSFETS peuvent être alimentés par 3,3V. Si vous ne trouvez pas exactement le même numéro de pièce, vous pouvez rechercher des MOSFET équivalents avec les caractéristiques de transfert ci-dessous
Les moteurs peuvent consommer un courant de crête aussi élevé que 7A (le courant continu a été testé à 3A avec charge), par conséquent, le courant de drain MOSFET doit être de 7A ou plus et il doit s'allumer complètement à 3,3V. Comme vous pouvez le voir ici, le MOSFET que nous avons sélectionné peut fournir 10A même à 2,25V, c'est donc un choix idéal.
Fabrication de PCB pour Arduino RC Car
La partie amusante de la construction de ce projet était le développement de PCB. Le PCB ici forme non seulement le circuit, mais agit également comme un châssis pour notre voiture, nous avons donc prévu une voiture à la forme avec des options pour monter facilement nos moteurs. Vous pouvez également essayer de concevoir votre propre PCB en utilisant le circuit ci-dessus ou vous pouvez utiliser ma conception de PCB qui ressemble à celle-ci ci-dessous une fois terminée.
Comme vous pouvez le voir, j'ai conçu le PCB pour monter facilement la batterie, le moteur et d'autres composants. Vous pouvez télécharger le fichier Gerber pour ce PCB à partir du lien. Une fois que vous êtes prêt avec le fichier Gerber, il est temps de le fabriquer. Pour obtenir vos circuits imprimés facilement par PCBGOGO, suivez les étapes ci-dessous
Étape 1: Accédez à www.pcbgogo.com, inscrivez-vous si c'est votre première fois. Ensuite, dans l'onglet Prototype PCB, entrez les dimensions de votre PCB, le nombre de couches et le nombre de PCB dont vous avez besoin. Mon PCB mesure 80 cm × 80 cm, donc l'onglet ressemble à ceci ci-dessous.
Étape 2: Continuez en cliquant sur le bouton Soumettre maintenant . Vous serez redirigé vers une page où définir quelques paramètres supplémentaires si nécessaire, comme le matériau utilisé, l'espacement des pistes, etc. Mais la plupart du temps, les valeurs par défaut fonctionneront bien. La seule chose que nous devons considérer ici est le prix et le temps. Comme vous pouvez le voir, le temps de construction n'est que de 2-3 jours et il ne coûte que 5 $ pour notre PSB. Vous pouvez ensuite sélectionner une méthode d'expédition préférée en fonction de vos besoins.
Étape 3: La dernière étape consiste à télécharger le fichier Gerber et à procéder au paiement. Pour vous assurer que le processus est fluide, PCBGOGO vérifie si votre fichier Gerber est valide avant de procéder au paiement. De cette façon, vous pouvez être sûr que votre PCB est facile à fabriquer et vous atteindra comme engagé.
Assemblage du PCB
Après la commande de la carte, elle m'est parvenue au bout de quelques jours par courrier dans une boîte bien emballée soigneusement étiquetée et, comme toujours, la qualité du PCB était excellente. Je partage quelques photos des planches ci-dessous pour que vous puissiez en juger.
J'ai allumé ma tige à souder et j'ai commencé à assembler la carte. Comme les empreintes, les pads, les vias et la sérigraphie sont parfaits de la bonne forme et de la bonne taille, je n'ai eu aucun problème à assembler la planche. La planche était prête en seulement 10 minutes après le déballage de la boîte.
Quelques photos de la carte après soudure sont présentées ci-dessous.
Roues d'impression 3D et support moteur
Comme vous l'avez peut-être remarqué sur l'image ci-dessus, nous devons 3D notre support moteur et les roues du robot. Si vous avez utilisé notre fichier PCB Gerber partagé ci-dessus, vous pouvez également utiliser un modèle 3D en le téléchargeant à partir de ce lien thingiverse.
J'ai utilisé Cura pour trancher mes modèles et les ai imprimés avec Tevo Terantuala sans supports et 0% de remplissage pour réduire le poids. Vous pouvez modifier le paramètre en fonction de notre imprimante. Étant donné que les moteurs tournent très rapidement, j'ai trouvé difficile de concevoir une roue qui s'adapte parfaitement et fermement à l'arbre du moteur. J'ai donc décidé d'utiliser les pales du drone à l'intérieur de la roue comme vous pouvez le voir ci-dessous
J'ai trouvé cela plus fiable et plus robuste, cependant, faites des expériences avec différents modèles de roues et faites-moi savoir dans la section des commentaires ce qui a fonctionné pour vous.
Programmation de l'Arduino
Le programme complet (Arduino nano et pro mini) pour ce projet se trouve au bas de cette page. L'explication de votre programme RC est la suivante
Nous démarrons le programme en incluant le fichier d'en-tête requis. Notez que le module nRF24l01 nécessite l'ajout d'une bibliothèque à votre IDE Arduino, vous pouvez télécharger la bibliothèque RF24 à partir de Github en utilisant ce lien. En dehors de cela, nous avons déjà défini la vitesse minimale et la vitesse maximale de notre robot. Les plages minimale et maximale vont respectivement de 0 à 1024.
#define min_speed 200 #define max_speed 800 #include
Ensuite, à l'intérieur de la fonction de configuration, nous initialisons notre module nRF24L01. Nous avons utilisé les 115 bandes car il n'est pas encombré et a configuré le module pour fonctionner avec une faible puissance, vous pouvez également jouer avec ces paramètres.
void setup () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 bande au-dessus des signaux WIFI myRadio.setPALevel (RF24_PA_MIN); // Puissance MIN basse rage myRadio.setDataRate (RF24_250KBPS); // Vitesse minimale}
Ensuite, dans la fonction de boucle principale, nous n'exécuterons que la fonction ReadData avec laquelle nous lirons constamment la valeur envoyée depuis notre module joystick émetteur. Notez que l'adresse de conduite mentionnée dans le programme doit être la même que celle mentionnée dans le programme du transmetteur. Nous avons également imprimé la valeur que nous recevons à des fins de débogage. Une fois la valeur lue avec succès, nous exécuterons la fonction Control Car pour contrôler notre voiture RC en fonction de la valeur reçue du
module Rf.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Quel tube à lire, 40 bits Address myRadio.startListening (); // Arrêtez la transmission et démarrez la réévaluation if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nReceived:"); Serial.println (data.msg); reçu = data.msg; Control_Car (); }}
Dans la fonction Control Car, nous contrôlerons les moteurs connectés aux broches PWM à l'aide de la fonction d'écriture analogique. Dans notre programme d'émetteur, nous avons converti les valeurs analogiques des broches A0 et A1 de Nano en 1 à 10, 11 à 20, 21 à 30 et 31 à 40 pour contrôler la voiture respectivement en marche avant, arrière, gauche et droite. Le programme ci-dessous est utilisé pour contrôler le robot dans une direction avant
if (reçu> = 1 && reçu <= 10) // Avancer {int PWM_Value = map (reçu, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
De même, nous pouvons également écrire trois autres fonctions pour le contrôle inverse, gauche et droit, comme indiqué ci-dessous.
if (reçus> = 11 && reçus <= 20) // Break {int PWM_Value = map (reçus, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (reçus> = 21 && reçus <= 30) // Tourner à gauche {int PWM_Value = map (reçus, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (reçu> = 31 && reçu <= 40) // Tourner à droite {int PWM_Value = map (reçu, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Fonctionnement de la voiture Arduino RC
Une fois que vous avez terminé avec le code, téléchargez-le sur votre pro-mini-board. Retirez la batterie et votre carte via le module FTDI pour les tests. Lancez votre code, ouvrez la batterie série et vous devriez recevoir la valeur du module Joystick de votre émetteur. Connectez votre batterie et vos moteurs devraient également commencer à tourner.
Le fonctionnement complet du projet peut être trouvé dans la vidéo liée au bas de cette page. Si vous avez des questions, laissez-les dans la section des commentaires. Vous pouvez également utiliser nos forums pour obtenir des réponses rapides à vos autres questions techniques.