Rozwiązanie: avrdude: ser_open (): nie można otworzyć urządzenia na Arduino

W tym artykule wyjaśnię, jak rozwiązać typowy błąd w Arduino:

avrdude: ser_open (): nie można otworzyć urządzenia "/ dev / ttyACM0": Odmowa uprawnień

Tło

Po długim czasie bez Arduino wziąłem swoje dwie wkładki (oryginalną i Elegoo) do wykonywania pewnych czynności z moją córką. Podłączam je, wstawię mrugnięcie żeby zobaczyć czy wszystko jest w porządku i jak idę wysłać to do tablicy zwraca to dobrze znany błąd.

Arduino: 1.8.5 (Linux), Karta: "Arduino / Genuino Uno" avrdude: ser_open (): nie można otworzyć urządzenia "/ dev / ttyACM0": Odmowa uprawnień Problem z przesyłaniem do tablicy. Aby uzyskać sugestie, odwiedź witrynę http://www.arduino.cc/en/Guide/Troubleshooting#upload.

Zarówno na moim komputerze, jak i na laptopie mam zainstalowany system Ubuntu 18.04.

Rozwiązanie

Zaczynam od wykonania link, który mi sugerujesz. I postępuję zgodnie z instrukcjami

En narzędzia / płyta Wybrano Arduino / Genuino Uno

Zapisz się do naszej listy mailingowej

En narzędzia / port szeregowy / dev / ttyACM0

arduino avrdude ide problem

i jak sugeruje dokumentacja w przypadku problemów ze Sterownikami i uprawnieniami otwieram terminal i wykonuję:

 sudo usermod -a -G tty yourUserName
 sudo usermod -a -G dialout yourUserName

gdzie Twoja nazwa użytkownika to Twoja nazwa użytkownika

Teraz wylogowuję się i loguję ponownie. I na wszelki wypadek ponownie uruchomię komputer / laptop.

Nadal nie działa dla mnie, a dokumentacja Arduino już nie pomaga. Więc szukałem dalej na forach i blogach. Jeśli w tym momencie to nie działa dla Ciebie i jesteś podobny do mnie. Wykonaj kolejne kroki

ls / dev / ttyACM0 zwraca / dev / ttyACM0
ls -l / dev / ttyACM0 zwraca crw-rw—- 1 root dialout 166, 0 26 listopada 16:41 / dev / ttyACM

W ten sposób potwierdzamy, że port istnieje

Zamierzamy nadać uprawnienia i sprawdzić, czy nasz użytkownik ma niezbędne uprawnienia.

 sudo chmod a+rw /dev/ttyACM0
 id devuelve 20(dialout) 

Widzę, że użytkownik jest w grupie dialout więc w tej części mamy rację.

To, co mi pomogło, to ponowna instalacja Arduino.

Jeśli sprawdzisz

which avrdude

I nic nie zwraca, należy rozwiązać ponowną instalację Arduino.

sudo apt install --reinstall arduino

A jeśli nie udało Ci się rozwiązać problemu, zostaw komentarz, a postaram się pomóc.

Narzędzie do rozwiązywania problemów AVRDUDE

Istnieje skrypt, który przygotowali, aby rozwiązać ten problem. Możesz spróbować sprawdzić, czy to ci pomaga. Nie korzystałem z niego, ale zostawiam go, ponieważ myślę, że może to być przydatne źródło.

AVRDUDE

Zostawiam trochę informacji, aby lepiej zrozumieć, czym jest AVRDUDE. Nazwa pochodzi od AVRDUDE - AVR Downloader / UploaDEr

AVRDUDE to narzędzie do pobierania / ładowania / manipulowania zawartością pamięci ROM i EEPROM mikrokontrolerów AVR przy użyciu techniki programowania w systemie (ISP).

https://www.nongnu.org/avrdude/

AVRDUDE zostało uruchomione przez Briana S. Deana jako prywatny projekt jako programista dla serii mikrokontrolerów Atmel AVR.

Oprogramowanie i wiele więcej informacji można znaleźć w witryna projektu.

1 komentarz na temat „Rozwiązanie: avrdude: ser_open (): nie można otworzyć urządzenia na Arduino”

  1. Mam problem z arduino jeden nie komunikuje się z IDE lub odwrotnie mam wszystko dobrze skonfigurowane, wszystkie porty itp ... ściągnąłem klapkę ale nie wiem jak to działa przeładowanie firmware które myślę że jest co jest nie tak, możesz mieć trochę więcej szczegółów, jak ponownie zainstalować arduino, dzięki, jestem nowy w tym

    odpowiedź

Zostaw komentarz