Rogdham

Arduino et Serial

Premier article de la série sur Arduino.

Au programme : communication avec l’ordinateur via Serial.

Résultat attendu

Vous connaissez le sketch blink par cœur ? Je vous propose de le modifier, pour changer la vitesse de clignotement à la volée en la rentrant directement dans la console série.

Matériel et logiciels utilisés

Le matériel est très raisonnable : il suffit d’un arduino et d’un câble pour le relier à l’ordinateur.

Si vous utilisez un matériel compatible qui ne possède pas de DEL intégrée sur une sortie digitale, il vous faudra également une DEL ainsi qu’une résistance et de quoi les relier entre eux (des fils et une plaque prototype par exemple).

Niveau logiciel, on utilisera l’IDE officielle.

Ressources utiles

La table ASCII

L’utilisation de la console série de l’IDE arduino implique que les caractères soient envoyés à l’arduino sous leur représentation ASCII, il est donc utile d’avoir une table de correspondance.

Pour la suite de l’article, seulement quelques caractères devraient vous être utiles, regroupés dans le tableau ci-dessous.

Caractère retour à la ligne . 0 1 2 3 4 5 6 7 8 9
Code 10 46 48 49 50 51 52 53 54 55 56 57

Utilisation de Serial

Et bien sûr, il faut avoir un minimum de connaissance de l’interface Serial.

Pour réaliser ce projet, il suffit de comprendre un exemple donné sur le site officiel1, que je recopie ci-dessous2.

// for incoming serial data int incomingByte = 0; void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { // send data only when you receive data: if(Serial.available() > 0) { // read the incoming byte: incomingByte = Serial.read(); // say what you got: Serial.print("I received: "); Serial.println(incomingByte, DEC); } }

À vous !

Vous avez tous les éléments en main pour réussir ce premier projet. Et si vous bloquez, l’astuce ci-dessous peut vous aider à repartir.

Amusez-vous bien !

Astuce

L’arduino va recevoir les caractères que vous entrez les un après les autres. Comment savoir lorsque lorsque la série de caractères est terminée ?

Par exemple, si je rentre « 100 » au clavier, l’arduino va recevoir successivement :

Il faut donc un caractère qui donne la fin de la séquence. Vous avez le choix :

Inclure le retour à la ligne dans les caractères qui donnent la fin d’une séquence est intéressant : il suffira alors de choisir dans la console série de rajouter ce caractère la fin du message envoyé. Si vous faites ainsi, Il suffira de rentrer « 100 » dans la console série pour que les caractères de codes ASCII 49, 48, 48 et 10 soient envoyés à l’arduino.

Conclusion

Vous savez maintenant faire communiquer l’arduino et l’ordinateur dans le sens le plus difficile.

Si vous voulez aller dans l’autre sens, pourquoi ne pas afficher un message donnant les instructions d’utilisation dans la console série lorsque vous la lancez ?

Pour ce faire, regardez du côté des fonctions print() et println().

Dans le prochain épisode, promis, plus de DEL. D’ici là, amusez-vous bien !

  1. L’exemple est entre autre sur la page http://arduino.cc/en/Serial/Available.
  2. L’exemple est dans le domaine public : “Code samples in the reference are released into the public domain” cf http://arduino.cc/en/Reference/StyleGuide.

Cet article est sous licence CC BY-SA.

Le code source inclus dans cet article est dans le domaine public.

Adresse courte de l’article : http://r.rogdham.net/10.