2019b/Member/Hatto/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019b/Member]]
*課題3 [#b30eedab]
青と赤のボールを運搬して空き缶の上に乗せる
*ロボットについて [#hffb59e9]
#ref(2019b/Member/Hatto/Mission3/robo.jpeg,50%)
一体型のロボットを作ることにした。
下の部分が各種センサーでライントレースと缶の発見を行う側...
光センサーは、車体との距離を縮めることでカーブを交差点だ...
遠すぎない位置に設置することで安定した値を取れるようにし...
*プログラミング [#l257949b]
#define SPEED 35 ...
#define STEP 1 ...
#define mae OnFwd(OUT_BC,SPEED); ...
#define usiro(t) OnRev(OUT_BC,SPEED);Wait(t);Off(OUT_BC)...
#define migi1 OnFwd(OUT_C,SPEED); ...
#define migi2 OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED); ...
#define hidari1 OnFwd(OUT_B,SPEED); ...
#define hidari2 OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED); ...
#define CONN 1 ...
#define SIGNALON 11 ...
#define SIGNALOFF 12 ...
これがマクロのプログラミング
sub linefollow1()
{
SetSensorLight(S3); //S3に光センサー...
SetSensorLowspeed(S4); //S4に超音波セン...
long t0;
t0=CurrentTick();
while(CurrentTick()-t0<200){ //t0が0.2秒の間繰...
if(SensorUS(S4)<=6){ //6cm以内に近づくと
Off(OUT_BC); //モーターが止まる
PlaySound(SOUND_UP); //ピロピロという...
break; //whileループから...
}
if(SENSOR_3>60){ //値が60以上の時
migi2; //右に旋回
t0=CurrentTick(); //時間をリセット
}else if(SENSOR_3>52){ //値が52以上の時
migi1; //右折する
t0=CurrentTick(); //時間をリセット
}else if(SENSOR_3>40){ //値が40以上の時
hidari1; //左折する
t0=CurrentTick(); //時間をリセット
}else if(SENSOR_3>30){ //値が30以上の時
hidari2; //左に旋回
}else{ //そのほかの時
mae; //前進する
t0=CurrentTick(); //時間をリセット
}
Wait(STEP);
}
Off(OUT_BC); //モーターを止める
Wait(1000); //1秒待つ
}
これが左をトレースするプログラム
{
Wait(1000); //1秒待つ
PlaySound(SOUND_CLICK); //ピッ...
linefollow1(); //左側...
mae;Wait(350);Off(OUT_BC); //缶の...
SendRemoteNumber(CONN,MAILBOX1,SIGNALON); //スレ...
Wait(17000); //17秒...
usiro(1400); //後退...
kaihi(); //缶を...
linefollow1(); //左側...
mae;Wait(700);Off(OUT_BC); //D地点...
linefollow1(); //左側...
mae;Wait(350);Off(OUT_BC); //缶の...
SendRemoteNumber(CONN,MAILBOX1,SIGNALON); //スレ...
Wait(17000); //17秒...
usiro(1100); //後退...
migi2;Wait(1600);Off(OUT_BC); //D地点...
linefollow1(); //左側...
hidari2;Wait(1600);Off(OUT_BC); //G地点...
linefollow1(); //左側...
mae;Wait(350);Off(OUT_BC); //缶の...
SendRemoteNumber(CONN,MAILBOX1,SIGNALON); //スレ...
Wait(17000); //17秒...
usiro(1100); //後退...
migi2;Wait(1700);Off(OUT_BC); //G地点...
linefollow1(); //左側...
hidari1;Wait(2000);Off(OUT_BC); //H地点...
linefollow2(); //右側...
migi1;Wait(2000);Off(OUT_BC); //H'地...
linefollow1(); //左側...
hidari2;Wait(1600);Off(OUT_BC); //G'地...
linefollow1(); //左側...
mae;Wait(350);Off(OUT_BC); //缶の...
SendRemoteNumber(CONN,MAILBOX1,SIGNALOFF); //スレ...
Wait(17000); //17秒...
usiro(1100); //後退...
}
これがメインのプログラム
*まとめ [#t907cb9b]
プログラミングということができてとても良かった。
終了行:
[[2019b/Member]]
*課題3 [#b30eedab]
青と赤のボールを運搬して空き缶の上に乗せる
*ロボットについて [#hffb59e9]
#ref(2019b/Member/Hatto/Mission3/robo.jpeg,50%)
一体型のロボットを作ることにした。
下の部分が各種センサーでライントレースと缶の発見を行う側...
光センサーは、車体との距離を縮めることでカーブを交差点だ...
遠すぎない位置に設置することで安定した値を取れるようにし...
*プログラミング [#l257949b]
#define SPEED 35 ...
#define STEP 1 ...
#define mae OnFwd(OUT_BC,SPEED); ...
#define usiro(t) OnRev(OUT_BC,SPEED);Wait(t);Off(OUT_BC)...
#define migi1 OnFwd(OUT_C,SPEED); ...
#define migi2 OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED); ...
#define hidari1 OnFwd(OUT_B,SPEED); ...
#define hidari2 OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED); ...
#define CONN 1 ...
#define SIGNALON 11 ...
#define SIGNALOFF 12 ...
これがマクロのプログラミング
sub linefollow1()
{
SetSensorLight(S3); //S3に光センサー...
SetSensorLowspeed(S4); //S4に超音波セン...
long t0;
t0=CurrentTick();
while(CurrentTick()-t0<200){ //t0が0.2秒の間繰...
if(SensorUS(S4)<=6){ //6cm以内に近づくと
Off(OUT_BC); //モーターが止まる
PlaySound(SOUND_UP); //ピロピロという...
break; //whileループから...
}
if(SENSOR_3>60){ //値が60以上の時
migi2; //右に旋回
t0=CurrentTick(); //時間をリセット
}else if(SENSOR_3>52){ //値が52以上の時
migi1; //右折する
t0=CurrentTick(); //時間をリセット
}else if(SENSOR_3>40){ //値が40以上の時
hidari1; //左折する
t0=CurrentTick(); //時間をリセット
}else if(SENSOR_3>30){ //値が30以上の時
hidari2; //左に旋回
}else{ //そのほかの時
mae; //前進する
t0=CurrentTick(); //時間をリセット
}
Wait(STEP);
}
Off(OUT_BC); //モーターを止める
Wait(1000); //1秒待つ
}
これが左をトレースするプログラム
{
Wait(1000); //1秒待つ
PlaySound(SOUND_CLICK); //ピッ...
linefollow1(); //左側...
mae;Wait(350);Off(OUT_BC); //缶の...
SendRemoteNumber(CONN,MAILBOX1,SIGNALON); //スレ...
Wait(17000); //17秒...
usiro(1400); //後退...
kaihi(); //缶を...
linefollow1(); //左側...
mae;Wait(700);Off(OUT_BC); //D地点...
linefollow1(); //左側...
mae;Wait(350);Off(OUT_BC); //缶の...
SendRemoteNumber(CONN,MAILBOX1,SIGNALON); //スレ...
Wait(17000); //17秒...
usiro(1100); //後退...
migi2;Wait(1600);Off(OUT_BC); //D地点...
linefollow1(); //左側...
hidari2;Wait(1600);Off(OUT_BC); //G地点...
linefollow1(); //左側...
mae;Wait(350);Off(OUT_BC); //缶の...
SendRemoteNumber(CONN,MAILBOX1,SIGNALON); //スレ...
Wait(17000); //17秒...
usiro(1100); //後退...
migi2;Wait(1700);Off(OUT_BC); //G地点...
linefollow1(); //左側...
hidari1;Wait(2000);Off(OUT_BC); //H地点...
linefollow2(); //右側...
migi1;Wait(2000);Off(OUT_BC); //H'地...
linefollow1(); //左側...
hidari2;Wait(1600);Off(OUT_BC); //G'地...
linefollow1(); //左側...
mae;Wait(350);Off(OUT_BC); //缶の...
SendRemoteNumber(CONN,MAILBOX1,SIGNALOFF); //スレ...
Wait(17000); //17秒...
usiro(1100); //後退...
}
これがメインのプログラム
*まとめ [#t907cb9b]
プログラミングということができてとても良かった。
ページ名: