Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
arduino [Le 02/03/2014, 00:46] – [Voir aussi] 79.186.73.146arduino [Le 20/03/2026, 14:56] (Version actuelle) – réécriture installation (+ flatpak) | réorganisation (!) | détails intro | +liens wpfr, site officiel, internes, etc. | suppr liens morts | mise en forme | orthographe | vocabulaire | suppr obsolète | etc. etc. etc. krodelabestiole
Ligne 1: Ligne 1:
-{{tag>Maverick matériel_libre robotique}} +{{tag>Xenial matériel_libre robotique}}
-----+
  
 +{{ https://raw.githubusercontent.com/arduino/arduino-ide/refs/heads/main/electron-app/resources/icons/512x512.png?90|Icône d'Arduino}}
 ====== Arduino ====== ====== Arduino ======
  
-Arduino est une plateforme de prototypage à bas coût sous licence Creative Commons. Basée sur les microcontrôleurs ATMEL, elle permet de réaliser rapidement des projets électroniques sur les trois plateformes Linux, Mac et Windows. +**[[wpfr>Arduino]]** est une plateforme de prototypage à bas coût sous licence [[wpfr>Creative Commons]], rachetée en octobre 2025 par [[wpfr>Qualcomm]].\\ 
 +Basée sur un [[wpfr>microcontrôleur]] [[wpfr>Atmel]], elle permet de réaliser rapidement des projets électroniques sur les plateformes Linux, macOS et Windows.
  
 {{:arduino_uno_test.jpg}} {{:arduino_uno_test.jpg}}
  
- +**Arduino** fournit un utilitaire graphique : un [[:IDE]] aussi appelé **[[pu>Arduino]]**//fork// de [[wpfr>Wiring]], ainsi que des bibliothèques, permettant de programmer le microcontrôleur dans un langage proche du [[:Java]] (inspiré de [[:Processing]]).
-Arduino fournit un utilitaire graphique, ainsi qu'une bibliothèque de fonctions permettant de programmer les cartes.+
  
 ===== Installation ===== ===== Installation =====
  
-==== À partir des dépôts ====+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 [[https://www.arduino.cc/en/software/|site officiel]]. 
 +  * Le site fournit aussi une archive [[:zip]] pour une installation manuelle. 
  
-Depuis Ubuntu 10.10 le paquet Arduino est présent dans les dépôts Universe d'Ubuntu.\\ +<note tip> 
-Pour l'installer, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>arduino|Arduino]]**.+Vous trouverez aussi des informations en anglais concernant le téléchargement et l'installation d'**Arduino** sur son [[https://docs.arduino.cc/software/ide-v2/tutorials/getting-started/ide-v2-downloading-and-installing/|site officiel]]. 
 +</note>
  
-Depuis [[precise|Ubuntu 12.04]] un utilitaire est présent dans les dépôts. Il permet de programmer Arduino en ligne de commande, Pour l'installer, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>arduino-mk|arduino-mk]]**.+==== Dépôts officiels APT ====
  
-==== Depuis l'archive du site officiel ====+<note important> 
 +La version présente dans le dépôt n'est pas toujours la plus récente, il est probablement plus intéressant d'installer la dernière version en [[#Flatpak]]. 
 +</note>
  
-Pour installer Arduino à partir de l'archive officielle :+<note> 
 +Pour avoir accès à [[pu>arduino|ce paquet]], il faut que le [[:depots#sections_universe_et_multiverse_maintenues_par_les_motu|dépôt Universe]] soit activé dans les [[:tutoriel:comment_modifier_sources_maj|sources de logiciels]]. 
 +</note>
  
-  * télécharger l'archive .tgz (choisir "32 bit" ou "64 bits" selon votre [[architecture_materielle|architecture]]) sur [[http://code.google.com/p/arduino/downloads/list|le site officiel]] +Pour installer cette application depuis les [[:depots#dépôts officiels]], il suffit d'[[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>arduino]]''.
-  * [[archivage|extraire l'archive]] +
-  * [[:droits|rendre exécutable]] le fichier 'arduino' +
-  * lancer le fichier 'arduino' +
-**(en)** [[http://www.arduino.cc/playground/Linux/Ubuntu|Plus d'informations sur l'installation d'Arduino pour Ubuntu sur le site Arduino]].+
  
-==== Utilisation des ports série du menu==== +Une autre utilitaire permet de programmer Arduino en ligne de commande. Pour en profiter, [[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>arduino-mk]]''.
-Le port série n'est pas accessible tant que l'utilisateur n'a pas été ajouté aux groupes "tty" et "dialout" +
-<codeusermod -a -G tty Nom_Utilisateur </code> +
-<code> usermod -a -G dialout Nom_Utilisateur </code> +
-il faut ensuite se déconnecter et se reconnecter pour que les modifications soient effectives.+
  
-==== Problèmes connus ==== +==== Flatpak ====
-<note important>Ce problème n'a pas été rencontré avec une carte arduino (R3) - ubuntu 12-10</note> +
-Problème de micro-logiciel utilisé pour la communication par le port USB : Sur les Duemilanove, le CI utilisé pour la communication Série USB entre Arduino et le port USB était un CI FTDI qui fonctionne très bien.\\ Avec la version Arduino UNO, ce CI a été remplacé par un nouveau CI dédié utilisant un micro-logiciel dédié. Ce changement entraîne des problèmes de communication entre le PC et la carte Arduino Uno sous Ubuntu. Ceci est vrai pour les versions avant mai 2011 apparemment.\\ +
-Sur ces versions de carte Arduino UNO antérieures à mai 2011, il est nécessaire de mettre à jour le micrologiciel de communication USB de la carte UNO, ce qui se fait par le port USB. Voir [[http://arduino.cc/en/Hacking/DFUProgramming8U2|cette page du projet]] décrivant la manipulation ainsi que [[http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.MaterielUnoMAJFirmwareUSB|ce site en français]] qui explique très bien les opérations à faire.+
  
-=====Utilisation=====+**Arduino** est aussi distribué par son éditeur en [[:Flatpak]] sur le dépôt [[https://flathub.org/fr/apps/cc.arduino.IDE2|Flathub]]. 
 + 
 +On peut donc l'obtenir en [[:flatpak#installation|installant Flatpak]] avec le [[:flatpak#ajout_du_depot_flathub|dépôt Flathub]] si ce n'est pas déjà fait, puis en installant ''Arduino IDE v2'' depuis [[:gnome-software|GNOME Logiciels]], ou en [[:gerer_flatpak#installation_d_applications|installant le paquet]] ''[[https://flathub.org/fr/apps/cc.arduino.IDE2|cc.arduino.IDE2]]'' en ligne de commande : 
 +<code>flatpak install cc.arduino.IDE2</code> 
 + 
 +==== Snap ==== 
 + 
 +**Arduino** est aussi disponible en [[:snap]] depuis [[https://snapcraft.io/arduino|Snapcraft]]. 
 + 
 +<note important> 
 +Cette version n'est cependant pas officielle, et il s'agit encore seulement de la version 1. 
 + 
 +Cette méthode est donc déconseillée. 
 +</note> 
 + 
 +On peut simplement installer l'application ''arduino'' depuis le [[:snap store|centre d'applications (Snap Store)]], ou installer le paquet ''[[https://snapcraft.io/arduino|arduino]]'' en ligne de commande : 
 +<code>snap install arduino</code> 
 + 
 +==== AppImage ==== 
 + 
 +<note important> 
 +Cette méthode ne permet pas de mise à jour automatique. 
 + 
 +L'intégration au système (dont la création d'un [[:raccourci-lanceur|lanceur]]) doit aussi être faite manuellement. 
 +</note> 
 + 
 +Pour installer une **[[:AppImage]]** référez-vous avant tout au [[:appimage#installer_un_appimage|chapitre dédié]] au sujet. 
 + 
 +En résumé choisissez la version //Linux AppImage (64-bit X86-64)// sur [[https://www.arduino.cc/en/software/|le site officiel]], qui télécharge le fichier ''arduino-ide_2.//X//.//X//_Linux_64bit.AppImage'' ou téléchargez-le directement depuis [[https://github.com/arduino/arduino-ide/releases/latest|GitHub]], puis [[:permissions#modifier_les_permissions|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 **[[:appimage#go_appimageappimaged|appimaged]]** pour créer automatiquement un [[:raccourci-lanceur|lanceur]]. 
 + 
 +==== Installation manuelle ==== 
 + 
 +  * Télécharger la version //Linux ZIP file (64-bit X86-64)// sur le [[https://www.arduino.cc/en/software/|site officiel]]. 
 +  * [[:archivage|Extraire l'archive]]. 
 +  * À 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 :<code>sudo chown root: arduino-ide_*bit/chrome-sandbox</code><code>sudo chmod 4755 arduino-ide_*bit/chrome-sandbox</code> 
 +  * Le [[:raccourci-lanceur|lanceur]] doit être [[:raccourci-lanceur#creation_d_un_lanceur|créé]]. Vous aurez besoin de connaître le [[:chemins|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, [[:tutoriel:comment_modifier_un_fichier|créez un fichier]] ''~/.local/share/applications/Arduino.desktop'' contenant :<file - 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 
 +</file>en remplaçant ''$CHEMIN'' par le [[:chemins|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 [[:utilisateurs_et_groupes|groupes]] ''tty'' et ''dialout'', soit en ligne de commande : 
 +<code>sudo usermod -a -G tty $USER</code> 
 +<code>sudo usermod -a -G dialout $USER</code> 
 +<note>Vous devez vous déconnecter et vous reconnecter pour que les changements soient effectifs.</note> 
 +    
 +Modifier les [[:permissions]] de ''/dev/ttyUSB0'' avec la commande (la carte doit être connectée !) : 
 +<code>sudo chmod a+rw /dev/ttyUSB0</code> 
 + 
 +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 ==== ==== Compilation et programmation sous console ====
-<note> Cette méthode ne permet peut-être pas d'utiliser les librairies fournies par Arduino </note> + 
-Il s'agit dans cette partie de montrer comment compiler avec avr-gcc et comment charger votre programme dans votre carte Arduino.+<note>Cette méthode ne permet peut-être pas d'utiliser les librairies fournies par Arduino.</note> 
 +Il s'agit dans cette partie de montrer comment compiler avec ''avr-gcc'' et comment charger votre programme dans votre carte Arduino.
  
 === Installation === === Installation ===
-[[apt://gcc-avr | avr-libc | avrdude | binutils-avr]] FIXME à vérifier s'il ne s'agit pas plutôt de **[[apt>gcc-avr,avr-libc,avrdude,binutils-avr|gcc-avr | avr-libc avrdude binutils-avr]]**+ 
 +[[apt>avr-gcc avr-libc avrdude binutils-avr]]
  
 === Compilation === === Compilation ===
-**avr-gcc** s'utilise presque comme gcc, en spécifiant le microcontrolleur de la carte.\\ 
-Par exemple pour une carte Arduino UNO, avec un avr atmega328p, on a : 
-<code> avr-gcc -mmcu=atmega328p -o main.elf main.c </code> 
-<note tip> La liste des micro-controlleurs supportés est spécifiée dans le [[:man|manuel]] d'avr-gcc : 
-<code> man avr-gcc </code> </note> 
  
-Puis on extrait les données utilisables par le micro-controlleur :+''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 : 
 +<code>avr-gcc -mmcu=atmega328p -o main.elf main.c</code> 
 +<note tip> 
 +La liste des microcontrôleurs supportés est spécifiée dans le [[:man|manuel]] d'avr-gcc : 
 +<code>man avr-gcc</code> 
 +</note> 
 + 
 +Puis on extrait les données utilisables par le microcontrôleur :
 <code> objcopy -O ihex -R .eeprom main.elf main.hex </code> <code> objcopy -O ihex -R .eeprom main.elf main.hex </code>
  
 +=== 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.
  
-=== Programmateur === +Dans notre exemple le programmeur est un //stk500v2//, mais un type de programmeur plus spécifique a été créé : //arduino//.\\ 
-La programmation de la carte se fait avec avrdude. Il faut lui spécifier le programmateur, le micro-contrôleur et le port sur lequel la carte est branchée.\\ +Le microcontrôleur sera cette fois-ci : //m328p//
-Dans notre exemple le programmateur est un "stk500v2", mais un type de programmateur plus spécifique a été créé : "arduino".\\ +<note tip> Là encore, la liste des microcontrôleurs et programmeur supportés se trouve dans le manuel: <code> man avrdude </code> </note>
-Le micro-controleur sera cette fois-ci : m328p. +
-<note tip> Là encore, la liste des micro-controlleurs et programmateur supportés se trouve dans le manuel: <code> man avrdude </code> </note>+
 Vous aurez par exemple : Vous aurez par exemple :
 <code> sudo avrdude -c arduino -p m328p  -P /dev/cuaU0 -U flash:w:main.hex </code> <code> sudo avrdude -c arduino -p m328p  -P /dev/cuaU0 -U flash:w:main.hex </code>
 <note important>  Le port peut varier. On peut le retrouver en comparant les fichiers dans /dev/ avant et après le branchement de la carte. Le fichier qui apparaîtra sera sûrement le port à choisir </note> <note important>  Le port peut varier. On peut le retrouver en comparant les fichiers dans /dev/ avant et après le branchement de la carte. Le fichier qui apparaîtra sera sûrement le port à choisir </note>
  
 +===== Problèmes connus =====
  
 +==== Pas de port série ====
  
-==== Simulation de l'Arduino ==== +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)[[http://playground.arduino.cc/Linux/All|Installation of arduino on all Linux version]]). En simplifiant : 
- +  * Récupérer les identifiants du vendeur et du produit en saisissant dans un [[:terminal]]: <code>lsusb -v</code> qui répondra par exemple <code>Bus 003 Device 002: ID XXXX:YYYY</code>  
-Il existe un petit logiciel qui permet de simuler son utilisation, mais il ne semble pas fonctionner sous [[:Wine]], une machine [[:virtualisation|virtuelle]] Windows est ici nécessaire il s'appelle [[http://www.virtualbreadboard.com|VBB]]. +  * Créer le lien avec le port : avec [[:sudo|les droits superutilisateur]], on [[:tutoriel:comment_modifier_un_fichier|crée]] le fichier ''/etc/udev/rules.d/99-arduino.rules'' 
- +     * On y place : <file>SUBSYSTEMS=="usb", ATTRS{idProduct}=="YYYY", ATTRS{idVendor}=="XXXX", SYMLINK+="ttyACM%n" </file> en remplaçant XXXX ET YYYY par vos valeurs précédemment récupérées 
-Il existe un logiciel pour dessiner les plans des cartes électroniques pour l'Arduino : [[:fritzing]].+     * On fait charger le module ''cdc_acm'' au démarrage. Avec les [[:sudo|droits du superutilisateur]] , [[:tutoriel:comment_modifier_un_fichier|modifier le fichier]] **/etc/modules** pour ajouter la ligne  <file>cdc_acm</file> 
 +  * 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 ''dmesg'' dans une console que l'on a quelque chose comme : <code>cdc_acm 3-1:1.0: ttyACM0: USB ACM device</code> 
 +  * On lance l'application **Arduino** et dans le menu //Outils / Ports série//, on sélectionne ///dev/ttyACM0//
 +<note tip> 
 +Pour les cartes Arduino autres que UNO, on a /dev/ttyUSBX  au lieu de  /dev/ttyACM0 et le groupe est uucp au lieu de dialout (renseignements dars la page citée plus haut). 
 +</note>
  
-Il est possible de contrôler l'Arduino par le biais de [[:scratch#etendre_les_capacites_du_logiciel|Scratch]].+===== Voir aussi =====
  
-=====Voir aussi===== +  * [[https://www.arduino.cc/|Site officiel]] 
-  * [[http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.HomePage|Une version française du site Arduino]] +  * [[https://github.com/arduino|GitHub]] 
-  * Le tutoriel Arduino pour les débutants sur le [[http://fr.openclassrooms.com/sciences/cours/arduino-pour-bien-commencer-en-electronique-et-en-programmation|OpenClassrooms]] (ex Site du Zero). Version à jour sur [[http://eskimon.fr/category/arduino|Le blog d'Eskimon]], l'auteur du tutoriel+  * [[https://zestedesavoir.com/tutoriels/686/arduino-premiers-pas-en-informatique-embarquee/|Arduino : premiers pas en informatique embarquée]] 
-  * [[http://fr.flossmanuals.net/arduino/|Manuel français sur arduino]] et l'électronique libre, réalisé par Flossmanuals Francophone +  * Il existe une application pour dessiner les plans des cartes électroniques (entre autre pour l'Arduino[[:Fritzing]]. 
-  * [[http://blog.ardublock.com/]] Ardublock programmation graphique de l'arduino.+  * Il est possible de contrôler l'Arduino par le biais de [[:scratch#etendre_les_capacites_du_logiciel|Scratch]].
  
 ---- ----
-//Contributeurs : [[:utilisateurs:mimilus|mimilus]], gduteil, pygmee, samcelia.//+//[[:Contributeurs]] : [[:utilisateurs:mimilus]], [[:utilisateurs:sivolc73]], gduteil, pygmee, samcelia, [[:utilisateurs:krodelabestiole]].//