web-dev-qa-db-ja.com

Arduino(スナップ)にシリアルポート/ dev / ttyUSB0(または/ dev / ttyACM0)にアクセスさせるにはどうすればよいですか?

Ubuntu 18.04 LTSがインストールされています。

Arduino IDE v1.8.5をスナップショットとしてインストールしました

snap install arduino-mhall119

ユーザーをダイヤルアウトグループに追加して再起動しました。

Sudo usermod -a -G dialout $USER

$ groups 
username adm dialout cdrom Sudo dip plugdev lpadmin sambashare

Arduino Nanoをラップトップに接続しましたが、ポート/ dev/ttyUSB0ch341-uart))。

$ ls /dev/ttyUSB0 -al
crw-rw---- 1 root dialout 188, 0 авг 13 11:59 /dev/ttyUSB0

簡単なBlinkスケッチをアップロードして、ターミナルで次のエラーを取得しようとしました。

$ arduino-mhall119.arduino 


avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied  
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.**

また、umakeでarduino 1.8.5をインストールしました。通常の方法でシリアルポートにアクセスできます。

注:すでに 類似した質問 がありますが、解決策は package from umake であり、Snapの修正ではありません。

だから私の質問は次のとおりです。Arduino(スナップ)にシリアルポート/ dev/ttyUSB0(または/ dev/ttyACM0)をアクセスさせる方法は?

更新:スナップショットへのserial-portの接続が失敗し、次のメッセージが表示されます

$ snap connect arduino-mhall119:serial-port 
error: snap "core" has no "serial-port" interface slots

現在のインターフェイスは次のとおりです。

$ snap interfaces | grep arduino
:home                            arduino-mhall119,gedit,organize-my-files,vlc
:network                         arduino-mhall119,gedit,organize-my-files,pulsemixer,vlc
:unity7                          arduino-mhall119,gedit,organize-my-files,vlc
:x11                             arduino-mhall119,organize-my-files,pulsemixer,vlc
-                                arduino-mhall119:serial-port

Sudo chmod 777 /dev/ttyUSB0を使用してシリアルポートのアクセス許可を777に変更しても効果はありません。

以下も機能しません(構文エラーのため):

$ Sudo snap connect arduino-mhall119:arduino
error: snap "arduino-mhall119" has no plug named "arduino"

$ snap connect arduino-mhall119:/dev/ttyUSB0
error: snap "arduino-mhall119" has no plug named "/dev/ttyUSB0"

$ snap connect arduino-mhall119
error: cannot resolve connection, plug snap name is empty

YAMLマニフェストに関する情報:

$ ls -l /snap/arduino-mhall119/current/meta/snap.yaml
-rw-r--r-- 1 root root 353 июл 28 00:20 /snap/arduino-mhall119/current/meta/snap.yaml

$ cat /snap/arduino-mhall119/current/meta/snap.yaml |grep -A 12 slots

$ cat /snap/arduino-mhall119/current/meta/snap.yaml |grep -A 5 plug
    plugs:
    - x11
    - unity7
    - home
    - network
    - serial-port
6
N0rbert

スナップショットをクラシックモードでインストールして、ポートへのアクセスを許可します

$ snap install arduino-mhall119 --classic

とても簡単です。これで、シリアルポートにアクセスできるはずです!ハッピーハッキング!

注:古いArduino 1.6.10には以下の情報が必要です。



答えを見つけるのに役立ついくつかの興味深いリンク

自動接続シリアルポートインターフェイス

Lundamarは次のように述べています:シリアルポートガジェット/インターフェイスが改善されてすべてのシステムシリアルデバイスにアクセスできるようになるまで、次のように制限なしにインストールするだけでスナップを機能させることができます。

$ snap install tio --classic

何もしないよりはましですが、シリアルttyデバイスへのアクセスを許可して実行することをお勧めします。

インターフェース-serial-port

インターフェイスリファレンス

serial-port
シリアルポートにアクセスできます。これは、シリアルポートハードウェアを構成する特権アクセスを提供するため、制限されています。スロットはガジェットsnapによって実装されることになっていることに注意してください(これはコアスナップでは提供されません)。

シリアルポートスロットを提供するガジェット

10