Das liegt daran, dass die IDE keine ausreichenden Berechtigungen hat, um auf das Arduino-Gerät zuzugreifen.
Berechtigungen
Wir können uns das Arduino-Gerät ansehen, indem wir
ls -l /dev/ttyACM*
in einem Terminal ausführen. Die Ausgabe sieht meistens so aus:
crw-rw---- 1 root dialout 166, 0 Des 14 09:47 /dev/ttyACM0
Die „0“ am Ende von „ACM“ könnte anders sein, und es könnten mehrere Einträge aufgelistet sein, aber die Teile, auf die wir uns konzentrieren müssen, sind die vorangestellte Buchstaben- und Bindestrichkette und die beiden Namen root
und dialout
.
Der erste Name root
ist der Besitzer des Geräts, und dialout
ist die Besitzergruppe des Geräts.
Die Buchstaben und Bindestriche vorne, beginnend nach ‚c‘, stellen die Berechtigungen für das Gerät nach Benutzer dar: – Das erste Triplett rw-
bedeutet, dass der Besitzer (root
) auf diesem Gerät lesen und schreiben kann – Das zweite Triplett rw-
bedeutet, dass Mitglieder der Besitzergruppe (dialout
) auf diesem Gerät lesen und schreiben können – Das dritte Triplett ---
bedeutet, dass andere Benutzer überhaupt keine Rechte haben (was bedeutet, dass niemand sonst auf dem Gerät lesen und schreiben kann)
Kurz gesagt, niemand außer root
und Mitgliedern von dialout
kann etwas mit dem Arduino machen; Da wir die IDE nicht als root
oder als Mitglied von dialout
ausführen, kann die IDE aufgrund unzureichender Berechtigungen nicht auf den Arduino zugreifen.
Sich selbst zur Wählgruppe hinzufügen
Aber halt! Vorhin, als wir die IDE gestartet haben, haben wir uns selbst zur Gruppe dialout
hinzugefügt!
Warum hat die IDE dann immer noch keine Berechtigung, auf den Arduino zuzugreifen?
Die Änderungen, die die Eingabeaufforderung vornimmt, gelten erst, wenn wir uns ab- und wieder anmelden, also müssen wir unsere Arbeit speichern, uns ab- und wieder anmelden.
Nach dem erneuten Einloggen und Starten der Arduino-IDE sollte die Option „Serial Port“ verfügbar sein; ändern Sie diese, und wir sollten in der Lage sein, Code auf den Arduino hochzuladen.