
Table des matières
Dans ce projet, nous allons apprendre à fabriquer une voiture robotisée à commande vocale avec Arduino. La voiture robotique peut être contrôlée sans fil via des commandes vocales directement de l’utilisateur. Le robot peut aller en avant, en arrière, à gauche et à droite et peut également être arrêté.
La voiture robotisée à commande vocale Arduino est interfacée avec un module Bluetooth HC-05 ou HC-06. Nous pouvons donner des commandes vocales spécifiques au robot via une application Android installée sur le téléphone. Du côté de la réception, un module émetteur-récepteur Bluetooth reçoit les commandes et les transmet à l’Arduino, ce qui permet de contrôler le robot.
Les composants requis pour ces projets sont donnés ci-dessous. Tous ces composants peuvent être achetés sur le lien Amazoon.
1. Arduino UNO Board. 2. Module Bluetooth HC-05 / HC-06 3. Circuit d'attaque de moteur L293D 4. Moteur à engrenage CC 12 V - 2 5. Robot Chasis & Wheels 6. Batterie 9V 7. Connexion des fils du cavalier
Le schéma fonctionnel du robot à commande vocale sans fil Arduino est présenté ci-dessous.

Le robot à commande vocale sans fil Arduino se compose d’un émetteur et d’un récepteur. L’émetteur est composé du smartphone Bluetooth et de l’application Android qui y est installée. De même, la section Receiver comprend une carte Arduino en tant que processeur, un module Bluetooth HC-05 en tant que module de communication sans fil, un L293D pour les moteurs d’entraînement et une paire de régulateurs CC conçus pour le déplacement d’un robot.

Le circuit se compose de la carte Arduino UNO, du module Bluetooth HC-05 / HC-06, du circuit d’attaque de moteur L293D, d’une paire de moteurs à engrenages CC de 200 tr / min et d’une batterie 9V.
Les broches TX, RX d’Arduino sont connectées aux broches Rx, Tx du module Bluetooth. Le module Bluetooth est fourni avec 5V. De même, le moteur CC gauche est connecté aux broches 3 et 6 de L293D et le moteur CC droit aux broches 14 et 11 de L293D. Les broches numériques Arduino 2, 3, 4, 5 sont connectées à L293D 2, 7, 10, 15 respectivement.
Les broches 2, 5, 12, 13 du CI L293D sont des broches GND et 9, 1, 16 sont alimentées en 5V. Mais la broche 8 de L293D est directement alimentée en 9V.
La capture d’écran de l’application Android est donnée ci-dessous. Smartphone Android avec une application est la fin de l’émetteur. L’application de reconnaissance vocale Android utilisée ici a été développée à l’aide de MIT App Inventor.

Au début, il faut que le Bluetooth HC-05 / HC-06 soit couplé. Une fois le couplage terminé, il doit être connecté. Lorsque l’application est exécutée sur le smartphone, les commandes vocales de l’utilisateur sont détectées par le microphone du téléphone.
Téléchargez l’application Android à partir d’ici: Télécharger
Les commandes sont traitées et la conversion de la parole en texte est effectuée dans l’application à l’aide de la technologie de reconnaissance vocale de Google. Le texte est ensuite envoyé au récepteur via Bluetooth.
Comme mentionné ci-dessus, les commandes vocales sont traitées par téléphone et la conversion de la parole en texte est effectuée dans l’application à l’aide de la technologie de reconnaissance vocale de Google. Le texte est ensuite envoyé au récepteur via Bluetooth. Le texte reçu via Bluetooth est transmis à la carte Arduino Uno à l’aide du protocole de communication série UART. Le code Arduino vérifie le texte reçu. Chaque fois que le texte correspond à une chaîne, Arduino contrôle les mouvements du robot en avant, en arrière, en tournant à droite, en tournant à gauche et en butée.
Les niveaux de logique de signal aux différentes étapes des circuits pour un contrôle correct de la voiture robotique sont indiqués ci-dessous.

Le code source / programme pour le robot à commande vocale Arduino est donné ci-dessous. Copiez ce code et téléchargez-le sur la carte Arduino.
Readvoice de chaîne; int k = 0; void setup() { Serial.begin (9600); pinMode (2, OUTPUT); pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT); } boucle vide () { while (Serial.available ()) { délai (3); char c = Serial.read (); readvoice + = c; } if (readvoice.length ()> 0) { Serial.println (readvoice); if (readvoice == "forward") { digitalWrite (2, HAUT); digitalWrite (3, FAIBLE); digitalWrite (4, HAUT); digitalWrite (5, FAIBLE); k = 1; } if (readvoice == "en arrière") { digitalWrite (2, FAIBLE); digitalWrite (3, HAUT); digitalWrite (4, FAIBLE); digitalWrite (5, HAUT); k = 2; } if (readvoice == "left") { si (k == 2) { digitalWrite (2, HAUT); digitalWrite (3, FAIBLE); digitalWrite (4, FAIBLE); digitalWrite (5, FAIBLE); délai (1000); digitalWrite (2, FAIBLE); digitalWrite (3, HAUT); digitalWrite (4, FAIBLE); digitalWrite (5, HAUT); } autre { digitalWrite (2, HAUT); digitalWrite (3, FAIBLE); digitalWrite (4, FAIBLE); digitalWrite (5, FAIBLE); délai (1000); digitalWrite (2, HAUT); digitalWrite (3, FAIBLE); digitalWrite (4, HAUT); digitalWrite (5, FAIBLE); } } if (readvoice == "right") { si (k == 2) { digitalWrite (2, FAIBLE); digitalWrite (3, FAIBLE); digitalWrite (4, HAUT); digitalWrite (5, FAIBLE); délai (1000); digitalWrite (2, FAIBLE); digitalWrite (3, HAUT); digitalWrite (4, FAIBLE); digitalWrite (5, HAUT); } autre { digitalWrite (2, FAIBLE); digitalWrite (3, FAIBLE); digitalWrite (4, HAUT); digitalWrite (5, FAIBLE); délai (1000); digitalWrite (2, HAUT); digitalWrite (3, FAIBLE); digitalWrite (4, HAUT); digitalWrite (5, FAIBLE); } } if (readvoice == "stop") { digitalWrite (2, FAIBLE); digitalWrite (3, FAIBLE); digitalWrite (4, FAIBLE); digitalWrite (5, FAIBLE); } } readvoice = ""; }