Compilation et installation des sources d'un Arduino depuis un Raspberry-PI

On souhaite compiler et déployer les sources d'un programme Arduino depuis un Raspberry-Pi, nous évitant ainsi de débrancher l'Arduino de son installation pour y uploader les sources d'un programme.

Publié le 24/08/2018

On souhaite compiler et déployer les sources d'un programme Arduino depuis un Raspberry-Pi, nous évitant ainsi de débrancher l'Arduino de son installation pour y uploader les sources d'un programme.

On va connecter l'Arduino en USB au RaspberryPi.

1 - Installation des paquets


sudo apt-get update && sudo apt-get upgrade
sudo apt-get install arduino-core arduino-mk python-serial screen

On redémarre le Pi afin d'avoir notre interface serie disponible (/dev/ttyACM0) :


sudo reboot

2 - Autoriser le Raspeberry-Pi à utiliser les commandes Arduino


sudo usermod -a -G dialout pi

3 - Création des dossiers sur le Pi

À la racine de notre dossier utilisateur pi, on va créer un dossier qui va contenir les sources de nos projets et les librairies externes :


mkdir Arduino

On va copier dans ce dossier le dossier librairies qui se trouve dans le dossier Arduino de notre poste de travail où est installé l'IDE Arduino.


scp -r librairies pi@my-pi.local:~/Arduino/

4 - Téléchargement des sources d'un programme Arduino ver le Pi

On va uploader les sources d'un programme Arduino de notre poste de travail vers le Raspberry-Pi. Pour ce faire on va uploader le dossier contenant le fichier .ino de notre programme :


scp -r mon-programme.ino pi@my-pi.local:~/Arduino/mon-programme/

5 - Création d'un Makefile

On va créer un Makefile dans le dossier de notre programme, disposant des paramètres de configuration nécessaire à la compilation :


nano /home/pi/Arduino/mon-programme/Makefile

ARDUINO_DIR = /usr/share/arduino
BOARD_TAG = uno
ARDUINO_PORT = /dev/ttyACM*
ARDUINO_LIBS =
USER_LIB_PATH = /home/pi/Arduino/libraries
include /usr/share/arduino/Arduino.mk

Important :

  • Il est important qu'un dossier contentant une lib. externe porte le même nom que cette dernière dans le dossier libraries.
  • Il est possible qu'à la compilation, la lib. SPI.h soit introuvable [dans le cadre de l'utilisation du shield ethernet] :

Ajouter l'include au programme :


#include <SPI.h>

6 - Compilation et upload du programme vers l'Arduino

On se positionne dans le dossier de notre programme et on effectue la compilation :


make

Si le processus s'est bien déroulé, on peut alors uploader vers l'Arduino :


make upload

7 - Test des retours du programme vers la console


screen /dev/ttyAMA0 <baud>

Pour sortir de la console, tuer le process par son PID :


ps -aux | grep screen

retourne le PID :


sudo kill -9 PID