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