アーム側プログラム #define SIGNALON 11 // モータ回転のためのメッセージ #define SIGNALOFF 12 // モータ停止のためのメッセージ task main () { while (true) { if (SENSOR_2 <= 30){ SendMessage(SIGNALON); Wait(500); OnRev(OUT_C); Wait(100); OnRev(OUT_A); Wait(200); OnFwd(OUT_A); Wait(100); OnFwd(OUT_C); Wait(20); Off(OUT_AC); } } } タイヤ側プログラム // 受信側のプログラム // #define SIGNALON 11 #define SIGNALOFF 12 task main () { ClearMessage(); // Message()の値を0に初期化 while (true) { until (Message() == SIGNALON); Wait(600); OnFwd(OUT_AC); Wait(200); Off(OUT_AC); } } アーム側のプログラム(改正) #define SIGNALON 11 // モータ回転のためのメッセージ #define SIGNALOFF 12 // モータ停止のためのメッセージ //A 上下 //C アーム task main () { while (true) { if (SENSOR_2 <= 26){ Wait(300); OnRev(OUT_C); //アームを閉じる Wait(500); OnRev(OUT_A); //上に上がる Wait(200); Off(OUT_A); while (true) { if (SENSOR_2 <= 26){ Wait(230); OnFwd(OUT_A); //下に下がる Wait(20); OnFwd(OUT_C); //アームを開く Wait(20); Off(OUT_AC); } } } } } *アーム側最終プログラム [#r78c547a] #define kan_hanbetu 26 sub arm_open() { Wait(300); OnFwd(OUT_A); //下に下がる Wait(20); Off(OUT_A); OnFwd(OUT_C); //アームを開く Wait(20); Off(OUT_AC); OnFwd(OUT_A); //下に下がる Wait(250); Off(OUT_A); } void arm_close(int time) { OnRev(OUT_C); //アームを閉じる Wait(time); OnRev(OUT_A); //上に上がる Wait(280); Off(OUT_A); } //A 上下 //C アーム task main () { while (true) { if (SENSOR_2 <= kan_hanbetu){ Wait(300); arm_close(300); Wait(100); OnRev(OUT_A); //上に上がる Wait(500); while (true){ if (SENSOR_2 <= kan_hanbetu){ arm_open(); arm_close(30); OnRev(OUT_A); //上に上がる Wait(500); while (true){ if (SENSOR_2 <= kan_hanbetu){ OnFwd(OUT_A); //下に下がる Wait(200); Off(OUT_A); Wait(200); OnFwd(OUT_C); //アームを開く Wait(30); Off(OUT_C); } } } } } } } *アーム側最終プログラム2 [#r78c547a] #define kan_hanbetu 26 sub arm_open() { Wait(300); OnFwd(OUT_A); //下に下がる Wait(20); Off(OUT_A); OnFwd(OUT_C); //アームを開く Wait(20); Off(OUT_AC); OnFwd(OUT_A); //下に下がる Wait(250); Off(OUT_A); } void arm_close(int time) { OnRev(OUT_C); //アームを閉じる Wait(time); OnRev(OUT_A); //上に上がる Wait(280); Off(OUT_A); } //A 上下 //C アーム task main () { while (true) { if (SENSOR_2 <= kan_hanbetu){ Wait(300); arm_close(300); Wait(100); OnRev(OUT_A); //上に上がる Wait(500); while (true){ if (SENSOR_2 <= kan_hanbetu){ arm_open(); Wait(80); arm_close(30); OnRev(OUT_A); //上に上がる Wait(500); while (true){ if (SENSOR_2 <= kan_hanbetu){ OnFwd(OUT_A); //下に下がる Wait(200); Off(OUT_A); Wait(200); OnFwd(OUT_C); //アームを開く Wait(30); Off(OUT_C); } } } } } } }