L’objectif de ce premier essai est de commander un store motorisé par le biais d’un arduino commandé en bluetooth d’un smartphone android.
L’objectif
Le moteur du store est relié à 4 fils (voir l’article de Fanch ici) :
- un fil jaune/ vert de terre
- un fil bleu de neutre
- un fil noir pour un des sens de rotation
- un fil marron pour l’autre sens
Le moteur contient des fins de course, on n’a donc pas besoin de les gérer.
L’objectif est donc de commander deux relais par l’intermédiaire d’un arduino équipé de bluetooth. Un relais sera relié au fil noir, l’autre au fil marron.
Prototypes
J’utilise deux relais « solid state » G3NA-220B (fiche technique ici, en pdf). Ils sont un peu surdimensionnés mais utiles en attendant la réception d’autres relais.
prototype n°1 : 2 lampes par liaison série
Je n’ai pas respecté les codes couleur… A revoir pour la version définitive !
Ce sketch (test-fanch-serie.ino) allume la lampe « Montée » lorsque je tape 0 dans la console série. SI je tape 1, c’est la lampe descente qui s’allume.
Ajout d’un module bluetooth
Paramétrage du module (HC-06) selon les modalités décrites dans cet article. Attention n°1 le sketch doit être changé pour que BTSerie.begin(9600); et non 57600 baud puisqu’un module neuf est paramétré par défaut à 9600 bauds.
Pour une raison que j’ignore, le sketch ne répondait à aucune autre instruction que AT (il répondait OK. J’ai donc modifié le sketch pour envoyer les instructions au HC-06 directement dans le setup…
J’ai donc modifié le sketch pour que le setup fasse les réglages suivants en direct, sans que j’ai à saisir des choses dans la console série.
- Demande le N° de version
- donne le nom store au module HC-06
- donne la vitesse 57600 baud au HC-06
BTSerie.print("AT+VERSION"); delay(1000); BTSerie.print("AT+NAMEstore"); delay(1000); BTSerie.print("AT+BAUD7"); delay(1000);
La console série affiche alors OKlinvorV1.8OKsetnameOK57600, donc les instructions ont été prises en compte.
Le sketch correspondant est celui-ci : BlueTooth-AT-commands-2016-05-22.ino
J’éteinds l’arduino. Je le redémarre. Le module ne communique maintenant plus qu’à 57600 baud avec l’arduino.
Proto n°2 : Interaction avec une appli Android
J’ajoute d’abord le module bluetooth HC-06 paramétré précédemment.
Je vais utiliser l’application android JoystickBluetooth Commander (que j’utilise déjà dans le NoRobo – cf cet article).
I faut que :
- appui sur bouton 1 = montée pendant 3 secondes
- appui sur bouton 2 = descente pendant 3 secondes
- un deuxième appui sur l’un des deux boutons annule l’ordre
- si bouton 1 allumé, on ne peut pas simultanément descendre
- si bouton 2 allumé, on ne peut pas simultanément monter
en pseudocode, ça veut dire ce qui suit :
bool up = false; bool down = false; Si up est true ou down est true (il faut bouger le store) si up est true ET down est true on a un big problème, le moteur va devenir fou sinon allumer ou éteindre selon la valeur de up ou de down
Le sketch (test-fanch-BT-1.ino) permet de réaliser ça avec l’application Joystick Bluetooth commander connectée au module bluetooth « store » réglé à une vitesse de 57600 bauds.
Et voilà le résultat :
Ca fonctionne correctement car il est effectivement impossible d’allumer les deux lampes à la fois (ce qui casserait le moteur).
Maintenant, il n’y a plus qu’à tester in situ !
Bonjour,
ce que je ne sais pas faire est la programmation du logiciel sur Android.
Où puis-je trouver un ‘mode d’emploi’ de Joystick BT commander?
Merci