Arduino
Arduino est une plateforme de prototypage à bas coût sous licence Creative Commons. Basée sur les microcontrôleurs ATMEL, elle permet de réaliser rapidement des projets électroniques sur les trois plateformes Linux, Mac et Windows.
Arduino fournit un utilitaire graphique, ainsi qu'une bibliothèque de librairies permettant de programmer les cartes et des périphériques simples.
Installation
À partir des dépôts
Depuis Ubuntu 10.10 le paquet Arduino est présent dans les dépôts Universe d'Ubuntu.
Pour l'installer, il suffit d'installer le paquet arduino.
La version présente dans le dépôt n'est pas toujours la plus récente, il peut être intéressant d'installer la dernière version depuis l'archive du site officiel en suivant la méthode décrite ci-dessous.
Depuis Ubuntu 12.04 un utilitaire est présent dans les dépôts. Il permet de programmer Arduino en ligne de commande, Pour l'installer, il suffit d'installer le paquet arduino-mk.
Depuis l'archive du site officiel
Pour installer Arduino à partir de l'archive officielle :
- télécharger l'archive .tgz (choisir "32 bit" ou "64 bits" selon votre architecture) sur le site officiel
- lancer le script "install.sh" de l'archive, vous n'avez qu'à glisser-déposer le fichier dans un terminal et appuyer sur "Entrée" (ctrl-alt-t pour ouvrir un terminal)
- Un raccourcis "Arduino IDE" sera créé sur votre bureau, vous devez le rendre exécutable en faisant clic droit → Propriété → Permission → cochez "autorisez l'exécution du fichier comme un programme"
- lancez le logiciel du raccourcis
(en) Installation d'Arduino IDE sous linux sur le site officiel (en) Pour les plus anciennes versions d'Ubuntu.
Utilisation des ports série du menu
Les nouvelles versions du logiciel vous demanderons lors de la première exécution de vous authentifier pour vous donner l'autorisation d'accéder aux ports série en vous ajoutant aux groupe "tty" et "dialout". Notez que vous devez vous déconnecter et vous reconnecter pour que les changements soient effectifs.
Si pour une raison ou pour une autre l'utilitaire échoue à l'ajout du groupe, vous pouvez le faire manuellement:
sudo usermod -a -G tty Nom_Utilisateur
sudo usermod -a -G dialout Nom_Utilisateur
il faut ensuite se déconnecter et se reconnecter pour que les modifications soient effectives.
Problèmes connus
Problème de micro-logiciel utilisé pour la communication par le port USB : Sur les Duemilanove, le CI utilisé pour la communication Série USB entre Arduino et le port USB était un CI FTDI qui fonctionne très bien.
Avec la version Arduino UNO, ce CI a été remplacé par un nouveau CI dédié utilisant un micro-logiciel dédié. Ce changement entraîne des problèmes de communication entre le PC et la carte Arduino Uno sous Ubuntu. Ceci est vrai pour les versions avant mai 2011 apparemment.
Sur ces versions de carte Arduino UNO antérieures à mai 2011, il est nécessaire de mettre à jour le micrologiciel de communication USB de la carte UNO, ce qui se fait par le port USB. Voir cette page du projet décrivant la manipulation ainsi que ce site en français qui explique très bien les opérations à faire.
Si le port de sortie ttyUSBx ou ttyACMx n'apparaît pas dans la liste des ports série du logiciel Arduino, une autre page à consulter - en anglais - pour installer le module cdc_acm et lier le matériel au module (fonctionne avec Arduino UNO R3 firmware Rev.001 et Ubuntu studio 14.04 64 bits)Installation of arduino on all Linux version). En simplifiant :
- Récupérer les identifiants du vendeur et du produit avec lsusb -v : XXXX et YYYYY
- Créer le lien avec le port : en superutilisateur, on créée le fichier /etc/udev/rules.d/99-arduino.rules (sudo gedit /etc/udev/rules.d/99-arduino.rules)
- On y place :
SUBSYSTEMS=="usb", ATTRS{idProduct}=="YYYY", ATTRS{idVendor}=="XXXX", SYMLINK+="ttyACM%n"
en remplaçant XXXX ET YYYY
- On fait charger le module cdc_acm au démarrage. Dans le fichier /etc/modules, en superutilisateur, on rajoute la ligne (sudo gedit /etc/modules)
cdc_acm
- On rend le port accessible à l'utilisateur : ce port est dans le groupe dialout.
- On rattache l'utilisateur au groupe dialout : tableau de bord/Système/Utilisateurs et groupes - Gérer les groupes - sélectionner dialout et cliquer sur Propriétés - cocher l'utilisateur
- On reboot, on branche l'Arduino et on vérifie avec dmesg dans une console que l'on a quelque chose comme : cdc_acm 3-1:1.0: ttyACM0: USB ACM device
- On lance le logiciel Arduino et dans Menu Outils/Ports série, on sélectionne /dev/ttyACM0
Utilisation
Compilation et programmation sous console
Il s'agit dans cette partie de montrer comment compiler avec avr-gcc et comment charger votre programme dans votre carte Arduino.
Installation
avr-libc | avrdude | binutils-avr
Compilation
avr-gcc s'utilise presque comme gcc, en spécifiant le microcontrolleur de la carte.
Par exemple pour une carte Arduino UNO, avec un avr atmega328p, on a :
avr-gcc -mmcu=atmega328p -o main.elf main.c
man avr-gcc
Puis on extrait les données utilisables par le micro-controlleur :
objcopy -O ihex -R .eeprom main.elf main.hex
Programmeur
La programmation de la carte se fait avec avrdude. Il faut lui spécifier le programmeur, le micro-contrôleur et le port sur lequel la carte est branchée.
Dans notre exemple le programmeur est un "stk500v2", mais un type de programmeur plus spécifique a été créé : "arduino".
Le micro-controleur sera cette fois-ci : m328p.
man avrdude
Vous aurez par exemple :
sudo avrdude -c arduino -p m328p -P /dev/cuaU0 -U flash:w:main.hex
Simulation de l'Arduino
Il existe un petit logiciel qui permet de simuler son utilisation, mais il ne semble pas fonctionner sous Wine, une machine virtuelle Windows est ici nécessaire : il s'appelle VBB.
Il existe un logiciel pour dessiner les plans des cartes électroniques pour l'Arduino : fritzing.
Il est possible de contrôler l'Arduino par le biais de Scratch.
Voir aussi
- Le tutoriel Arduino pour les débutants sur OpenClassrooms (ex Site du Zero).
- Manuel français sur arduino et l'électronique libre, réalisé par Flossmanuals Francophone
- http://blog.ardublock.com/ Ardublock programmation graphique de l'arduino.
Contributeurs : mimilus,sivolc73, gduteil, pygmee, samcelia.