Les cartes arduino communiquent avec le raspberry via ros_serial. Elles sont toutes connectées via un port série sur le Raspberry Pi.
L’outil PlatformIO est utilisée pour cette partie du projet.
Les étapes de ce chapitre ne sont nécessaires que pour l’installation initiale du Raspberry et si l’on souhaite pouvoir mettre à jour les cartes depuis celui-ci.
Afin de pouvoir compiler et téléverser les codes Arduino, l’outil PlatformIO doit être installé (Uniquement les Shell commands, pas l’IDE) :
sudo pip install -U platformio
Les codes des cartes arduino dépendent de la librairie de ROS Serial version 0.8. Malheurement, cette librairie n’est pas encore disponible dans les dépendances de PlatformIO en version 0.8, il est donc nécessaire de la recompiler manuellement.
cd ~/stardust/arduino/lib
rosrun rosserial_arduino make_libraries.py .
Pour compiler tous les firmaware du projet, il suffit de taper la commande suivante :
cd ~/stardust/arduino
platformio run
Lors de la première exécution, la commande installe automatiquement tous les outils, librairies et dépendances nécessaires au projet.
Exemple pour la carte Uno du second robot :
cd ~/stardust/arduino
platformio run -e r2-uno -t upload
En cas d’erreur du type :
/home/ubuntu/.platformio/packages/tool-avrdude/avrdude: line 6: /home/ubuntu/.platformio/packages/tool-avrdude/avrdude_bin: No such file or directory
Simplement faire un lien direct vers avrdude :
cd /home/ubuntu/.platformio/packages/tool-avrdude
mv avrdude_bin avrdude_bin_old
ln -s /usr/bin/avrdude avrdude_bin
La liste des environnements est décrit dans le fichier platformio.ini
En supposant que la carte est accessible sur /dev/ttyACM0 :
roscore &
rosrun rosserial_python serial_node.py /dev/ttyACM0 &
rostopic list
Pour publier un message vers la carte, utiiser rostopic pub.
Pour lire les messages, utiliser rostopic echo.