このプロジェクトは、Lキーを押すとNucleoボードのLEDが点灯するシリアル通信のテストです。以下の手順に従って、WindowsおよびUbuntuでテストを実行できます。
- PlatformIO (VSCode)
- Python 3.x
pyserialライブラリ- (オプション) Tera Term (Windows用)
- Windows環境でのセットアップ
- Ubuntu (Linux)環境でのセットアップ
-
PlatformIOでプロジェクトをアップロード
PlatformIOを使って、SerialtestプロジェクトをNucleoボードにアップロードします。 -
COMポート番号の確認
VSCodeの下部に表示されるシリアルポート情報、またはTera TermでCOMポート番号を確認します。 -
serialtest.pyの実行
Pythonスクリプトserialtest.pyを実行し、COMポート番号を適切に設定します。ser = serial.Serial('COM3', 115200) # COM番号を適宜変更
-
PlatformIOでプロジェクトをアップロード
PlatformIOを使って、SerialtestプロジェクトをNucleoボードにアップロードします。
-
Pythonファイルの変更
erialtest.pyの6行目を次のように変更ser = serial.Serial('/dev/ttyACM0', 115200)
-
シリアポートの確認
nucleoを接続してるときとしてないときで変わるやつが多分/dev/ttyACM0になってると思います。
ls /dev/tty* -
一時的なシリアルポートの権限を付与
これで一時的に権限を付与できます。ただし接続時毎回やんなきゃだめです
sudo chmod 666 /dev/ttyACM0 -
永続的なシリアルポートの権限を付与
/lib/udev/rules.d/50-udev-default.rules について次のように変更する(こういうの変えてもいいのかな...なんかイヤホンが接続されなくなったけどきにしない
(WAS)
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
(IS)
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout", MODE="0666"
ここで、私の場合このファイルが読み取り専用ファイルになっていたので次のコマンドで編集していきます
sudo chmod u+w /lib/udev/rules.d/50-udev-default.rules
sudo nano /lib/udev/rules.d/50-udev-default.rulesこれで十字キーを用いて該当場所まで移動して , MODE="0666"を追加します
sudo chmod u-w /lib/udev/rules.d/50-udev-default.rules
sudo udevadm control --reload-rulesこれで一時的に読み取り解除していたものをもとに戻し,変更が反映されているはずです 以上ですお疲れ様でした