Arduino
La famille Arduino est originaire d'Italie. Ce sont de petites cartes électroniques qui tiennent dans la main. Le prix est d'environ 25 euros. Le site de référence est http://arduino.cc/. Il existe divers produits compatibles, dont le nom se termine souvent par "duino". On peut citer Educaduino, fabriqué en France par Eurosmart (http://educaduino.fr).
En 2010, le plus fréquent était Arduino 2009 ("Duemilanove" en italien).
En 2011, sont apparus Arduino Uno et Arduino Mega. Arduino Uno lui est équivalent à Duemilanove, sauf que le convertisseur USB-Série est différent. Ceci a une conséquence heureuse : l'acquisition par les pilotes ci-dessous est plus rapide (de l'ordre de 4 ms par mesure, au lieu de 15 ms par mesure pour Duemilanove), et une conséquence malheureuse : sous Linux, le port série qui apparaît n'est pas ttyUSB0, mais ttyACM0, ce qui m'a obligé à modifier un peu le pilote.
Arduino Mega a les mêmes propriétés que Uno, mais avec beaucoup plus de connecteurs (une cinquantaine d'entrées/sorties).
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 plusieurs 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, pour pouvoir utiliser les logiciels du système Mensurasoft (soit ceux disponibles sur ce site, soit ceux que vous ferez vous-même, avec n'importe quel langage de programmation).
- on peut aussi l'utiliser comme convertisseur USB-série, pour utiliser un appareil ancien ayant uniquement un connecteur série sur un ordinateur moderne ayant uniquement des prises USB.
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.
Les pilotes pour Arduino doivent s'accorder au programme implanté dans la carte 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 32 bits et Linux, à 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 sous Windows, ttyUSB0 sous Linux en général) ; si par hasard Arduino s'est installé à une autre voie, il faut donner une autre valeur. Normalement, le bandeau de la boite de dialogue affiche les ports sériels disponibles. (En cas de problème, 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 32 bits, faits en FreePascal. Ce pilote est aussi multiport : il identifie les divers ports possibles, et vous demande de choisir, en commençant par le plus probable (celui qui a le plus haut numéro).
Pilotes (dll pour Windows, so pour Linux) faits en PureBasic. Ces pilotes sont monoports : pour pouvoir les utiliser, il faut savoir quel port de communication est apparu lorsqu'on a branché l'Arduino. Par exemple, sous Windows, il a pu apparaître un port Com7:, et il faut utiliser le pilote lib_arduino_pb9600_ansi_com7.dll ; sous Linux, avec Arduino2009, il peut apparaître un port /dev/ttyUSB0, ce qui fait utiliser le pilote lib_arduino_pbUSB0.so ; si, sous Linux on utilise Arduino Uno, cela fait apparaître un port /dev/ttyACM0, et conduit donc à utiliser le pilote lib_arduino_pbACM0.so. Pour vous aider, dans le fichier zip existe un programme qui fait la liste des ports disponibles. Il y a aussi le programme .pde à implanter dans Arduino.
pilotes pour Arduino à 115200 bauds (Windows + Linux). Il permet de faire des mesures rapides (intervalle 1 ms) avec oscillo-PB.
Pilotes (dll) pour Windows 16 bits, à employer avec MGW (Mesugraf pour Windows 16 bits) : voir la partie "Museum". 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 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). Par contre, ce logiciel n'est pas fonctionnel sous Windows 7.
Quelques montages et applications scientifiques pour Arduino :
expérience classique de physique, charge et décharge d'un condensateur à travers une résistance (logiciel Mensurasoft-LZ, sous Windows et sous Linux, Arduino Uno)
Arduino + mesure de poids par capteur DFRobot SEN0160 : permet de réaliser une balance enregistreuse (jusqu'à 1 kilogramme). Pilotes pour Windows en PureBasic, mais ils devraient fonctionner aussi sous Linux.
Arduino + mesure d'humidité et température par capteur DHT11 (pour l'instant, seulement pour Windows, mais devrait être facile à adapter pour Linux, car le pilote est en PureBasic)
Dernière modification le 01/02/2018