- 追加された行はこの色です。
- 削除された行はこの色です。
目次
#contents
*課題の説明 [#fc9d48da]
B地点をスタートしてQ付近の3/4円周上でピンポン玉をつかみ、そのピンポン玉をC地点においたゴールへシュートする (二人目)
Bスタート → R直進 → P右折 → Q直進 → (ピンポン玉をキャッチ) → Q直進 → R右折 → P直進 → S右折 → Cへシュート
ただし、
なるべく速く正確に動くロボットになるように工夫して、交差点では1秒間停止すること。
ピンポン玉はQ近くの3/4円周上ならどこにおいてもよい
可能であればC,Dのゴールエリアライン上からシュートする
#ref(2016b/Member/pengin/Mission2/課題.jpg,150%)
黒線の左側をジグザグしながらライトレイスを行い、途中でピンポン球を拾ってそれをゴール地点まで運ぶことを目的としている。
*ロボットの説明 [#m45f1514]
**全体像 [#sb902f72]
#ref(2016b/Member/pengin/Mission2/全体像.jpg,150%)
モーターを前後の動き、アームの上げ下ろしにつか使った。センサーはライトセンサーを使用した。
**アーム部分 [#g06bc864]
#ref(2016b/Member/pengin/Mission2/アーム.jpg,150%)
ピンポン球が左右にずれないようにするために長いパーツを先端部分にとりつけた。ピンポン球を捕まえる部分はシンプルにアームを降ろすだけで捕まえられるようにした。
**本体部分 [#n44674aa]
#ref(2016b/Member/pengin/Mission2/ライト.jpg,150%) #ref(2016b/Member/pengin/Mission2/ウラ面.jpg,150%)
ライントレイスの正確性をあげるために機体とセンサーの距離を小さくするために、機体もなるべく小さくした。
*プログラミングの説明 [#k30b9e02]
#define tyousei_migi OnFwd(OUT_A);\\ライントレイス時に右に少し調整
#define tyousei_hidari OnFwd(OUT_C);\\ライントレイス時に左に少し調整
#define senkai_migi OnFwd(OUT_A);OnRev(OUT_C);\\ライントレイス時に右に大きく調整
#define senkai_hidari OnFwd(OUT_C);OnRev(OUT_A);\\ライントレイス時に左に大きく調整
#define go_straight OnFwd(OUT_AC);\\直進する
#define usetu OnFwd(OUT_A);Wait(100);\\交差点での右折
#define tyokusinn OnFwd(OUT_AC);Wait(020);Off(OUT_AC);\\交差点での直進
#define senkai OnFwd(OUT_A);OnRev(OUT_C);Wait(019);Off(OUT_AC);\\交差点での軌道修正
#define up OnFwd(OUT_B);Wait(030);Off(OUT_B);\\アームを上げる
#define down OnRev(OUT_B);Wait(030);Off(OUT_B);\\アームを下げる
#define shoot OnRev(OUT_AC);Wait(100);Off(OUT_AC);up;OnFwd(OUT_AC);Wait(100);Off(OUT_AC);\\ゴールにシュート
sub linetrace()\\ライントレイス
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(FastTimer(0)<027){
if(SENSOR_2>50){senkai_migi;ClearTimer(0);}
else if(SENSOR_2>47){tyousei_migi;ClearTimer(0);}
else if(SENSOR_2>43){go_straight;ClearTimer(0);}
else if(SENSOR_2>37){tyousei_hidari;ClearTimer(0);}
else if(SENSOR_2>35){senkai_hidari;}
}
Off(OUT_AC);
PlaySound(SOUND_UP);
Wait(100);
senkai;
}
task main()
{
linetrace();\\ライントレイス
usetu;\\交差点を右折
linetrace();\\ライントレイス
tyokusinn;\\交差点を直進
tyokusinn;\\ボールを捕らえるために前進
down;\\バーを下ろす
linetrace();\\ライントレイス
tyokusinn;\\交差点を直進
linetrace();\\ライントレイス
usetu;\\交差点を右折
linetrace();\\ライントレイス
tyokusinn;\\交差点を直進
linetrace();\\ライントレイス
usetu;\\交差点を右折
linetrace();\\ライントレイス
shoot;\\ピンポン球をゴールにシュート
}
*結果 [#p976d7b0]
なんとか完走しゴールすることが出来た。しかし毎回完走できるわけではなかった。
*感想・まとめ [#t790fd68]