- Matériel requis
- Module Bluetooth HC-06
- Schéma
- Configuration de l'application Roboremo pour contrôler le servo:
- Code et explication
- Fonctionnement de la commande de servomoteur via Bluetooth:
L'utilisation d'un servomoteur est courante en robotique pour un contrôle précis. Ici, dans ce tutoriel, nous allons vous montrer comment utiliser un servomoteur sans fil avec un Arduino UNO et un appareil Android via une connexion Bluetooth. Nous avons déjà contrôlé le servo avec Arduino, cette fois, nous contrôlons le servomoteur en utilisant Arduino et Bluetooth.
Matériel requis
- Arduino UNO
- Module Bluetooth HC-05 ou HC-06
- Servomoteur
- Application Roboremo de Playstore
- Planche à pain
- Fil de connexion
Module Bluetooth HC-06
Bluetooth peut fonctionner dans les deux modes suivants:
- Mode de commande
- Mode de fonctionnement
En mode de commande, nous pourrons configurer les propriétés Bluetooth comme le nom du signal Bluetooth, son mot de passe, le débit en bauds de fonctionnement, etc. Le mode de fonctionnement est celui dans lequel nous pourrons envoyer et recevoir des données entre le microcontrôleur PIC et le module Bluetooth. Par conséquent, dans ce tutoriel, nous ne jouerons qu'avec le mode de fonctionnement. Le mode de commande sera laissé aux paramètres par défaut. Le nom de l'appareil sera HC-05 (j'utilise HC-06) et le mot de passe sera 0000 ou 1234 et surtout le débit en bauds par défaut pour tous les modules Bluetooth sera 9600.
Le module fonctionne sur une alimentation 5 V et les broches de signal fonctionnent sur 3,3 V, par conséquent un régulateur de 3,3 V est présent dans le module lui-même. Par conséquent, nous n'avons pas à nous en préoccuper. Sur les six broches, seulement quatre seront utilisées en mode de fonctionnement. Le tableau de connexion des broches est illustré ci-dessous
S. Non | Épinglé sur HC-05 / HC-06 | Nom de l'épingle sur MCU | Numéro de broche en PIC |
1 | Vcc | Vdd | 31 e broche |
2 | Vcc | Gnd | 32 ème broche |
3 | Tx | RC6 / Tx / CK | 25 ème broche |
4 | Rx | RC7 / Rx / DT | 26 ème broche |
5 | Etat | NC | NC |
6 | EN (Activer) | NC | NC |
Consultez nos autres projets pour en savoir plus sur le module Bluetooth HC-05 avec d'autres microcontrôleurs:
- Voiture jouet contrôlée par Bluetooth utilisant Arduino
- Système domotique contrôlé par Bluetooth utilisant 8051
- Lumières à commande vocale à l'aide de Raspberry Pi
- Radio FM contrôlée par téléphone intelligent utilisant Arduino et traitement
- Interfaçage du module Bluetooth HC-06 avec le microcontrôleur PIC
Vérifiez également tous les projets liés au Bluetooth ici.
Schéma
Le schéma de circuit de ce projet de commande de servomoteur Bluetooth Arduino est donné ci-dessous:
Configuration de l'application Roboremo pour contrôler le servo:
Étape 1: - Téléchargez l'application Roboremo depuis le Play Store Android et installez-la sur votre smartphone. Après l'avoir installé, vous verrez la fenêtre de l'application comme indiqué sur la figure 1 et en cliquant sur le bouton `` Menu '', vous verrez la fenêtre illustrée dans la figure 2 ci-dessous:
Étape 2: - Cliquez ensuite sur le bouton de connexion et vous verrez la fenêtre illustrée dans la figure 3 ci-dessous, puis vous devez sélectionner `` Bluetooth RFCOMM '' et vous pourrez ensuite connecter votre module Bluetooth HC-06 avec votre application Android `` Roboremo ''.
Étape 3: - Après la connexion à la fenêtre HC-06 module Bluetooth revenir à figure2 puis cliquez sur « modifier ui » pour créer l'interface utilisateur en fonction de votre besoin.
Lorsque vous cliquez sur `` modifier l'interface utilisateur '', vous verrez à nouveau la fenêtre illustrée dans la figure1, puis cliquez n'importe où sur l'écran, vous verrez la fenêtre de l'application comme la figure4 et sélectionnez `` Bouton '' pour obtenir la structure du bouton.
Étape 4: - Après avoir sélectionné le bouton, vous obtiendrez une structure de bouton à l'écran à modifier. Vous pouvez redimensionner et déplacer la structure n'importe où sur l'écran. Maintenant, pour définir la valeur à envoyer au clic via Bluetooth, vous avez `` définir l'action de la presse '' (comme indiqué sur la figure 6) et tapez la valeur que vous souhaitez envoyer à partir de ce bouton particulier. Comme, nous envoyons «1» pour faire tourner le servo en appuyant sur le bouton «Démarrer» dans l'application Android Roboremo.
Vous pouvez vérifier toutes les valeurs, envoyées en cliquant sur différents boutons, dans le tableau ci-dessous.
Étape 5: - Enfin, nous avons une interface utilisateur pour contrôler le servomoteur à l' aide d'un smartphone.
Code et explication
Le code complet pour le servomoteur de contrôle Arduino via Bluetooth est donné à la fin.
Arduino a une bibliothèque pour les moteurs servo et il gère toutes les choses liées au PWM pour faire pivoter le servo, il vous suffit d'entrer l'angle auquel vous voulez tourner et il y a la fonction servo1.write (angle); qui fera tourner le servo à l'angle souhaité.
Nous commençons donc ici par définir la bibliothèque pour le servomoteur et la bibliothèque série logicielle est utilisée pour définir les broches Rx et Tx.
#comprendre
Dans le code ci-dessous, nous initialisons les broches Arduino pour Rx et Tx, définissant des variables pour le servo et d'autres choses .
Servo myServo; int TxD = 11; int RxD = 10; int servoposition; int servopos; int new1; LogicielSérie bluetooth (TxD, RxD);
Maintenant, configurez toutes les variables et composants à l'étape initiale. Ici, nous avons joint le servo au 9 e broche de l'Arduino et fait la position initiale du servo à 0 degré. Le débit en bauds pour les communications série et Bluetooth a également été réglé sur 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // démarrer la communication série à 9600bps bluetooth.begin (9600); }
Dans la fonction de boucle vide , Arduino vérifiera tout le temps les valeurs entrantes et fera tourner le servo en fonction de la valeur reçue du téléphone intelligent. Toutes les valeurs seront reçues en utilisant la communication série.
Si la valeur est 0, le servo tournera à 0 degré. De même, si nous envoyons 45, 90, 135 et 180 à partir de l'application Bluetooth, le servo tournera à 45, 90, 135 et 180 degrés respectivement.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servoposition = valeur.toInt (); if (value.toInt () == 0) { Serial.println (servoposition); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servoposition); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servoposition); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposition); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposition); myServo.write (180); }
Si nous envoyons la valeur «1» en appuyant sur le bouton de démarrage, le servo tournera en continu jusqu'à ce que le bouton d' arrêt soit enfoncé. Ici, nous transmettons « 2 » En appuyant sur arrêt bouton, qui sera lu par l'Arduino et il brisera le tout en boucle et asservissement sera arrêté.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (valeur); if (value.toInt () == 2) {Serial.println ("YYY"); Pause; }} servopos ++; retard (30); Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Fonctionnement de la commande de servomoteur via Bluetooth:
Dans ce projet, nous contrôlons le servomoteur à l'aide d'une application Android «Roboremo». Dans l'interface de cette application, nous avons créé 5 boutons pour contrôler le servomoteur comme expliqué précédemment. Le fonctionnement de chaque bouton est indiqué dans le tableau ci-dessous:
S.No. |
Nom du bouton |
Valeur d'envoi |
La description |
1. |
Début |
1 |
Ce bouton est utilisé pour démarrer la rotation du servo de 0⁰ à 180⁰. |
2. |
Arrêtez |
2 |
Ce bouton est utilisé pour arrêter le servo à tout moment. |
3. |
0⁰ |
0 |
Ce bouton est utilisé pour faire tourner le servo à 0⁰. |
4. |
90⁰ |
90 |
Ce bouton est utilisé pour faire tourner le servo à 90⁰. |
5. |
180⁰ |
180 |
Ce bouton est utilisé pour faire tourner le servo à 180 °. |
Ainsi, en appuyant sur ces boutons sur votre application Android Roboremo , les données seront envoyées via le Bluetooth du smartphone au module Bluetooth HC-06. À partir de ce module HC-06, les données sont reçues par l'Arduino et Arduino fait pivoter le servo à l'angle défini dans le code du bouton particulier. Nous avons également codé pour les angles 45 et 135, mais en raison de la limitation de l'application Roboremo, vous ne pouvez créer que 5 boutons, nous avons donc ignoré deux boutons.
C'est ainsi que vous pouvez envoyer les données du smartphone à l'Arduino en utilisant Bluetooth pour contrôler le servo sans fil. Cela peut être utilisé dans de nombreuses applications telles que les voitures jouets, les robots, etc.