Puisque nous sommes à nous raconter notre vie, j'ai commencé à tater un peu de l’électronique pour en faire avec mon gamin. Après des recherches un peu fastidieuses, j'ai opté pour un arduino, car il me semblait bien adapté pour ce que je voulais faire :
- Facilement mis en œuvre
- De l’électronique simple
- De la programmation accessible
- Tout plein de tutoriels sur le net
De plus, cerise sur le gâteau, ce que l'on apprends est directement utilisable autant en électronique qu'en programmation ( c'est du c). Dans ce premier billet, je vais aborder ce que nous avons fait pour mettre en place la plateforme pour que tout fonctionne.
Disclaimer : J'ai toujours cherché à avoir des outils qui fonctionnent en ligne de commande pour ne pas avoir besoin d'un machine dont la puissance sert uniquement à faire tourner un ide. J'ai l'impression également que cela te permet d'être plus proche de ce que tu fais en ayant besoin de plus de connaissance et que donc tu comprends un peu pus ce que tu fais.
Disclaimer 2 : mon système d'exploitation est debian linux, ainsi toute les étapes d'installation sont centrées sur cette plateforme.
Donc, première étape, installons les outils nécessaires pour l'arduino (ces manœuvres se font en étant Super Utilisateur - root) :
apt-get install arduino-core
Ce paquet va également installer le nécessaire de compilation et les outils pour obtenir un "fichier" binaire utilisable sur l'arduino. On peut également installer arduino (tout court) qui fournit un IDE qui à besoin de java pour fonctionner. arduino-core fournis tout un tas de fichier nécessaire à compiler pour l'arduino, des bibliothèques, des fichiers de définitions des différents modèles...
Pour parler avec l'arduino branché en usb, j'ai choisi ino, écrit en python, il s'installe facilement (si vous avez le paquet python-setuptools, qui fournit easy_install. Donc :
apt-get install python-setuptools
Une fois installé, il reste à installer ino
easy_install ino
ino à besoin de picocom pour parler avec la carte, et de make pour compiler c'est facilement fait :
apt-get install picocom
apt-get install make
Ensuite, il vous reste à brancher votre carte et vous la verrez apparaître sous le poétique nom de /dev/ttyACM0
crw-rw--- 1 root dialout 4, 67 mai 1 11:57 /dev/ttyACM0
Comme on peut le voir, vous en tant que simple utilisateur, vous n'avez pas le droit de faire quoi que ce soit avec lui, seul le propriétaire (root) et le groupe (dialout) ont le droit de lire et écrire (rw-) sur ce fichier (car sous linux tout est fichier). Ainsi il y a 2 moyens de contourner le problème :
- Crée une règle udev pour que le périphérique vous appartienne
- Vous faire appartenir au groupe dialout
J'ai choisi cette deuxième solution. Cela se fait facilement avec une simple commande (il faut être Super utilisateur (root)) :
usermod -a -G dialout votre_utilisateur
Votre utilisateur est le login que vous employez pour vous connecter, si vous ne le connaissez pas (auto-login par exemple), il est disponible avec la commande :
whoami
Une fois ajouté au groupe, il faut vous reconnecter et vous reconnecter pour que votre appartenance soit effective. Dernière manœuvre pour se faciliter la tache (car nous avons décider d'utiliser nano comme éditeur de code : installé d'office et très très light. D'autant plus que pour le moment le code que l'on fera sera tout simple et plutôt court. Les fichiers que produit ino se nomment xxx.ino. Comme nous désirons avoir la coloration syntaxique du C, je modifie le fichier de coloration syntaxique de nano pour le langage c qui se trouve à cette place /usr/share/nano/c.nanorc et modifie la première ligne pour qu'elle deviennent :
syntax "c" "\.(c(c|pp|xx)?|C|ino)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$"
Vous êtes maintenant prêts pour la grande aventure.