#include "hspext.as"
com_port = 10 ; arduinoのシリアルモニタは使えなくなる
com_baud = "baud=9600 parity=N data=8 stop=1"
comopen com_port, com_baud
if stat != 0 : dialog "COMポートを開けませんでした。": end
mes "COM" + com_port + " を開きました。"
; --- 重要:Arduinoがリセットから立ち上がるのを待つ --- これがないと
ArduinoはPCから接続(comopen)された瞬間に再起動(リセット)がかかります。
mes "Arduinoの準備を待っています..."
wait 300 ; 3秒間待機(これがないと送信データが無視されます)
再起動中のArduinoはデータを受け取れないため、送信前に待ち時間を入れる必要があります。
; --- データの送信 ---
comput "Hello HSP3.7"
mes "データを送信しました。LEDが4秒間光るはずです。"
; 送信が物理的に完了するまで少し待ってから閉じる
wait 100
comclose
mes "ポートを閉じました。"
stop
----------------対応arduino code-----------------
void setup() {
// 内蔵LED(13番ピン)を出力モードに設定
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); // 最初は消灯
// HSP側の設定に合わせて 9600bps で開始
Serial.begin(9600);
}
void loop() {
// シリアルバッファにデータが届いているか確認
if (Serial.available() > 0) {
// 送信された文字列を読み取る
String data = Serial.readString();
// 受信した文字列に "Hello HSP3.7" が含まれているか判定
// これならcr/lf処理が省けるので便利
if (data.indexOf("Hello HSP3.7") != -1) {
digitalWrite(LED_BUILTIN, HIGH); // LEDを点灯
delay(4000);
digitalWrite(LED_BUILTIN, LOW);
}
}
}
0 件のコメント:
コメントを投稿