Robot-Car - Les moteurs (1ère partie)

BluettothRCcontroller-icone

Réalisation d'un Robot-Car piloté en Bluetooth avec une application sur Smartphone (Androïd) en trois modules.

**************


Matériel nécessaire:

  • 1 chassis
  • 4 moteurs et 4 roues
  • 1 Arduino Uno
  • 1 carte Bluetooth HC-05
  • 1 carte Driver Pont H L298n
  • 1 buzzer
  • 4 led (2 rouges, 2 blanches)
  • 4 resistances de 220 Ohms
  • 6 piles rechargeables (6x1.2=7.2v)  ou batteries
  • 1 support de piles
  • des câbles
(Matériel acheté sur le web)

Nous utiliserons l'application Bluetooth RC Controller sur Smartphone (Androîd) pour piloter 
le Robot-Car disponible sur PlayStore de Google


(Si vous souhaitez piloter le Robot-Car avec un iPhone (Apple), il vous faudra prendre une carte Bluetooth HM-10, car la HC-05 n'est pas compatible avec les iPhones, et une application compatible iPhone)



chassis

Prérequis

prerequis


Pour réaliser ce projet, il est conseillé de connaitre les composants ci-dessous:

Et de savoir installer une application via le PlayStore de Google sur votre Smartphone (Androïd) 

Et de savoir appairer en Bluetooth une carte ou un appareil avec votre Smartphone



Application Bluetooth RC Controller

  • interface
  • configuration


Une fois installé, l'ouvrir l'application Bluetooth RC Controller


Appuyer sur l'icône "roue dentée" pour accéder à la configuration de l'interface.

Dans le menu, appuyer sur "Setting"

Sélectionner la configuration de votre choix et valider en appuyant sur [OK] tout en bas de la configuration 

Dans la liste Commands/characters sent to the car (Commandes/caractères envoyés à la voiture) vous affichez les caractères qui sont envoyés au Robot-Car.

Please select holding position for the Accelerometer control:Veuillez sélectionner la position de maintien pour la commande de l'accéléromètre :
          Face screen towards USER to stop car          Écran de visage vers l'UTILISATEUR pour arrêter la voiture
          Face screen UP to stop car <= Sélectionner          Écran facial UP pour arrêter la voiture <= Sélectionner
Please select data stream frequency:Veuillez sélectionner la fréquence du flux de données : 
          Continuous stream (every 50 ms)          Flux continu (toutes les 50 ms) 
          On change/touch <= Sélectionner          Au changement/tactile <= Sélectionner

N'oubliez pas de valider votre configuration en apuyant sur [OK] en bas de la page




  • Bluetooth RC Controller
  • configuration
  • connect-car
  • scan-hc-05
  • settings
  • configuration-2
  • moniteur-serie

Voici un code ino qui vous permettra de vérifier les caractères envoyés par l'application Bluetooth RC Controller pour piloter le Robot-Car.

Câblage HC-05 et  Arduino Uno (EN ou KEY)

  • STATE ==> rien
  • RXD ==> D1
  • TXD ==> D0
  • GND ==> GND
  • VCC ==> +5v
  • EN ==> rien

(Le fichier est zippé)


  • Téléverser le code ci-dessus dans l’Arduino UNO sans connecter RXD/D1 et TXD/D0,
  •  Une fois le téléversement terminé, reconnecter RXD/D1 et TXD/D0
  • Appairer le module Bluetooth avec votre Smartphone
  • Ouvrir le moniteur série de l’IDE Arduino
  • Installer l’application Bluetooth RC Controller (via Play Store)
  • Ouvrir l’application Bluetooth RC Controller
  • Ouvrir le Menu Option Bluetooth RC Controller (Roue dentée)
  • Choisir [Connect to car]
  • Scanner les périphériques Bluetooth en cliquant sur [Scan for devices]
  • Une fois scanné, sélectionner votre module HC-05, le voyant de l'application passe au VERT
  • Revenir sur [Menu Option] et choisir [Settings]
  • Sélectionner les deux lignes ci-dessous :
    • Face screen towards USER to stop car
    • On change/Touch
  • Valider en cliquant sur [OK] tout en bas de l’affichage (Faire défiler jusqu'en bas ….)
  • Ouvrir le moniteur série de l’IDE Arduino
  • Taper sur les touches pour afficher dans le moniteur série les commandes liées aux touches


Noter les lettres utilisées par l’application Bluetooth RC Controller, car on utilisera les mêmes lettres pour le code final du robot-car


Fonctionnement

synoptique


La communication Bluetooth entre le Smartphone et le Robot-Car est réalisée par la carte HC-05 après appairage avec le Smartphone.


La connexion série de l’Arduino Uno est utilisée pour:

  • Téléverser le code dans la mémoire de l’Arduino Uno
  • Dialoguer avec la carte Bluetooth HC-05


La connexion série étant occupée pour le dialogue entre l’Arduino Uno et le HC-05, il faut donc la libérer avant de téléverser le code.

C’est pour cette raison que l’on débranche les pins RX/TX avant le téléversement


L’application «Bluetooth RC Controller» envoie les caractères de commande à l’Arduino via la carte Bluetooth HC-05 en utilisant la connexion série.
(Exemple: Appui sur la touche «Avancer» et envoie du caractère «F»...)

L’Arduino Uno détecte le caractère et exécute l’action écrite dans le code.

Pour faire rouler le Robot-Car, le caractère «F» est identifié, le code met à l’état haut (soit 5v) la ou les pin(s) digitales qui pilote (pilotent) les moteurs.
Le 5v est donc appliqué sur les pins in1, in2, ou in3 , in4 de la carte de puissance l298n, qui commande la rotation des moteurs.

Pour stopper le Robot-Car, l’application envoie le caractère «S», et le code met à l’état bas (soit 0v) la ou les pin(s) digitales qui pilote (pilotent) les moteurs.
Le 0v est donc appliqué sur les pins in1, in2, ou in3 , in4 de la carte de puissance l298n, qui commande l’arrêt des moteurs.

Pour allumer ou éteindre les feux AV et AR, un caractère spécifique est envoyé et identifié, le code met à l’état haut (5v) ou bas (0v) les pins qui commandent les leds.

  • 5v les leds s’allument
  • 0v les leds s’éteignent

Pour activer ou éteindre le klaxon, un caractère spécifique est envoyé et identifié, le code met à l’état haut (5v) ou bas (0v) la pin qui commande le klaxon.

  • 5v le klaxon bipe
  • 0v le klaxon ne bipe plus



Liste de commandes

Commandes
Lettres
Commandes
Lettres
Commandes
Lettres
Avancer
F
Feu AV On
W (Majuscule)
Warning On
X (Majuscule)
Reculer
B
Feu AV Off
w (Minuscule)
Warning Off
x (Minuscule)
Aller à droite
R
Feu AR On
U (Majuscule)
Klaxon On
V (Majuscule)
Aller à gauche
L
Feu AR Off
u (Minuscule)
Klaxon Off
v (Minuscule)
Arrêt
S

Câblage du Robot-Car

Vous avez 2 façons d'alimenter l'Arduino Uno:

  • Via le jack 5.5mm
  • Via la pin Vin et GND 
Connexion Jack
Jack

Alimentation via le Jack 5.5 mm


Connexion_Vin
V in

Alimentation via la pin Vin



HC-05
Arduino Uno
TXD
D0
RXD
D1
VCC
+5v
GND
GND
L298n
Arduino Uno
IN1
D13
IN2
D12
IN3
D11
IN4
D10
L298n
Arduino Uno / Batterie
+12v Max
Mettre le jumper régulateur
Jack + ou Vin
sur le + batterie
GND
Jack - ou GND
sur le - batterie

Préparation du code

Nous utiliserons les caractères relevés précédemment dans l'application Bluetooth RC Controller (voir plus haut - Liste des commandes)

L298n
Moteurs
OUT1
+ moteur A
OUT2
- moteur A
OUT3
+ moteur B
OUT4
- moteur B
L298n
Arduino Uno
AV
AR
Moteur A
IN1
D13
1
0
Moteur A
IN2
D12
0
1
Moteur B
IN3
D11
1
0
Moteur B
IN4
D10
0
1
Carte L298n
AV 
Moteur A
Moteur B
OUT1
OUT4

OUT2
OUT3
Arduino Uno
Moteur A
OUT1
D13  
D12  
OUT2
Moteur B
Arduino Uno
OUT4
D11  
D10  
OUT3
Représentation du bornier des moteurs sur la carte L298n   



Correspondance lettres / mouvements

F
B
G
I
H
J
R
L
S
AV
AR
AVD
AVG
ARD
ARG
Droite
Gauche
Stop
D13  
D12  
D11
D13
D10
D12
D11  
D10  
D11  
D10  
D12  
D13  


AV = Avance  /  AVD = Avance à droite  /  ARD = Arrière à droite  /  Sens de rotation / UP = 
AR = Arrière  /  AVG = Avance à gauche  /  ARG = Arrière à gauche  /  Sens de rotation / Down = 




Code Arduino

Robot-Car
L'application Bluetooth RC Controller envoie un caractère lorsque l'on appuie sur une touche.
On stockage le caractère dans la variable t.
Dans la boucle loop, le code 
  • va lire le contenu de la variable t ( Serial.read() )
  • teste le contenu de la variable t
  • execute le code correspondant au caractère lu


/*
* Commander un Robot-Car en Bluetooth avec un Smartphone Android ONLY
* Application Bluetooth RC Controller
* HC-05 / RXD en D1 / TXD en D0 / VCC en +5v / GND en GNG
* L298n / IN1 en D13 / IN2 en D12 / IN3 en D11 / IN4 en D10
*/


//Variable t pour stocker le caraactère envoyer par l'application Bluetooth RC Controller
char t;  

void setup() {
  pinMode(13,OUTPUT); //left motors forward
  pinMode(12,OUTPUT); //left motors reverse
  pinMode(11,OUTPUT); //right motors forward
  pinMode(10,OUTPUT); //right motors reverse
  Serial.begin(9600);

// mise à off des moteurs
digitalWrite(13,LOW);
digitalWrite(12,LOW);;
digitalWrite(11,LOW);
digitalWrite(10,LOW);
}

void loop() {
  if(Serial.available()){
  t = Serial.read();  //Lecture de la variable t
  Serial.println(t);
}
if(t == 'F'){ //AV 13-11 - lettre F
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);;
  digitalWrite(11,HIGH);
  digitalWrite(10,LOW);
}
else if(t == 'B'){ //AR 12-10 - lettre B
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
  digitalWrite(11,LOW);
  digitalWrite(10,HIGH);
}
else if(t == 'L'){ //DROITE 12-11 - lettre L
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
  digitalWrite(11,HIGH);
  digitalWrite(10,LOW);
}
else if(t == 'R'){ //GAUCHE 13-10 - lettre R
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
  digitalWrite(11,LOW);
  digitalWrite(10,HIGH);
}
else if(t == 'S'){ //STOP (all motors stop)= S - Lettre S
  digitalWrite(13,LOW);
  digitalWrite(12,LOW);
  digitalWrite(11,LOW);
  digitalWrite(10,LOW);
}
delay(100);
}


Télécharger le code ino

(Fichier est zippé)


Téléverser le code dans l'Arduino Uno

important


Téléversement du code :


Déconnecter D0 et D1 avant le téléversement du code.
Une fois le téléversement effectué, reconnecter D0 et D1



La connexion série étant occupée pour le dialogue entre l’Arduino Uno et la carte Bluetooth HC-05, il faut donc la libérer avant de téléverser le code.

C’est pour cette raison que l’on débranche les pins RX/TX avant le téléversement



Ajout des feux AV/AR et du klaxon

feux-AV-AR

L'ajout des feux AV/AR et du klaxon est présenté dans la page Robot-Car - Feux AV/AR et Klaxon (2ème partie)


Voir la page Robot-Car - Feux AV/AR et Klaxon (2ème partie)



Personnaliser

Google Analytics

Google Analytics est un service utilisé sur notre site Web qui permet de suivre, de signaler le trafic et de mesurer la manière dont les utilisateurs interagissent avec le contenu de notre site Web afin de l’améliorer et de fournir de meilleurs services.

Facebook

Notre site Web vous permet d’aimer ou de partager son contenu sur le réseau social Facebook. En l'utilisant, vous acceptez les règles de confidentialité de Facebook: https://www.facebook.com/policy/cookies/

Twitter

Les tweets intégrés et les services de partage de Twitter sont utilisés sur notre site Web. En activant et utilisant ceux-ci, vous acceptez la politique de confidentialité de Twitter: https://help.twitter.com/fr/rules-and-policies/twitter-cookies