[教學] NXT Bluetooth - 傳/收值範例
今天要使用的是SendRemoteBool與ReceiveRemoteBool指令。SendRemoteBool的三個參數分別是slave的位置、信箱與要傳的boolean值(1或0),而ReceiveRemoteBool的三個參數則是要查看的信箱、 接收完畢後是否把暫存區資料清除與將接收的的值存入的變數名稱。
以下程式是一組master與slave。按下master上的觸碰感應器後,slave就會發出聲音:
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | //master 請將觸碰感應器接在1號輸入端 #define BT_CONN 1 //預設連線的line為1 #define OUTBOX 5 //預設mailbox為5 sub BTCheck (int conn) { if (!BluetoothStatus(conn)==NO_ERR) { TextOut(5,LCD_LINE2,"Error");//顯示連線錯誤訊息 Wait(1000); Stop(true); }//if }//BTCheck task main() { BTCheck (BT_CONN); //檢查與slave之連線 SetSensorTouch(S1); bool pressed; while(true) { pressed = Sensor(S1); if(Sensor(S1)==1) { SendRemoteBool(BT_CONN, OUTBOX, pressed); PlayTone(440,500); Wait(500); }//if }//while }//main |
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | //slave #define INBOX 5 sub BTCheck(int conn) { if (!BluetoothStatus(conn)==NO_ERR) { TextOut(5,LCD_LINE2,"Error"); //顯示連線錯誤訊息 Wait(1000); Stop(true); }//if }//BTCheck task main() { BTCheck(0); // 從slave來看,master都是連接在line 0 bool bval; while(true) { ReceiveRemoteBool(INBOX, true, bval); if(bval==1) { Wait(300); PlayTone(660,500); }//if }//while }//main |
有任何疑問或建議歡迎提出討論!另外以上內容摘錄自CAVE的書:NXT與NXC 第二版 "機器人對話"
留言 💬 (0)
還沒有留言,來當第一個。