- 追加された行はこの色です。
- 削除された行はこの色です。
アーム側プログラム
#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);
}
}
}
}
}
}
}