Arduino
Arduino est une plateforme de prototypage à bas coût sous licence Creative Commons, rachetée en octobre 2025 par Qualcomm.
Basée sur un microcontrôleur Atmel, elle permet de réaliser rapidement des projets électroniques sur les plateformes Linux, macOS et Windows.
Arduino fournit un utilitaire graphique : un IDE aussi appelé Arduino, fork de Wiring, ainsi que des bibliothèques, permettant de programmer le microcontrôleur dans un langage proche du Java (inspiré de Processing).
Installation
Il existe plusieurs méthodes au choix pour installer l'IDE Arduino :
- Il est disponible dans les dépôts officiels APT d'Ubuntu.
- Il est distribué par son éditeur en Flatpak.
- Il existe un paquet snap non-officiel.
- Arduino est aussi disponible en AppImage sur son site officiel.
- Le site fournit aussi une archive zip pour une installation manuelle.
Dépôts officiels APT
Pour installer cette application depuis les dépôts officiels, il suffit d'installer le paquet arduino.
Une autre utilitaire permet de programmer Arduino en ligne de commande. Pour en profiter, installer le paquet arduino-mk.
Flatpak
Arduino est aussi distribué par son éditeur en Flatpak sur le dépôt Flathub.
On peut donc l'obtenir en installant Flatpak avec le dépôt Flathub si ce n'est pas déjà fait, puis en installant Arduino IDE v2 depuis GNOME Logiciels, ou en installant le paquet cc.arduino.IDE2 en ligne de commande :
flatpak install cc.arduino.IDE2
Snap
Arduino est aussi disponible en snap depuis Snapcraft.
Cette méthode est donc déconseillée.
On peut simplement installer l'application arduino depuis le centre d'applications (Snap Store), ou installer le paquet arduino en ligne de commande :
snap install arduino
AppImage
L'intégration au système (dont la création d'un lanceur) doit aussi être faite manuellement.
Pour installer une AppImage référez-vous avant tout au chapitre dédié au sujet.
En résumé choisissez la version Linux AppImage (64-bit X86-64) sur le site officiel, qui télécharge le fichier arduino-ide_2.X.X_Linux_64bit.AppImage ou téléchargez-le directement depuis GitHub, puis rendez-le exécutable (clic droit sur le fichier → Propriétés → Permissions → Autoriser l'exécution). Finalement lancez-le en double-cliquant dessus.
Vous pouvez utiliser un service tel que appimaged pour créer automatiquement un lanceur.
Installation manuelle
- Télécharger la version Linux ZIP file (64-bit X86-64) sur le site officiel.
- À cause d'un bug, ouvrir un terminal à l'endroit où vous avez décompressé l'application (clic droit → Ouvrir dans un terminal) et passer les commandes suivantes :
sudo chown root: arduino-ide_*bit/chrome-sandbox
sudo chmod 4755 arduino-ide_*bit/chrome-sandbox
- Le lanceur doit être créé. Vous aurez besoin de connaître le chemin d'accès absolu de l'exécutable que vous venez de télécharger (actuellement, c'est la version
2.3.8).
Pour faire cela manuellement, créez un fichier~/.local/share/applications/Arduino.desktopcontenant :- Arduino.desktop
[Desktop Entry] Type=Application Name=Arduino IDE GenericName=Arduino IDE Comment=Open-source electronics prototyping platform Exec="$CHEMIN/arduino-ide" Icon=arduino-arduinoide Terminal=false Categories=Development;IDE;Electronics; MimeType=text/x-arduino; Keywords=embedded electronics;electronics;avr;microcontroller; StartupWMClass=processing-app-Base
en remplaçant
$CHEMINpar le chemin absolu du répertoire contenant les fichiers extraits.
Utilisation
Ports série
Les nouvelles versions de l'application vous demanderont lors de la première exécution de vous authentifier pour vous donner l'autorisation d'accéder aux ports série en vous ajoutant aux groupes tty et dialout, soit en ligne de commande :
sudo usermod -a -G tty $USER
sudo usermod -a -G dialout $USER
Modifier les permissions de /dev/ttyUSB0 avec la commande (la carte doit être connectée !) :
sudo chmod a+rw /dev/ttyUSB0
Si le paquet a été installé en snap, il faut en plus autoriser l'accès aux fichiers personnels et aux périphériques USB à partir du bouton Autorisations pour obtenir les droits sur les ports séries.
Compilation et programmation sous console
Il s'agit dans cette partie de montrer comment compiler avec avr-gcc et comment charger votre programme dans votre carte Arduino.
Installation
Compilation
avr-gcc s'utilise presque comme gcc, en spécifiant le microcontrôleur de la carte.
Par exemple pour une carte Arduino UNO, avec un avr atmega328p, on a :
avr-gcc -mmcu=atmega328p -o main.elf main.c
man avr-gcc
Puis on extrait les données utilisables par le microcontrôleur :
objcopy -O ihex -R .eeprom main.elf main.hex
Programmeur
La programmation de la carte se fait avec avrdude. Il faut lui spécifier le programmeur, le microcontrôleur et le port sur lequel la carte est branchée.
Dans notre exemple le programmeur est un stk500v2, mais un type de programmeur plus spécifique a été créé : arduino.
Le microcontrôleur sera cette fois-ci : m328p.
man avrdude
Vous aurez par exemple :
sudo avrdude -c arduino -p m328p -P /dev/cuaU0 -U flash:w:main.hex
Problèmes connus
Pas de port série
Si le port de sortie ttyUSBx ou ttyACMx n'apparaît pas dans la liste des ports série de l'IDE Arduino, une autre page à consulter - en anglais - pour installer le module cdc_acm et lier le matériel au module (fonctionne avec Arduino UNO R3 firmware Rev.001 et Ubuntu studio 14.04 64 bits)Installation of arduino on all Linux version). En simplifiant :
- Récupérer les identifiants du vendeur et du produit en saisissant dans un terminal:
lsusb -v
qui répondra par exemple
Bus 003 Device 002: ID XXXX:YYYY
- Créer le lien avec le port : avec les droits superutilisateur, on crée le fichier
/etc/udev/rules.d/99-arduino.rules- On y place :
SUBSYSTEMS=="usb", ATTRS{idProduct}=="YYYY", ATTRS{idVendor}=="XXXX", SYMLINK+="ttyACM%n"en remplaçant XXXX ET YYYY par vos valeurs précédemment récupérées
- On fait charger le module
cdc_acmau démarrage. Avec les droits du superutilisateur , modifier le fichier /etc/modules pour ajouter la lignecdc_acm
- On rend le port accessible à l'utilisateur : ce port est dans le groupe dialout.
- On rattache l'utilisateur au groupe dialout : tableau de bord/Système/Utilisateurs et groupes - Gérer les groupes - sélectionner dialout et cliquer sur Propriétés - cocher l'utilisateur
- On reboot, on branche l'Arduino et on vérifie avec
dmesgdans une console que l'on a quelque chose comme :cdc_acm 3-1:1.0: ttyACM0: USB ACM device
- On lance l'application Arduino et dans le menu Outils / Ports série, on sélectionne /dev/ttyACM0.
Voir aussi
- Il existe une application pour dessiner les plans des cartes électroniques (entre autre pour l'Arduino) : Fritzing.
- Il est possible de contrôler l'Arduino par le biais de Scratch.
Contributeurs : mimilus, sivolc73, gduteil, pygmee, samcelia, krodelabestiole.
