Arduino et Wiring sont deux projets annexes au projet Processing. Ils ont été dévéloppé tous les deux à l’Interaction Design Institute Ivrea, un programme de recherches post-diplôme en Italie qui a maintenant fermé ses portes - ironiquement juste au moment où cet aspect de leurs recherches est devenu la méthode de rigeur pour apprendre l’interfaçage entre le monde physique et les ordinateurs. Arduino, et de plus en plus Wiring, sont également utilisés dans la création d’œuvres, comme ce projet, Tuned Stairs, conçu par le laboratoire Fabrica et exposé en Octobre 2006 au Centre Georges Pompidou :

La raison du succès d’Arduino vient de plusieurs aspects du projet, mais le plus important serait - surout pour des étudiants français ;-) - le coût. Une carte Arduino coute 22€ (sans frais de port), ou 20€ si on les achete par lots de 10. Pour donner une idée de l’économie engendré : à l’Atelier mécatronique les étudiants achetent souvent des modules USBmOD3 qui nous coûtent à peu près 30€ et permettent de communiquer avec un circuit via un port USB. Arduino, par contre, intègre les mêmes composants du USBmOD3, coutent 10€ de moins, rajoute un circuit programmable et autonome, de multiples broches d’interaction avec ce circuit, et l’ensemble des composants nécessaires (horloge, capacitance, etc) pour le faire fonctionner par le bias de la cable USB ou d’une alimentation 12v. Il faut, bien sûr, rajouter les coûts supplémentaires, comme les circuits annexes qui doivent être rajoutés à Arduino pour piloter un moteur, ou gérer un capteur quelconque. mais avec l’arrivé des centres de fabrication de circuits rapides comme mdsrl, pour ne donner qu’un exemple, un artiste pour fabriquer rapidement et pour un coût gérable l’ensemble des besoins électroniques de son projet. Dans certains cas, travailler de cette mannière permet même de travailler plus rapidement et à moindre coût que si on l’avait ensemblé soi-même. Enfin, notre école a l’avantage supplémentaire d’avoir en son sein plusieurs spécialistes de la robotique et de l’interfaçage électronique via le Laboratoire LOEIL : tout ce qui doit être produit en complément peut l’être au moindre coût.

Si le projet Wiring n’a pas connu un aussi grand succès, c’est plutôt dû à cette question du coût, car il s’agit d’une carte tout aussi facile à utiliser et plus puissante. mais du fait que cette dernière contient plus de ports d’entrée et de sortie, elle coûte plus cher à l’achat. Après cette différence, les deux projets sont quasiment les mêmes, et tous ce que nous dirons ici concernera dans laplupart des cas les deux modules.

matériel

Tout d’abord il faut récupérer une de ces deux cartes :

On peut acheter les cartes Arduino en Europe chez PCB Europe ou en Amérique chez Sparkfun. On peut acheter la carte Wiring en contactant son concepteur Hernando Barragán (hbarragan at uniandes.edu.co) qui les envoie depuis la Colombie.

Pour leur alimentation, la carte Arduino ou Wiring peuvent être alimentées via la port USB. L’alimentation via USB est suffisant pour piloter des choses tels des lampes LED ou des petits capteurs, et surtout les boutons.

Logiciel

Une fois que vous avez récupéré la carte, il faut télécharger le logiciel qui permet de la programmer. Tous les deux sont des logiciels open-source, et peuvent être téléchargés gratuitement. Le logiciel d’Arduino peut être téléchargé ici (download), et celui de Wiring peut être téléchargé ici (download). Toutes les instructions qui suivent concernent Arduino, mais ils sont presque identique pour Wiring (juste les couleurs changent).

Si vous êtes sur macintosh, placez le logiciel Arduino dans votre dossier “ Applications ”. Si vous êtes sur Windows, placez-le dans “ Program files ” sur votre disque de préférence - le mien s’appelle “ C:\ ” (eh tiens, il ressemble à un gentil français avec son berêt si on le regarde comme un smiley dans le mauvais sens; ok, d’accord, je m’ennuie trop ce soir, mais bon, avec des noms comme “ C:\ ” il faut bien trouver des façons de s’amuser ;-).

maintenant que vous avez téléchargé le logiciel, il faut installer les pilotes USB qui permettront à votre ordinateur de communiquer avec la carte. Comme le programme lui-même, ces pilotes sont open-source. Elles sont écrites par la société FTDI qui a fabriqué le convertisseur TTL<>USB qui se trouve sur la carte (ainsi que la carte USBmOD mentionné plus haut). Dans le dossier de Arduino, vous trouverez ces pilotes dans le dossier “ drivers ” :

Cliquer sur l’icône FTDI selon votre machine Intel ou PPC et suivez les instructions. Si vous êtes sur Windows ou Linux, vous pouvez suivre les instructions adéquates en cliquant sur le bon lien sur la page d’Installation Guide :

Ces instruction sont très clairs, et ne nécessite pas un bon niveau d’anglais. Ils sont également accompagné d’illustrations photographiques.

Tester la communication

maintenant nous allons vérifier si la connection USB<>Arduino fonctionne. Pour le faire, il suffit de brancher la carte Arduino dans la port USB. Voici une image qui montre tous les points clé de votre carte Arduino :

