Tous ceux qui ont vu James Bond piloter sa BMW avec son téléphone portable ont rêvé pouvoir faire de même avec leur propre véhicule, ou plus simplement avec leur chaine de salon, leurs volets électriques ou leur robot.
Heureusement pour eux, les téléphones qui sortent sur le marché disposent la plupart du temps d’une connexion Bluetooth (BT) et d’un langage de programmation (J2ME, Java pour les mobiles) permettant d’écrire de petits programmes.
Côté voiture/robot/chaine hifi/stores, il faut donc un équipement capable de communiquer avec le téléphone en Bluetooth. Exit la communication XBee que nous avions déjà vue pour faire communiquer à distance deux équipements électroniques, on va donc parler maintenant de la version version BT de l’Arduino.
Description matérielle
La carte est légèrement plus grande qu’une Arduino classique (type Duemilanove) : 82 mm x 54 mm car le module Bluetooth dépasse.
Il n’y a pas de connecteur jack pour l’alimentation mais un bornier à vis et il n’y a pas de connecteur USB, la place est prise par le module bluetooth. Autre changement, le microcontrôleur AVR est en version CMS et pas en DIP classique.
Pas d’autre changement visible qui soit important, mais on peut déjà noter que la patte 7 n’est pas utilisable (sur les inscriptions, vous voyez d’ailleurs que le numéro est supprimé (-). On y reviendra plus tard, c’est la patte de reset du module Bluetooth.
Alimentation
Pour pouvoir être embarquée facilement (c’est quand même la destination normale pour une carte sans-fil), cette version particulière de l’Arduino permet une tension d’alimentation basse (dès 1,2 volts) grâce à un convertisseur de tension qui reconstruira les 3,3 volts nécessaires. Par contre, la tension maximale est bien inférieure à la carte classique, puisqu’il est formellement interdit de l’alimenter avec une tension supérieure à 5,5 volts !!
Dans mon cas, j’ai utilisé deux piles 1,5 volts dans un coupleur de piles qui se connecte non pas au bornier, mais directement sur la patte "9v" (attention, le nom est mal choisi et il ne faut surtout pas dépasser les 5,5 volts).
Description logicielle
Pour programmer l’Arduino BT, il faut utiliser une liaison Bluetooth avec l’ordinateur. Un simple "dongle" USB fait l’affaire et la carte est "découverte" et "appariée" comme tout autre matériel Bluetooth.
Connexion au PC
La carte est vue comme un périphérique non défini qui porte le nom "ARDUINO BT" ou bien qui est identifié par une adresse de type MAC (genre 0a:4c:8f:12:a2). Lorsque vous choisissez de vous y connecter, on vous demandera de choisir le mode de connexion : il faut utiliser celui avec mot de passe, et c’est 12345.
Une fois apparié, la carte offre 2 services, sous forme de port série entrant et port série sortant. Je ne sais pas très bien à quoi correspond le second, j’ai utilisé le premier (dans les images, COM29).
Premier test
Comme souvent avec une carte programmable, le premier test est de faire clignoter une led. Il y a une petite subtilité pour la carte Arduino BT, car il faut initialiser le Bluetooth, en utilisant la patte 7 citée plus haut. On y accède normalement avec les mêmes fonctions qu’une entrée/sortie numérique, soit pinMode et digitalWrite. Il suffit de suivre l’exemple ci-dessous dans chacun de vos programmes.
Autre point notable, la vitesse de communication doit être 115200 bps. C’est la configuration standard du module. Pensez-y quand vous utiliserez le terminal série du logiciel Arduino.
int LED = 13 ; // select the pin for the LED
int RESET = 7 ;
void setup()
pinMode(LED,OUTPUT) ; // declare the LED’s pin as output
pinMode(RESET,OUTPUT) ; // declare the reset pin as output
Serial.begin(115200) ; // connect to the serial port
digitalWrite(RESET, HIGH) ;
delay(10) ;
digitalWrite(RESET, LOW) ;
delay(2000) ;
void loop ()
digitalWrite(LED, HIGH) ;
delay(100) ;
digitalWrite(LED, LOW) ;
Serial.println("ciao") ;
delay(1000) ;
Envoi du programme
Maintenant que le programme est écrit dans l’environnement Arduino, il faut le compiler et l’envoyer dans la carte : prenez-bien soin de sélectionner le type de carte (Arduino BT) dans le menu adéquat avant compilation, ainsi que le port série dans le menu voisin.
Puis cliquez sur "envoyer le programme". Attention, il n’y a pas d’auto-reset comme avec une liaison série ou USB, il faut donc appuyer sur le bouton Reset de votre carte Arduino BT. Faites le calmement, après avoir cliqué sur "envoyer le programme", sans vous précipiter, sans synchroniser le clic et la pression, et sans réappuyer comme un dingue :)
Normalement, en plantant une led directement entre la patte 13 et la masse juste à côté (GND), vous devriez obtenir un beau clignotement.
Ouvrez la console série du logiciel Arduino, changez la vitesse pour 115200 et vous verrez notre ami Massimo Bansi (le créateur de la carte Arduino, dont j’ai repris le code ci-dessus) vous saluer en italien.
Autres réalisations
Visualiser les valeurs reçues par l’Arduino BT sur un téléphone portable, c’est possible et tout aussi simple avec Mobile Processing : voici des exemples (mais pas réalisés par le club).