シリアルUSBで接続したArduinoから100 msトリガーパルスを発行する
| Trigger_arduino | 1 month ago | ||
| README.md | 1 month ago | ||
| requirements.txt | 1 month ago | ||
| trigger.py | 1 month ago | ||
ArduinoへシリアルUSB経由で100 msトリガーパルスを発行するPythonスクリプトです。
trigger.py を実行すると、指定COMポートに接続されたArduinoへ TRIG コマンドを送信します。
ArduinoはACK・DONEを返すことでトリガー完了を通知し、Pythonスクリプトはその応答を確認します。
PC (Python) Arduino
| |
|--- TRIG\n ------->|
| | (トリガー出力開始)
|<-- ACK -----------|
| | (100 ms パルス出力)
|<-- DONE ----------|
| |
pip install -r requirements.txt
trigger.py 冒頭の定数を環境に合わせて変更してください。
| 定数 | デフォルト値 | 説明 |
|---|---|---|
PORT | COM5 | 接続するCOMポート |
BAUD_RATE | 115200 | ボーレート |
RESPONSE_TIMEOUT_SECONDS | 2.0 | Arduino応答待ちタイムアウト (秒) |
python trigger.py
実行例:
COM5を開きました。 Arduino: ACK Arduino: DONE 100 msトリガーが完了しました。
main関数の流れは以下の通りです.
ここで,1と2までは別プログラムの初期化ルーチンで事前に行ってください.
トリガー信号を出す瞬間に 3 シグナル送信 を実行してください.
このようにせず毎度 1~3 を処理すると,シグナル送信が遅延し,適時にトリガーが出せません.
| メッセージ | 原因 |
|---|---|
Arduinoは現在トリガー出力中です。 | Arduino がBUSY状態のため再送が必要 |
Arduinoからの応答がタイムアウトしました。 | ケーブル未接続・ボーレート不一致など |
シリアルポートエラー: ... | COMポートが存在しない・アクセス権なし |
シリアル送信タイムアウト: ... | 書き込みタイムアウト (デフォルト1秒) |