web-dev-qa-db-ja.com

コードをarduinoにアップロードすると、「avrdude:ser_open():can not open device "/ dev / ttyACM0":Permission denied」というエラーが表示されます。

私のOSはUbuntu 18.04であり、arduinoは今まで働いていました。

いくつかの解決策がありますが、それらのどれも私には役に立たないようです。

私はarduinoウェブサイトの これらの指示 に従いました。

それから私は arduino Stack Exchangeのthis を試しました。これは最初の解決策が機能しなかった場合に機能するはずです。答えは、/etc/udev/ruled.d/パスにいくつかのルールを作成する必要があることを示しています。

しかし、それらのどれも私のために働きませんでした。

また、Windows 10でarduinoをテストして、ハードウェアの問題であるかどうかを確認しましたが、正常に機能しました。

この問題を解決する方法について他にアイデアはありますか?

UPDATE:

  • 私のユーザー名sergioは、両方のグループ(ttyとダイヤルアウト)の一部です。
  • Arduinoの公式チュートリアルで説明されているように、ログアウトしてからログインし直しました。
  • Arduino IDEでは、構成は正しい:Arduino UNOおよびttyACM0
  • これは、チュートリアルコマンドを実行した後のll /dev/ttyACM0の出力です。

    crw-rw-rw- 1 root dialout 166, 0 Jul 15 05:41 /dev/ttyACM0
    

更新2:

これを解決するスクリプトを作成しました: https://github.com/sergiomafra/iniarduino

9
Sérgio Mafra

Ubuntuソフトウェアセンターからインストールしたarduinoを再インストールします。

Sudo apt install --reinstall arduino

コメントに応じたwhich avrdudeコマンドは何も返しませんが、/usr/bin/avrdudeである必要があるため、再インストールが必要です。再び確かめる:

which avrdude

再インストール後にArduino IDEを実行して閉じます。

Arduinoの構成を確認してください。 /home/sergio/.arduino/preferences.txtファイルを開き、serial.portオプションを確認します。 /dev/ttyACM0に変更してみてください。そのファイルを開きます:

Sudo nano /home/sergio/.arduino/preferences.txt

対応する変更を適用します。つまり、オプションは次のようになります。

serial.port=/dev/ttyACM0

その後、コンピューターを再起動します。

7
Bob

Arduinoにスケッチをアップロードしようとしたときに、同様の問題が発生しました。この問題は、シリアルポートへの読み取り/書き込み権限がないことと関連しています。次のコマンドを使用して修正できました。

ポートが存在することを確認するには、ルートディレクトリから次のように入力します。

ls /dev/ttyACM0

読み取り/書き込み権限を設定するには、次を入力します

Sudo chmod a+rw /dev/ttyACM0
11
Adrian

ここに私のために働いたものがあります:

  • Aptからバージョンをアンインストールしますが、正しく動作しません(Sudo apt uninstall arduino; Sudo apt autoremove
  • Arduino Webサイトからバージョンをインストールします
  • Sudo apt install avrdudeウェブサイトからのものは含まれていないため
  • Sudo usermod -a -G dialout [your_username]ウェブサイトからのものは自動的にこれをしないので

そして今、すべてが再び機能しています!

1
Draconis

私が読んだすべての投稿と組み合わせて、このスレッドからの指示に従うことでこの問題を解決したのです。

新しいターミナルで、次のように入力しました。

https://i.stack.imgur.com/ifRmx.png

Fourplusは私のユーザー名であることに注意してください。

0
Arafat Mukasa