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édentes Révision précédente
Prochaine révision
Révision précédente
arduino [Le 27/09/2014, 16:00]
88.183.205.55 [Problèmes connus]
arduino [Le 02/11/2023, 10:45] (Version actuelle)
eldino [Utilisation des ports série du menu] utilisation de $USER
Ligne 1: Ligne 1:
-{{tag>Maverick ​matériel_libre robotique}}+{{tag>Xenial ​matériel_libre robotique}}
 ---- ----
  
 ====== 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. ​+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.
  
 {{:​arduino_uno_test.jpg}} {{:​arduino_uno_test.jpg}}
  
  
-Arduino fournit un utilitaire graphique, ainsi qu'une bibliothèque de fonctions ​permettant de programmer les cartes.+Arduino fournit un utilitaire graphique, ainsi qu'une bibliothèque de librairies ​permettant de programmer les cartes ​et des périphériques simples.
  
 ===== Installation ===== ===== Installation =====
Ligne 15: Ligne 15:
 ==== À partir des dépôts ==== ==== À partir des dépôts ====
  
-Depuis Ubuntu 10.10 le paquet Arduino est présent dans les dépôts Universe d'​Ubuntu.\\ +Le paquet Arduino est présent dans les dépôts Universe d'​Ubuntu.\\ 
-Pour l'​installer,​ il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​arduino|Arduino]]**. +Pour l'​installer,​ il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​arduino|arduino]]**.\\ 
- +La version présente ​dans le dépôt n'est pas toujours la plus récente, il peut être intéressant ​d'​installer ​la dernière version depuis l'​archive du site officiel en suivant la méthode décrite ci-dessous.
-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]]**.+
  
 +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]]**.
 ==== Depuis l'​archive du site officiel ==== ==== Depuis l'​archive du site officiel ====
  
 Pour installer Arduino à partir de l'​archive officielle : Pour installer Arduino à partir de l'​archive officielle :
  
-  * 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]]+  * télécharger l'​archive .tgz (choisir "32 bit" ou "64 bits" selon votre [[architecture_materielle|architecture]]) sur [[https://www.arduino.cc/en/Main/Software|le site officiel]]
   * [[archivage|extraire l'​archive]]   * [[archivage|extraire l'​archive]]
