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 13/01/2013, 10:08]
92.139.216.180 [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]]**.\\ 
 +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.
  
-Pour l'​installer,​ il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​arduino|Arduino]]**. +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 [[precise|Ubuntu 12.04]] un utilitaire est présent dans les dépôts. Il permet de programmer ​Ardunio ​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]]
-  * 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 +
-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 la page décrivant la manip : http://​arduino.cc/​en/​Hacking/​DFUProgramming8U2 +
-Un site en français explique très bien les opérations à faire : http://​www.mon-club-elec.fr/​pmwiki_reference_arduino/​pmwiki.php?​n=Main.MaterielUnoMAJFirmwareUSB+
  
 +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.
 +
 +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>​
  
  
Ligne 47: Ligne 80:
 ==== 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>​ <​note>​ Cette méthode ne permet peut-être pas d'​utiliser les librairies fournies par Arduino </​note>​
-Dans cette partie ​nous allons ​montrer comment compiler avec avr-gcc et comment charger votre programme dans votre carte Arduino.+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]]+[[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.\\+**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 : Par exemple pour une carte Arduino UNO, avec un avr atmega328p, on a :
 <​code>​ avr-gcc -mmcu=atmega328p -o main.elf main.c </​code>​ <​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 la doc d'​avr-gcc :+<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>​ <​code>​ man avr-gcc </​code>​ </​note>​
  
Ligne 62: 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 ​à été créé : "​arduino"​.\\+Dans notre exemple le programmeur ​est un "​stk500v2",​ mais un type de programmeur ​plus spécifique ​é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 la doc : <​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>​ 
-On a 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>​
Ligne 75: Ligne 109:
 ==== Simulation de l'​Arduino ==== ==== Simulation de l'​Arduino ====
  
-Il existe un petit logiciel qui permet de simuler son utilisation, mais il ne semble pas fonctionner sous Wine, une machine virtuelle Windows est ici nécessaire : il s'​appelle ​[[http://www.virtualbreadboard.net/VBB/​Download/​tabid/​150/​Default.aspx|VBB]].+Il existe un petit logiciel qui permet de simuler son utilisation ​simulide sur le [[http://simulide.blogspot.com/|site officiel]].
  
-Il existe un logiciel ​pour dessiner les plans des cartes électroniques pour l'​Arduino ​: [[fritzing]].+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 est possible de contrôler l'​Arduino par le biais de Scratch ​[[scratch#​etendre_les_capacites_du_logiciel|scratch]].+Il existe un logiciel pour dessiner les plans des cartes électroniques pour l'​Arduino : [[:​fritzing]]. 
 + 
 +Il est possible de contrôler l'​Arduino par le biais de [[:scratch#​etendre_les_capacites_du_logiciel|Scratch]].
  
 =====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]]
-  * [[http://www.arduino.cc/fr/|Version officielle en français sur le site Arduino]] +  * [[https://zestedesavoir.com/tutoriels/686/arduino-premiers-pas-en-informatique-embarquee/|Arduino : premiers pas en informatique embarquée ​]] un cours sur Arduino 
-  * Le tutoriel Arduino pour les débutants sur le [[http://​sciences.siteduzero.com/​tutoriel-3-515602-arduino-pour-bien-commencer-en-electronique-et-en-programmation.html|Site du Zéro Science]] +  * [[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. 
 +  * [[https://​eskimon.fr/​]] blog très détaillé de la programmation avec Arduino.
  
 ---- ----
-//Contributeurs : [[:​utilisateurs:​mimilus|mimilus]],​ pygmee, samcelia.//+//Contributeurs ​: [[:​utilisateurs:​mimilus|mimilus]],​[[:​utilisateurs:​sivolc73]],​ gduteil, pygmee, samcelia.//
  • arduino.1358068118.txt.gz
  • Dernière modification: Le 13/01/2013, 10:08
  • par 92.139.216.180