Děje se tak proto, že IDE nemá dostatečná oprávnění pro přístup k zařízení Arduino.
Oprávnění
Na zařízení Arduino se můžeme podívat spuštěním
ls -l /dev/ttyACM*
v terminálu. Výstup vypadá většinou takto:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
Na konci ‚ACM‘ může být jiná ‚0‘ a může být uvedeno více záznamů, ale části, na které se musíme zaměřit, jsou řetězec písmen a pomlček před nimi a dvě jména root
a dialout
.
První jméno root
je vlastník zařízení a dialout
je skupina vlastníků zařízení.
Písmena a pomlčky vpředu, začínající za ‚c‘, představují oprávnění pro zařízení podle uživatele: – První trojice rw-
znamená, že vlastník (root
) může číst a zapisovat do tohoto zařízení – Druhá trojice rw-
znamená, že členové skupiny vlastníků (dialout
) mohou číst a zapisovat do tohoto zařízení – Třetí trojice ---
znamená, že ostatní uživatelé nemají vůbec žádná oprávnění (což znamená, že nikdo jiný nemůže číst a zapisovat do zařízení)
Zkrátka nikdo kromě root
a členů skupiny dialout
nemůže s Arduinem nic dělat; protože IDE nespouštíme jako root
nebo jako člen dialout
, IDE nemůže k Arduinu přistupovat kvůli nedostatečným oprávněním.
Přidání se do skupiny dialout
Ale počkejte! Předtím, když jsme spouštěli IDE, jsme se přece přidali do skupiny dialout
!
Proč tedy IDE stále nemá oprávnění k přístupu k Arduinu?
Změny, které výzva provede, se neuplatní, dokud se neodhlásíme a znovu nepřihlásíme, takže musíme uložit svou práci, odhlásit se a znovu přihlásit.
Po opětovném přihlášení a spuštění prostředí Arduino IDE by měla být k dispozici možnost Sériový port; změňte ji a měli bychom být schopni nahrát kód do Arduina.
.