-  * [[:​droits|rendre exécutable]] ​le fichier ​'arduino+  * lancer ​le script "​install.sh"​ de l'archive, vous n'avez qu'à glisser-déposer le fichier dans un terminal et appuyer sur "​Entrée"​ (ctrl-alt-t pour ouvrir un terminal) 
-  * lancer ​le fichier ​'​arduino'​ +  * Un raccourcis "​Arduino IDE" sera créé sur votre bureau, vous devez le rendre exécutable en faisant clic droit → Propriété → Permission → cochez "​autorisez l'exécution du fichier comme un programme"​ 
-**(en)** [[http://​www.arduino.cc/​playground/​Linux/​Ubuntu|Plus d'informations ​sur l'​installation d'​Arduino ​pour Ubuntu sur le site Arduino]].+  * lancez le logiciel du raccourcis 
 + 
 +**(en)** [[https://​www.arduino.cc/​en/​Guide/​Linux|Installation d'Arduino IDE sous linux sur le site officiel]] 
 +**(en)** [[http://​www.arduino.cc/​playground/​Linux/​Ubuntu|Pour les plus anciennes versions ​d'Ubuntu]]. 
 + 
 +==== avec Snap ==== 
 + 
 +Comme la version dans les dépôts est très ancienne (sur Focal 20.04, c'est la version 1.0.5 qui date d'​environ 2013 et qui n'a pas le library manager) et que l'​installation ​de l'​archive officielle peut ne pas fonctionner,​ il peut être plus simple ​d'installer ​Arduino ​par Snap: 
 +<​code>​ sudo snap install arduino </​code>​
  
 ==== Utilisation des ports série du menu==== ==== Utilisation des ports série du menu====
-Le port série n'est pas accessible tant que l'utilisateur n'a pas été ajouté ​aux groupes "​tty"​ et "​dialout"​ +Les nouvelles versions du logiciel 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"​. Notez que vous devez vous déconnecter et vous reconnecter pour que les changements soient effectifs. 
-<​code>​ usermod -a -G tty Nom_Utilisateur ​</​code>​ + 
-<​code>​ usermod -a -G dialout ​Nom_Utilisateur ​</​code>​+Si pour une raison ou pour une autre l'​utilitaire échoue à l'​ajout du groupe, vous pouvez le faire manuellement:​ 
 +<​code> ​sudo usermod -a -G tty $USER </​code>​ 
 +<​code> ​sudo usermod -a -G dialout ​$USER </​code>​ 
 +    
 +modifier les droits de /ttyACM0 avec la commande (la carte doit être connectée !) : 
 +<​code>​ sudo chmod a+rw /​dev/​ttyACM0</​code>​ 
 + 
 +ou depuis la mise a jour 
 + 
 +<​code>​ sudo chmod a+rw /​dev/​ttyUSB0 </​code>​ 
 il faut ensuite se déconnecter et se reconnecter pour que les modifications soient effectives. il faut ensuite se déconnecter et se reconnecter pour que les modifications soient effectives.
 +
 +Si le paquet a été installé à partir de la logithèque GNOME (logiciels) alors 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.
  
 ==== Problèmes connus ==== ==== Problèmes connus ====
-<note important>​Ce problème n'a pas été rencontré avec une carte arduino (R3) - ubuntu ​12-10</​note>​+<note important>​Il semble que ce problème soit résolu avec les nouvelles versions d'​Arduino IDE (à confirmer) le problème n'a pas été rencontré avec une carte arduino (R3) sous Ubuntu ​12.10 ni sous Ubuntu 14.04 ou sous 16.04</​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.\\ 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. 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.
  
-Si le port de sortie ttyUSBx ou ttyACMx n'​apparaît pas dans la liste des ports série du logiciel 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)[[http://​playground.arduino.cc/​Linux/​All|Installation of arduino on all Linux version]]).+Si le port de sortie ​//ttyUSBx// ou //ttyACMx// n'​apparaît pas dans la liste des ports série du logiciel 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>​  
 +  * 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 
 +     * 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 le logiciel Arduino et dans 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>​ 
  
 =====Utilisation===== =====Utilisation=====
Ligne 50: Ligne 83:
  
 === 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 ===
Ligne 63: Ligne 96:
  
  
-=== Programmateur ​=== +=== Programmeur ​=== 
-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.\\ +La programmation de la carte se fait avec avrdude. Il faut lui spécifier le programmeur, le micro-contrôleur et le port sur lequel la carte est branchée.\\ 
-Dans notre exemple le programmateur ​est un "​stk500v2",​ mais un type de programmateur ​plus spécifique a été créé : "​arduino"​.\\+Dans notre exemple le programmeur ​est un "​stk500v2",​ mais un type de programmeur ​plus spécifique a été créé : "​arduino"​.\\
 Le micro-controleur sera cette fois-ci : m328p. 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>​+<note tip> Là encore, la liste des micro-controlleurs et programmeur ​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>​
Ligne 75: Ligne 108:
  
 ==== Simulation de l'​Arduino ==== ==== Simulation de l'​Arduino ====
 +
 +Il existe un petit logiciel qui permet de simuler son utilisation simulide sur le [[http://​simulide.blogspot.com/​|site officiel]].
  
 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]]. 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]].
Ligne 84: Ligne 119:
 =====Voir aussi===== =====Voir aussi=====
   * [[http://​www.mon-club-elec.fr/​pmwiki_reference_arduino/​pmwiki.php?​n=Main.HomePage|Une version française du site Arduino]]   * [[http://​www.mon-club-elec.fr/​pmwiki_reference_arduino/​pmwiki.php?​n=Main.HomePage|Une version française du site Arduino]]
-  * 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 ​]] un cours sur Arduino 
-  * [[http://​fr.flossmanuals.net/​arduino/​|Manuel français sur arduino]] et l'​électronique libre, réalisé par Flossmanuals Francophone +  * [[http://​fr.flossmanuals.net/​arduino/​|Manuel français sur Arduino]] et l'​électronique libre, réalisé par Flossmanuals Francophone 
-  * [[http://​blog.ardublock.com/​]] Ardublock programmation graphique de l'​arduino.+  * [[http://​blog.ardublock.com/​]] Ardublock programmation graphique de l’Arduino. 
 +  * [[https://​eskimon.fr/​]] blog très détaillé de la programmation avec Arduino.
  
 ---- ----
-//​Contributeurs : [[:​utilisateurs:​mimilus|mimilus]],​ gduteil, pygmee, samcelia.//+//​Contributeurs : [[:​utilisateurs:​mimilus|mimilus]],​[[:​utilisateurs:​sivolc73]], gduteil, pygmee, samcelia.//
  • arduino.1411826444.txt.gz
  • Dernière modification: Le 27/09/2014, 16:00
  • par 88.183.205.55