
Cette rubrique va détailler la programmation sous Arduino
Installation
IDE
Sous Ubunu 18.4 l’installation de l’IDE d’Arduino se fait en téléchargeant la version directement sur le site !!
Les autres solutions ne fonctionnent pas.
Solution Recommandée
Après téléchargement, procéder à la décompression, puis copier vers /opt, et finalement installer.
sudo mv arduino-1.8.12 /opt cd /opt/arduino-1.8.12/ sudo chmod +x install.sh sudo ./install.sh
Solutions Non recommandées
sudo snap install arduino Installe la dernière version 1.8.12 Cette solution a posé des problèmes lié à la non détection du port usb ! sudo apt-get install arduino Installe la 1.0.5 Solution qui fonctionne, MAIS qui n'est plus maintenue !!
Configuration
Configurer le port d’échange pour le téléversement.
Dans le cas d’une machine virtuelle, attention de bien descendre le port USB de la machine hôte vers la machine cible !
Vérifier en premier que le driver a bien été installé. En cas de problème par la suite au niveau Ubuntu, ne pas hésiter à désinstaller le pilote et le réinstaller !

Sous Ubuntu

Autorisation port USB
Lors de la première utilisation, il ne sera pas possible de téléverser le sketch vers le microcontrôleur Arduino.
Une erreur peut indiquer l’impossibilité d’ouvrir le port ttyUSBx

L’explication vient du fait que ce port appartient au groupe dialout, et que l’utilisateur courant n’a pas les droits sur ce groupe !!
ls -l /dev/ttyU*

Pour remédier au problème, il faut ajouter l’utilisateur « $USER » au groupe dialout.
sudo usermod -a -G dialout $USER
Il faudra sortir de la session puis y re-rentrer pour appliquer la modification
Vérification avec
groups $USER ..... : .... tty dialout cdrom sudo .....
Librairies
A travers le Menu « Outils » procéder à l’installation des librairies nécessaires

Les librairies seront installées à l’emplacement spécifié dans l’IDE.

Interfaces
Uno
Voir également documentation officielle

- AREF: Broche de référence analogique
- TX / RX: Broches numériques 0-1 / Entrée / sortie série (vert foncé)
- Ces broches ne peuvent pas être utilisées pour les E / S numériques (digitalRead et digitalWrite) si vous utilisez également la communication série (par exemple Serial.begin).
- Broches numériques 2-13
- ICSP: In-Circuit Programmateur
- Broches d’entrée analogique 0-5
- Broches d’alimentation et de mise à la terre
- X1: Entrée d’alimentation externe (9-12VDC)
- Bascule entre l’alimentation externe et l’alimentation USB
- (placez le cavalier sur les deux broches les plus proches de l’alimentation souhaitée)
- USB (utilisé pour télécharger des croquis sur la carte et pour la communication série entre la carte et l’ordinateur; peut être utilisé pour alimenter la carte) (jaune)
Intégration à Emacs
Configuration .emacs
Ajouter dans .emacs
(setq auto-mode-alist (cons '("\\.\\(pde\\|ino\\)$" . arduino-mode) auto-mode-alist)) (autoload 'arduino-mode "arduino-mode" "Arduino editing mode." t)
Préparation
Une fois les étapes de l’installation IDE et vérification du port dev/ttyUSB0 faites, nous pouvons passer à l’intégration de la chaîne d’outil dans emacs.
La méthodologie est basée sur cet l’article
Installation arduino-mk qui est un makefile Arduino, puis de « python-serial », une bibliothèque du langage de programmation Python d’accès au port série.
sudo apt-get install arduino-mk apt-get install python-serial
Librairies
Les bibliothèques Arduino sont gérées à trois endroits différents:
- à l’intérieur du dossier d’installation IDE,
- à l’intérieur du dossier de dev. principal et
- dans le dossier des bibliothèques.
Cela signifie que placer une bibliothèque dans le dossier «bibliothèques» de votre carnet de croquis remplace les autres versions des bibliothèques !
Compilation à travers make
Le Makefile est très simple, il doit se trouver dans le répertoire du sketch et doit indiquer les librairies utilisées.
La compilation se lance avec « M-x Compile »
Pour éviter une erreur de compilation liée à des librairies non trouvées

Il faut respecter 2 choses
- Le nom du répertoire de librairie doit être identique au fichier .h et .c
- Dans notre exemple, « Adafruit_Motor_Shield_library » ne respecte pas cette règle et doit être renommée en « AFMotor »
- Il faut ajouter le chemin de la librairie personnelle dans le Makefile
- USER_LIB_PATH = /home/$(USER)/Arduino/libraries
BOARD_TAG = uno USER_LIB_PATH = /home/$(USER)/Arduino/libraries ARDUINO_LIBS = Servo AFMotor NewPing SoftwareSerial ArduinoBlue MONITOR_PORT = /dev/ttyUSB0 include /usr/share/arduino/Arduino.mk
Utilisation
Compilation sous emacs
M-x compile make -k
Téléversement sous emacs
M-x compile make -k upload
Moniteur série
M-x serial-term
