Dit gebeurt omdat de IDE niet voldoende permissies heeft om toegang te krijgen tot het Arduino-apparaat.
Permissions
We kunnen naar het Arduino-apparaat kijken door
ls -l /dev/ttyACM*
in een terminal uit te voeren. De uitvoer ziet er meestal zo uit:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
De ‘0’ aan het eind van ‘ACM’ zou anders kunnen zijn, en er zouden meerdere vermeldingen kunnen zijn, maar de delen waar we ons op moeten concentreren zijn de reeks letters en streepjes ervoor, en de twee namen root
en dialout
.
De eerste naam root
is de eigenaar van het apparaat, en dialout
is de eigenaarsgroep van het apparaat.
De letters en streepjes vooraan, beginnend na ‘c’, geven de permissies voor het apparaat per gebruiker weer: – Het eerste triplet rw-
betekent dat de eigenaar (root
) kan lezen en schrijven naar dit apparaat – Het tweede triplet rw-
betekent dat leden van de eigenaarsgroep (dialout
) kunnen lezen en schrijven naar dit apparaat – Het derde triplet ---
betekent dat andere gebruikers helemaal geen permissies hebben (wat betekent dat niemand anders kan lezen en schrijven naar het apparaat)
In het kort, niemand behalve root
en leden van dialout
kunnen iets doen met de Arduino; omdat we de IDE niet draaien als root
of als lid van dialout
, kan de IDE de Arduino niet benaderen wegens onvoldoende rechten.
Uzelf toevoegen aan de uitbelgroep
Maar wacht! Eerder, toen we de IDE opstartten, hebben we onszelf wel toegevoegd aan de dialout
-groep!
Waarom heeft de IDE dan nog steeds geen toegang tot de Arduino?
De wijzigingen die de prompt maakt, zijn pas van toepassing als we uitloggen en weer inloggen, dus we moeten ons werk opslaan, uitloggen, en weer inloggen.
Als u weer inlogt en de Arduino IDE start, zou de optie Seriële poort beschikbaar moeten zijn; verander die, en we zouden in staat moeten zijn om code naar de Arduino te uploaden.