Arduino, l'EXAO en grande liberté

(menu interfaces USB)

Arduino est une famille de petites cartes électroniques de quelques centimètres de côté, d'origine italienne et dont le prix est d'environ 25 euros. Le site de référence est http://arduino.cc/    ou sa version francophone http://arduino.cc/fr/

En 2010, le plus fréquent est Arduino 2009 ("Duemilanove" en italien) ; apparemment, Arduino Uno lui est équivalent, sauf que le convertisseur USB-Série doit être différent..

arduino 2009, avec un capteur de température

Arduino contient un microprocesseur et un peu de mémoire, et peut être considéré comme un petit ordinateur à part entière, mais sans clavier, sans écran, sans disque dur ou disquette : il communique avec le monde extérieur par sa prise USB. On peut le programmer sur un ordinateur normal (Windows, Linux, Mac...), et envoyer le programme compilé vers Arduino, qui ensuite effectue le programme.
Lorsqu'on branche Arduino sur un ordinateur muni d'une prise USB, il est reconnu comme une prise sérielle supplémentaire. Par exemple, sous Windows, il apparaît comme un Com5: ou Com6:.

On peut l'utiliser de deux façons différentes :
- soit de façon autonome, puisque c'est un petit ordinateur. Il peut faire des mesures, et en fonction du résultat, déclencher des actions. La gamme des possibilités est tellement vaste qu'il n'est pas possible ici de le développer.
- soit de façon liée à un ordinateur, qui lui envoie régulièrement les instructions à effectuer. C'est ce dernier type qui sera développé ici.

Principe de fonctionnement d'Arduino en tant que matériel d'acquisition de données EXAO

On commence par charger dans Arduino un programme de configuration. Ce programme lui fait faire une mesure ou une action à chaque fois qu'il reçoit un message particulier. Ensuite, l'ordinateur relié à Arduino lui envoie des messages, et reçoit le résultat des mesures, qu'il peut traiter comme à partir de n'importe quel matériel de mesure.
Caractéristiques électroniques d'Arduino 2009
- 6 entrées analogiques sur 10 bits, pouvant faire des mesures entre 0 et 5 V.

- 14 entrées et sorties logiques (TTL : entre 0 et 5 V), numérotées de 0 à 13. Dans la pratique, les broche 0 et 1 sont indisponibles car elles correspondent aussi à l'envoi et à la réception de signaux par la prise USB : il reste donc 12 broches disponibles. Six de ces broches peuvent servir aussi de sorties analogiques (entre 0 et 5 V) car elles peuvent fonctionner en tant que sorties PWM, c'est à dire avec un découpage de la tension en fréquence.
Pour un emploi généraliste, le mieux est de réserver quelques unes de ces voies aux sorties logiques, quelques unes aux entrées logiques, et quelques unes aux sorties analogiques. Pour des emplois plus spécifiques, on peut employer les 12 broches soit à des entrées, soit à des sorties.

Des pilotes pour Arduino


Contrairement à beaucoup d'appareils de mesure, où le fonctionnement est rigide, Arduino a un fonctionnement programmable : on peut fixer la vitesse de communication (par défaut 9600 bauds, 8 bits de données, 1 bit de stop, sans parité), et la nature des messages à échanger. Il est donc indispensable de prévoir à la fois le programme à implanter dans Arduino et le pilote nécessaire pour l'utiliser. C'est pourquoi les fichiers disponibles ici contiendront le pilote pour l'ordinateur de type PC et le programme à implanter dans Arduino.
Quelques choix arbitraires (mais que vous pouvez changer en recompilant le programme-source) :
- la vitesse de base de 9600 bauds est conservée. Cela permet de faire facilement des mesures lentes, de l'ordre de une ou quelques mesures par seconde. On peut augmenter cette vitesse jusqu'à 115000 bits/s.
- Dans un but d'utilisation générale, les 11 broches d'entrée-sortie ont été réparties à peu près équitablement :  les broches 3, 5, 6, 9 servent pour les sorties analogiques (PWM),  les broches 2, 4, 7, 8 pour les entrées binaires et les broches 10, 11, 12, 13 pour les sorties binaires.

Pilotes (dll) pour Windows, à employer avec MGW32, Visu32, ou autres logiciels. Au lancement (chargement de la bibliothèque dynamique) il faut choisir la voie série, et par défaut ce pilote propose la voie la plus grande (Com5: ou Com6: en général) ; si par hasard Arduino s'est installé à une autre voie, il faut donner une autre valeur (Pour connaître les voies de communication qui existent sous Windows XP, faire Démarrer | Paramètres | Panneau de configuration | Système | Matériel | Gestionnaires de périphériques | Ports (Com et Lpt). Normalement, Arduino apparaît comme USB Serial Port.

Pilotes (dll) pour Windows 16 bits, à employer avec MGW (Mesugraf pour Windows 16 bits). C'est vrai que Windows 3.1 date d'il y a près de vingt ans, mais MGW est un logiciel qui a encore quelques possibilités de plus de MGW32, en particulier la gestion des sorties analogiques progressives. Comme ce logiciel est aussi utilisable sous les versions modernes de Windows telles que Windows XP, autant en profiter. Là encore, il faut indiquer dans la fenêtre de dialogue quelle est la voie de communication sérielle (Com6:, Com5:, ou autre).