Vérifiez bien tout d’abord que la lumière verte est allumée (LED alimentation). Si elle n’est pas allumée, cela pourrait venir de plusieurs choses, y compris une carte défectuese (mais oui, ça arrive). Avant de flipper, vérifiez quand-même que la choix de l’alimentation (PWR SEL = “ Power Select ”) est sur “ USB ” et non pas sur ” EXT ” (c’est-à-dire “ alimentation externe ”); il s’agit d’un court-circuit, appellé “ jumper ” en anglais, qui va de la broche centrale à celle en face de “ USB ” (l’autre solution, fait un court-circuit activant plutôt “ EXT ”).

Arduino vient avec un programme déjà chargé dedans. Ce programme fait clignoter le “ LED test ” de notre schéma. C’est ce même LED test que nous allons re-programmer pour voir si nous pouvons controller la carte.

Démarrer maintenant le logiciel Arduino. Vous aller voir une fenêtre qui ressemble beaucoup à la fenêtre Processing, qui ressemble d’ailleurs beaucoup à la fenêtre Wiring, qui ressemble, lui, à la fenêtre Processing mobile. Hmmm ? Je me demande si tous ces projets sont reliés ?

Petite asuce : si vous vous perdez, Arduino est la fenêtre bien verte avec le petit coin d’adjustement tout en blanc et donc moins élégant que ces cousins :

Pour tester la communication entre Arduino (programme) et Arduino (carte), nous devons activer le bon port de communication. Sur beaucoup d’ordinateurs il y a plusieurs port série. Sur un macintosh nous trouvons par exemple “ modem ” et “ Bluetooth ”, en plus des ports que nous avons installé via les installeurs FTDI. Pour sélectionner le bon, aller dans le menu “ Tools > Serial Port > ” et sélectionner le premier de la liste qui contient “ usbserial ”. Le mien s’appelle “ /dev/tty.usbserial-A1015 ”, le votre s’appelle peut-être “ /dev/tty.usbserial-A3000Yj0 ” :

maintenant, nous allons choisir un programme simple et le charger sur la carte. Aller dans le menu “ file > Sketchbook > Examples > led_blink ” ce qui devrait sélectionner le programme suivante :

/* Blinking LED
 * ------------
 *
 * turns on and off a light emitting diode(LED) connected to a digital
 * pin, in intervals of 2 seconds. Ideally we use pin 13 on the Arduino
 * board because it has a resistor attached to it, needing only an LED
 *
 * Created 1 June 2005
 * copyleft 2005 DojoDave <http://www.0j0.org>
 * http://arduino.berlios.de
 *
 * based on an orginal by H. Barragan for the Wiring i/o board
 */

int ledPin = 13;                 // LED connected to digital pin 13

void setup()
{
  pinmode(ledPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
}

Une petite lecture rapide du programme nous fait voir qu’il s’agit d’une forme de programmation très proche de Processing (Youpi!). Derrière la scène, Arduino/Wiring travail en langage C et non pas en Java comme dans Processing. Cela tient au fait que Java n’est pas un bon langage pour les circuits, car pas assez compacte.

Sans changer le programme, appuyez sur le bouton lecture pour convertir ce code en langage machine prêt pour la carte. Ensuite, appuyez sur le bouton Reset sur la carte :

…et immédiatement après ce Reset, appuyer sur le bouton “ Upload to I/O board ” dans le logiciel Arduino :

Pourquoi cette danse rapide entre la carte et le logiciel côté ordinateur ? Et bien, parce qu’en réalité vous êtes en train de redémarrer votre circuit, ce qui le met dans une mode de chargement un peu comme un ordinater quand il démarre. Cela s’appelle le “ bootloader ”, c’est-à-dire la partie du programme de la carte qui démarre quand on lui donne le coup de botte de départ (si, si, un coup de botte, je suis sérieux).

Pour pouvoir changer facilement le programme dans un circuit, celui-ci va toujours attendre un nouveau programme pendant quelque secondes au redémarrage du circuit. Dans Arduino et Wiring la carte attend juste quelque secondes pour un nouveau programme : s’il ne reçoit rien, il démarre l’ancien. Voilà pourquoi il faut appuyer d’abord et rapidement sur le bouton physique de la carte, puis sur le bouton virtuel d’Arduino.

Si tout va bien, Arduino doit vous afficher un message “ Done Uploading ”, ce qui veut dire qu’il est prêt à executer son nouveau programme. Dans Wiring il faut réappuyer sur le bouton Reset pour activer celui-ci, alors que sur Arduino il se lance directement dans votre nouveau programme sans attendre de Reset (pratique).

Notez (en regardant notre schéma plus haut) les LED que nous avons indiqué pour la “ Communication USB / Série ”. Ceux-ci sont étiquettés “ TX ” et “ RX ” et correspondent à “ Transmission ” et “ Reception ” (ne demandez pas pourquoi “ X ”). Quand votre carte communique avec l’ordinateur et vice-versa, ces lumières vont s’allumer.

Programmation

Vous êtes maintenant prêt à programmer votre Arduino, et a construire des circuits pour votre installation. Si votre programme fonctionne, amusez-vous à changer les valeurs du delay() et renvoyez le programme, juste pour être sûr d’avoir bien compris le fonctionement de l’ensemble.