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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *