échec téléversement avec Ubuntu 16.04

Bonjour,

Je rencontre un problème lorsque je tente de téléverser le programme blink vers ma carte arduino uno.
J'ai installé la version 1.8.4, la carte est reconnue : les leds verte et jaune sont allumées, le port ttyACM0 est bien affiché.
J'ai aussi tenté de mettre à jour les droits d'accès comme recommandé par le tutoriel dédié à l'installation Ubuntu: sans résultat.

le programme que je tente de téléverser est le suivant:

Code: [Select]

/*
Blink

Turns an LED on for one second, then off for one second, repeatedly.

Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:

modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman

This example code is in the public domain.

*/

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Lors de chaque tentative de téléversement, j'ai le message d'erreur suivant:

avrdude: Version 6.3, compiled on Jan 17 2017 at 11:00:16
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/home/james/Documents/JAMES/Robobox/arduino-1.8.4/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/home/james/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM0
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

Toute aide ou conseil seront les bienvenus.

Tu as vérifié si tu fais bien partie du groupe dialout?

avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied

sudo usermod -a -G dialout ton_username

au pire, tu peux ajouter ceci
sudo chmod a+rw /dev/ttyACM0

Je ne suis pas très au fait de linux, cependant en faisant des recherches sur le site, je suis tombé sur un tuto qui explique comment mettre à jour le dialout (https://www.arduino.cc/en/Guide/Linux).
J'ai appliqué le tuto mais sans effet car le message d'erreur persiste.

J'ai aussi appliqué la reco de Infobarquee : ça marche !

je vais de ce pas sur le site Ubuntu pour comprendre à quoi correspond la commande chmod.

Merci à vous deux.

chmod change les permissions d'accès des fichiers. la commande donnée par infobarquee fait ceci :
sudo : donne les permissions du superutilisateur(administrateur)
chmod a(a=all=tout le monde)+(=autorise)rw(read/write) /dev/ttyACM0(le fichier qui correspond au port série virtuel de la carte arduino.

donc de cette manière tous les utilisateurs de ton ordinateur peuvent utiliser le port série de la carte arduino.

le problème de ça, c'est que outre les potentiels soucis de sécurité (avec le port d'une carte arduino on s'en fiche as mal) tu retrouvera le problème si tu branche lune seconde carte, ou si pour une raison X tu débranche/rebranche la carte alors que le port est ouvert par une application, car le la carte sera alors connectée sur /dev/ttyACM1, auquel tu n'aura pas accès...

c'est pour ça qu'il y a des groupes d'utilisateurs. en l'occurence, le groupe "dialout" qui a accès aux port série. Si toon nom d'utilisateur fait partie du groupe, alors tu as automatiquement le droit d'accèder aux port série, donc pas de soucis si la carte change de port.

Pour ça, c'est la première commande donnée par infobarquee qui permet de t'ajouter au groupe, mais par contre l'effet n'est pas immédiat : il faut te déconnecter/reconnecter (ou redémarrer le PC) pour que ça fonctionne.

Ou relancer le service correspondant, sans éteindre ni se déconnecter, mais pour un non professionnel la solution "reboot à la windows" est parfaitement acceptable.

t'es sûr qu'il y a un service qui gère les autorisations des groupes ? il me semble que c'est mis en place à la connexion

bref quoi qu'il en soit, comme conseil pour un débutant sous linux, reboot est bien plus simple et accessible :stuck_out_tongue:

sinon tu peux faire

sudo adduser ton_username dialout

Oui, c'est le principe de base de tous les Unix : le seul reboot obligatoire est pour le changement du noyeau, bon là il n'y a pas moyen de faire autrement.
Il est certain qu'à moins d'avoir une anti-sèche bien fournie, et donc volumineuse, quand tu n'as à gérer que ton ordi personnel entre t'encombrer l'esprit avec ordre qui ne sert qu'une fois tout les 36 du mois et redémarer le PC le choix est vite fait.