- 履歴一覧
- ソース を表示
- 2015a/Member/Y.H/Mission2 は削除されています。
- 追加された行はこの色です。
- 削除された行はこの色です。
*目次 [#pdbe1a7d]
#contents
*課題について [#s030a29a]
課題2は光センサーを使ったライン・トレース・ロボットの製作
コースは以下の通り(課題2のページより)
#ref(./コース.png,50%)
-A地点からB地点へ (P三叉路およびQ交差点はともに直進)
-B地点からA地点へ (Q交差点では直進、P三叉路では直進)
-C地点からA地点へ (Q交差点では直進、P三叉路では右折)
また、これらの経路の途中(PQ間)においたボールをゴールまで運ぶこと。三叉路および交差点では二秒間停止すること。
今回は、B地点からA地点のコースとする。
*本体について [#j1672ef1]
*プログラムについて [#z4ee3701]
**ライントレース [#hb0a73c2]
一番初めに組んだもの。五段階に光を分けた。
#define hikari 50
#define SPEED1 55
#define SPEED 25
#define turn_left OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED);
#define TURN_LEFT OnFwd(OUT_B,SPEED);
#define go_forward OnFwd(OUT_BC,SPEED1);
#define TURN_RIGHT OnFwd(OUT_C,SPEED);
#define turn_right OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED);
#define STEP 2
task main(){
SetSensorLight(S3);
while(true){
if(SENSOR_3<hikari -7){
turn_left;
}else{
if(SENSOR_3<hikari -3){
TURN_LEFT;
}else if(SENSOR_3<hikari +3){
go_forward;
}else if(SENSOR_3<hikari +10){
TURN_RIGHT;
}else{
turn_right;
}
}
}
}
この時、ロボットは線の左端をなぞった。
**交差点・三叉路 [#k3c8fb05]
交差点や三叉路の判定にはカウンターを使うことにした。
また、上のプログラムではコースをうまくなぞらなかったので、線の右端をなぞるようにした。(左右を反転させた)
**ボールを運ぶ [#qf87d8a7]