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 26/08/2012, 00:40]
37.160.56.115 [Voir aussi]
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==== 
 +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. 
 + 
 +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. 
 + 
 +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 ====
-Problème de micro-logiciel utilisés 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 +<note important>​Il semble que ce problème soit résolu avec les nouvelles versions d'Arduino ​IDE (à confirmer) ​le problème n'pas été rencontré avec une carte arduino (R3) sous Ubuntu ​12.10 ni sous Ubuntu 14.04 ou sous 16.04</note>
-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 USBVoir 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 40: Ligne 79:
  
 ==== Compilation et programmation sous console ==== ==== Compilation et programmation sous console ====
-<​note>​ Cette méthode ne permet peut-être pas d'​utiliser les librairies ​fournie ​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é ​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>​
  
-Puis on extrait les données ​utilisable ​par le micro-controlleur : +Puis on extrait les données ​utilisables ​par le micro-controlleur : 
-<​code>​ objcopy O ihex -R .eeprom main.elf main.hex </​code>​+<​code>​ objcopy ​-O ihex -R .eeprom main.elf main.hex </​code>​
  
  
-=== Programmateur ​=== +=== Programmeur ​=== 
-La programmation de la carte se fait avec avrdude. Il faut lui spécifierle programmateur, le micro-contrôleuret le port sur lequel la carte est branché.\\ +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 cet fois si : m328p. +Le micro-controleur sera cette fois-ci : m328p. 
-<note tip> ​La encore, la liste des micro-controlleur ​et programmateur supporté ce 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 69: 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 
-  * [[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.//+//Contributeurs ​: [[:​utilisateurs:​mimilus|mimilus]],​[[:​utilisateurs:​sivolc73]],​ gduteil, pygmee, samcelia.//
  • arduino.1345934457.txt.gz
  • Dernière modification: Le 26/08/2012, 00:40
  • par 37.160.56.115