30 August 2018
L'objectif des tests de cet fin d'été était de tester l'utilisation de firmata, reperé lors de précédentes sessions de travail sur arduino.
Firmata est un "firmware", c'est à dire qu'il s'installe comme programme résident du microcontroleur, il fait interface avec les différents ports et envoi les changements d'états et reçoit les ordres de changement via un protocole.
Il peut être piloté par un logiciel client qui implémente le protocole.
L'inconvénient est qu'il faut laisser le montage branché en USB et que l'intelligence est coté ordinateur, d'ou moins de réactivité du fait du temps de latence. Ca ne convient pas à tous les usages.
Pour mettre en place le firmware, rien de plus simple.
Il faut ajouter l'utilisateur courant à dialout, mais dans les versions récentes de arduino, si ce n'est pas le cas un popup graphique propose de le faire en saisisant le mot de passe root. Il faut se déconnecter/reconnecter de la session pour que ce soit pris en compte.
$ sudo apt-get install arduino
$ arduino
Ensuite ouvrir le sketch Firmata Standard via Fichiers/Examples/Firmata/StandardFirmata et l'envoyer vers l'arduino.
A noter que la gestion des librairies à changé dans le logiciel, il n'y a pas la gestion de version de librairie dans la version 2:1.0.5 que j'utilise sur Ubuntu LTS 18.04. Il n'y a pas d'option "Manage library" sous l'onglet sketch.
Il est tout de même possible d'utiliser une nouvelle version de la lib Firmata en procédant comme ceci :
$ cd temp
$ git clone https://github.com/firmata/arduino.git
$ cd arduino
$ bash relase.h
$ ls *.zip
Arduino-1.0.x-Firmata-2.5.8.zip Firmata-2.5.8.zip
Deux fichiers zip sont générés. Il faut faire Sketch/Add Library pour ajouter Arduino-1.0.x-Firmata-2.5.8 dans ~/sketchbook/libraries/Firmata, que j'ai renomé ~/sketchbook/libraries/Firmata25 pour éviter le confusions.
On peut alors charger le sketch dans dans sketchbook/libraries.
Permet de commander l'arduino en utilisant le protocole Firmata.
Pour l'installation du logiciel, j'ai téléchargé la version linux.
Il faut détarer, puis :
$ cd local/Snap4Arduino_desktop-gnu-64_1.2.6/
$ ./launcher.sh
Prise en charge classique par maven.
A noter il faut changer une des dépendances pour faire taire l'avertissement sur les logs.
Le Kit relais demande un peu plus de puissance electrique. Il faut donc alimenter l'arduino.
Quelques articles pour détailler comment alimenter l'arduino :
En bref : utiliser une alimentation stabilisée entre 9V et 12V sur le jack DC2.1.
La spec de veleman indique plutot 12V.
Pour ce qui me concerne, l'utilisation de l'alimentation de mon chargeur de batteries donne toute satisfaction pour tester le kit velleman, qui fonctionnne par ailleurs très bien avec le firmware firmata.
Je reprend les montages classiques de arduino, diode, potard, interupteur.
On peut retrouver ces montages sur le cours de OpenClassRoom, par exemple.
A noter le montage de l'interupteur nu en positionnant l'entrée en "PULLUP".
L'utilisation du 12V sur l'arduino ne fonctionne pas (bien sur, j'ai vérifié la présence du cavalier Vin).
En revanche, en supprimant le cavalier Vin et en utisant le 12V du transfo directement sur l'entrée de la carte moteur, j'ai pu faire fonctionner le moteur stepper.
Des contributions existent pour inclure le shield dans Fritzing :
Il y a un bug dans l'installation sur ubuntu, les parts ne sont pas installées par défaut :
$ sudo apt-get install fritzing
$ sudo apt-get install fritzing-parts
Mais en plus il y a un bug de localisation :
Il faut ajouter un lien symbolique :
# cd /usr/share/
# ln -s fritzing/parts/ fritzing-parts
Du détail sur les discussions autour de ce bug :
* GitHub fritzing/fritzing-app : 0.9.3 not finding parts under Ubuntu 17.10 #3386
* GitHub fritzing/fritzing-app : Making life difficult for package maintainers #3286