Premier montage
2014-09-27
Introduction
Cette section se veut une introduction à la programmation sur carte Arduino, des cartes électroniques faciles à programmer, utilisant des microcontrôleurs conçus par Atmel.
Je développe sur une Arduino Leonardo sous GNU/Linux Debian. Des différences peuvent apparaître sur une autre carte ou un autre système d’exploitation. N’hésitez pas à me contacter le cas échéant.
J’ai commandé ma carte sur GoTronic, que j’ai choisi pour la variété des composants disponibles (seul bémol : pas de WiiChuck, mais ce n’est pas très compliqué à fabriquer). Je n’ai pas eu à m’en plaindre.
Préparer la carte
Brancher la carte
Votre carte devrait avoir été livrée avec un cordon USB adapté (dans mon cas TypeA - Micro-B). Lorsque vous voulez faire fonctionner la carte ou y transférer des données, reliez-la à votre ordinateur à l’aide de ce cordon. J’ai pris l’habitude de la débrancher lorsque je ne m’en sers pas et je pense que ce n’est pas une mauvaise habitude.
Droits d’accès (Linux)
Sous Linux, le fichier /dev/ttyACM0
(ou ACM1
, …) devrait apparaître lorsque la carte est branchée (ou au moins durant la séquence d’initialisation). C’est ce fichier qui vous permet d’intéragit avec la carte. Seul un utilisateur privilégié peut y accéder en lecture ou écriture. Pour vous permettre d’y accéder avec votre utilisateur habituel deux approches sont possibles (chacune se fait avec le compte root
) :
Changer les droits d’accès via udev
Exécutez la commande :
# echo 'ATTRS{product}=="Arduino Leonardo", MODE="0666"' >> /etc/udev/rules.d/50-embedded_devices.rules
Cela ajoute la ligne ATTRS{product}=="Arduino Leonardo", MODE="0666"
au fichier /etc/udev/rules.d/50-embedded_devices.rules
Ensuite, redémarrez udev
avec la commande service udev restart
.
La prochaine fois que la carte est branchée, vous devriez pouvoir y accéder.
Note : si cela ne fonctionne pas, vous pouvez essayer de remplacer la ligne par ATTRS{idVendor}=="2341", MODE="0666"
ou bien Arduino Leonardo
par l’identifiant qu’il faut (la commande dmesg | grep "Product:"
devrait l’afficher).
Ajouter votre utilisateur au groupe adéquat
D’abord vérifiez le groupe qui a le droit d’utiliser le fichier ls -l /dev/ttyACM*
(lorsque le fichier existe, c’est-à-dire à l’initialisation de la carte). Le résultat devrait ressembler à :
crw-rw---T 1 root dialout 166, 0 jul. 14 12:12 /dev/ttyACM0
Cela signifie que le groupe dialout
peut accéder à la carte. Si le groupe est root
, basculez sur l’autre solution. Dans un autre cas, remplacez dialout
par le nom adéquat dans la suite.
Il faut maintenant ajouter votre utilisateur au groupe dialout
. Pour cela :
# addgroup user dialout
Où user
doit être remplacé par votre nom d’utilisateur.
L’IDE
Afin de développer pour Arduino, vous pouvez utiliser l’IDE officiel, ou bien utiliser un Makefile adapté. Le plus simple étant probablement d’utiliser l’IDE officiel.
Installation
L’IDE officiel est disponible pour les plateformes GNU/Linux (32 ou 64 bits), Windows et Mac.
Debian /
apt-get
: installez le paquetarduino
Autre : télécharger l’archive adaptée à votre système sur le site d’Arduino
Utilisation
Ouvrir un exemple : cliquez sur « Fichiers » > « Exemples » > « 01.Basics » > « Blink »;
Compiler : cliquez sur « Croquis » > « Vérifier / Compiler » ou bien composez Ctrl+R;
Envoyer sur la carte : cliquez sur « Fichier » > « Téléverser » ou bien composez Ctrl+U.
Note : le transfert se fait normalement pendant la séquence d’initialisation de la carte, juste après un démarrage ; certaines cartes peuvent être redémarrées automatiquement par le logiciel mais vous pouvez aussi le faire à la main (rebrancher la carte ou appuyer sur le bouton).
Un premier essai
Montage
Pour vérifier que tout fonctionne bien, nous allons exécuter le programme le plus simple qui soit sur la carte : faire clignoter une DEL. Pour cela, chargez l’exemple 01.Basics/Blink
, compilez-le et envoyez-le sur la carte. La plupart des cartes comportent une DEL incorporée reliée à la pin 13 de la carte et ce code devrait la faire clignoter lentement.
Si votre carte ne comporte pas de DEL intégrée, vous devrez brancher une DEL sur la carte : la cathode (patte courte) dans GND et l’anode (patte longue) dans la pin 13. Attention, connecter un DEL directement sans utiliser de résistance est généralement une mauvaise idée : dans ce cas de figure, la DEL n’est plus protégée est peut griller. Ce montage est néanmoins pratique pour faire un test rapide.
Programme
En réduisant le code au minimum, voici le contenu du programme :
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Les deux fonctions setup() et loop() doivent impérativement être définies. La première est exécutée au démarrage de la carte ; dans ce cas, elle indique que la pin 13 sera utilisée comme sortie (en effet, on va envoyer de l’électricité à la DEL). La seconde est exécutée en boucle, tant que la carte est allumée ; ici, elle indique à la carte d’envoyer du courant sur la pin 13, attend une seconde, puis indique à la carte de ne plus y envoyer de courant et attend à nouveau une seconde. Ainsi, le programme fait alterner la DEL entre les états allumée et éteint à chaque seconde.
Conclusion
Si vous êtes parvenus à réaliser les étapes précédentes, vous êtes fin prêts à exploiter votre Arduino pour de vrais projet électroniques ! Pensez à vous munir de DEL, résistances, transistors et autres composants amusants pour la suite !