Comprendre la mobilité du futur avec les voitures robots
Bienvenue dans une nouvelle série de blogs sur les voitures robotisées. Dans la première partie, nous allons découvrir les bases pour cela, pour ainsi dire comme aide à la décision d'achat, quel châssis, quel microcontrôleur et quel type de télécommande sont les plus appropriés.
Deux ou quatre roues - peser les avantages et les inconvénients pour la construction de voitures RC pour Arduino
Commençons par le châssis et examinons les avantages et les inconvénients des kits bon marché avec deux ou quatre roues motrices. Tous ont en commun les moteurs électriques, de sorte qu'ils ne constituent pas à eux seuls un critère de sélection. Les voitures robotisées à deux roues sont d'abord moins chères, car le coût de deux moteurs électriques et de deux roues supplémentaires n'est pas nécessaire. Au lieu de cela, elles ont une ou deux roues d'appui qui confèrent aux voitures RC une grande maniabilité. Ceux qui veulent "tourner sur l'assiette" sont donc bien servis. Cependant, à ce niveau de prix des moteurs à courant continu, on ne peut pas s'attendre à ce qu'ils fonctionnent de manière régulière avec une grande précision. C'est pourquoi la course en ligne droite n'est pas aussi bonne que celle de la variante à quatre roues. Juste au moment du démarrage, les moteurs montrent une plus grande stabilité directionnelle, mais les virages ne sont possibles qu'avec des rayons nettement plus importants. Un autre avantage des châssis à quatre roues est qu'il y a plus de place pour les batteries, le microcontrôleur, le cas échéant le convertisseur DC/DC et les capteurs.
Le choix du microcontrôleur pour la construction d'une voiture RC
La question suivante concerne le microcontrôleur et le type de programmation. La plus grande puissance de calcul sur un petit châssis est par exemple celle d'un micro-ordinateur de type Raspberry Pi. En ce qui concerne la télécommande, les types avec WiFi et Bluetooth intégrés offrent des avantages et on peut même transmettre des images d'une caméra Raspberry Pi. La programmation se fait dans le langage de programmation très répandu Python, mais le démarrage du système d'exploitation basé sur Linux Raspberry Pi OS prend environ une minute. Un autre inconvénient des Raspi (abréviation de Raspberry Pi) est la nécessité d'une bonne alimentation en 5V. Cela nécessite un bon convertisseur DC/DC.
En rapport avec le thème de la télécommande Bluetooth, un exemple avec Raspberry Pi et l'APP Android BlueDot de Martin O'Hanlon (collaborateur de la Raspberry Pi Foundation) sera présenté dans un épisode ultérieur.
Le démarrage du système est beaucoup plus rapide avec un micro contrôleur basé sur l'ATmega 328, par exemple le Funduino Uno ou le Funduino Nano. Environ une seconde après l'allumage, on peut commencer à entrer les commandes, pas de démarrage à partir de la carte microSD, le programme une fois téléchargé n'est pas oublié. La tension d'entrée peut être comprise entre 5 et 9 volts. La programmation se fait dans l'IDE Arduino, un environnement de développement inspiré de C/C++ (pour plus d'explications, voir https://funduino.de/hardware-software). C'est pourquoi nous allons d'abord examiner des exemples avec le Funduino Uno R3, pour lesquels il existe des contrôleurs de moteur parfaits sous forme de ce que l'on appelle des shields. Ceux-ci sont simplement enfichés sur l'Uno et les bibliothèques (en anglais libraries) nous aident à les programmer.
Digression : qu'est-ce qu'un contrôleur de moteur / pilote de moteur ?
En raison de l'intensité fortement limitée des sorties des microcontrôleurs, les gros consommateurs - et tous les types de moteurs électriques et de relais en font partie - nécessitent une alimentation externe et un circuit électronique qui convertit le signal de commande du microcontrôleur. Mais les exigences de ce circuit intégré (en anglais IC=Integrated Circuit) sont encore plus élevées : il doit d'une part permettre une vitesse variable du moteur, et d'autre part nous voulons aussi pouvoir changer le sens de rotation du moteur en inversant la polarité.
Le fonctionnement est expliqué à l'aide de l'exemple du CI L293D. En principe, ce module DIP avec seize "pattes"/connexions suffit comme contrôleur de moteur pour deux moteurs électriques.
L'alimentation du CI se fait par les connecteurs VCC1 et Ground. On peut prélever cette tension sur le microcontrôleur. L'alimentation des moteurs se fait par VCC2 et Ground. C'est ici que nous connectons la ou les batteries (par exemple 6 ou 9 volts). Pour les grands moteurs, le CI doit être refroidi, pour les petits jaunes du kit non.
Nous connectons l'un des moteurs à 1Y et 2Y, les lignes de commande correspondantes vers le MCU (Micro Controller Unit) sont 1A, 2A et 1,2EN.
L'inversion de la polarité des moteurs pour le changement de direction se fait en principe avec ce que l'on appelle un circuit en H. Nous réalisons cela avec notre microcontrôleur en mettant deux broches de sortie (celles-ci vont à 1A et 1B) soit sur HIGH soit sur LOW.
Le changement de vitesse se fait comme dans l'exemple 04 - LED pulsante avec la modulation de largeur d'impulsion (PWM, en anglais pulse width modulation), c'est-à-dire l'allumage et l'extinction très rapides de la tension. C'est pourquoi nous avons besoin d'une sortie compatible avec la PWM sur le MCU pour la connexion 1,2EN ("Enable") (ce sont les broches avec le tilde ~).
Pour le deuxième moteur, les connexions 3A, 4A et 3,4EN sont connectées aux broches du MCU.
L'image de droite (Logic Diagram) explique le fonctionnement du CI. Nous voyons les quatre amplificateurs qui donnent les signaux d'entrée 1A à 4A respectivement avec la tension de la batterie aux sorties 1Y à 4Y. Mais cela ne se produit que si, en plus, les entrées PWM 1,2EN et 3,4EN sont également connectées HIGH.
Deux de ces CI L293D sont montés sur le Motor Shield V1, de sorte que jusqu'à quatre moteurs peuvent être connectés ici.
Pour ne pas utiliser trop de broches, un registre à décalage (SN74HC595) se trouve au milieu du Motor Shield V1. Expliquer son fonctionnement dépasserait le cadre de cet article. Heureusement, les collègues de la société new-yorkaise Adafruit ont fait le plus gros du travail de programmation et ont mis à disposition une bibliothèque de programmes (angl. library) pour contrôler facilement les moteurs.
Image Motor Shield V1 avec modification :
Connecteurs femelles soudés (connecteurs à ressort) pour la connexion d'équipements supplémentaires
Le Motor Shield V2 peut également contrôler jusqu'à quatre moteurs et utilise un circuit intégré similaire, mais pour la connexion des lignes de commande, il utilise le bus I2C avec les connexions SDA (= données sérielles) à l'entrée analogique A4 et SCL (= horloge sérielle) à A5. Pour cela aussi, Adafruit a développé et mis à disposition une bibliothèque de programmes appropriée.
Image Motor Shield V2 avec modification :
Connecteurs femelles soudés (connecteurs à ressort) pour la connexion d'équipements supplémentaires
Sur les deux Motor Shield, des connecteurs supplémentaires sont soudés ici pour pouvoir connecter ultérieurement des émetteurs/récepteurs Bluetooth ou 433 MHz (en anglais transceiver=émetteur + récepteur) ou des capteurs. Plus d'informations dans un prochain article de blog.
Alimentation et contrôle pour une voiture RC pour microcontrôleur Arduino
Si notre voiture robot doit se déplacer de manière autonome, nous devons la déconnecter du port USB du PC. Ainsi, l'alimentation électrique est également perdue. A partir de maintenant, le centre de commande (MCU) et les moteurs électriques sont alimentés par des piles ou des batteries. Les moteurs sont de loin les plus gros consommateurs. Le support de piles fourni avec la plupart des kits est conçu pour quatre piles AA, soit 6 volts pour le MCU et les moteurs. Pour ceux qui souhaitent utiliser des piles rechargeables, il est conseillé d'utiliser soit six piles AA, soit deux piles lithium-ion de type 18650, en raison de la tension plus faible.
Dans les prochains épisodes, nous découvrirons d'abord les télécommandes avec télécommande infrarouge, les émetteurs-récepteurs Bluetooth avec APP pour smartphone ou un deuxième microcontrôleur également avec l'émetteur-récepteur BT HC-05 ainsi que les télécommandes radio avec 433Mhz et 2,4 GHz. La série de blogs se terminera par les aspects de la conduite autonome, principalement la détection d'obstacles. A très bientôt.