Detta beror på att IDE inte har tillräckliga behörigheter för att komma åt Arduino-enheten.
Permissions
Vi kan titta på Arduino-enheten genom att köra
ls -l /dev/ttyACM*
i en terminal. Utmatningen ser oftast ut så här:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
Den ”0” i slutet av ”ACM” kan vara annorlunda, och flera poster kan listas, men de delar vi behöver fokusera på är strängen av bokstäver och streck framför, och de två namnen root
och dialout
.
Det första namnet root
är enhetens ägare och dialout
är enhetens ägargrupp.
Bokstäverna och strecken framför, som börjar efter ”c”, representerar behörigheterna för enheten per användare: – Den första tripletten rw-
betyder att ägaren (root
) kan läsa och skriva på enheten – Den andra tripletten rw-
betyder att medlemmarna i ägargruppen (dialout
) kan läsa och skriva på enheten – Den tredje tripletten ---
betyder att andra användare inte har några behörigheter alls (vilket innebär att ingen annan kan läsa och skriva på enheten)
Som kort sagt kan ingen utom root
och medlemmarna i dialout
göra någonting med Arduino; Eftersom vi inte kör IDE som root
eller som medlem i dialout
kan IDE inte komma åt Arduino på grund av otillräckliga behörigheter.
Att lägga till dig själv i dialout-gruppen
Men vänta! Tidigare, när vi startade IDE, lade vi till oss själva i gruppen dialout
!
Så varför har IDE fortfarande inte behörighet att komma åt Arduino?
De ändringar som prompt gör gäller inte förrän vi loggar ut och loggar in igen, så vi måste spara vårt arbete, logga ut och logga in igen.
När du loggar in igen och startar Arduino IDE bör alternativet Seriell port vara tillgängligt; ändra det och vi bör kunna ladda upp kod till Arduino.