懐中電灯の光を追いかけて進むロボットを作って、さらに以下の中から2種類以上のプログラムを作成せよ。
光を追いかけるプログラム(1)
製作者//Masa 製作日//2006/7/6 製作時間//10時間 task main() { SetSensor(SENSOR_1,SENSOR_LIGHT);//センサー1は光センサー SetSensor(SENSOR_3,SENSOR_LIGHT);//センサー3は光センサー while(true){ //条件が正しい場合は無限に実行する if(SENSOR_1 >40 && SENSOR_3<40)//センサー1の値が40以上でセンサー3の値が40以下のとき } Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_C); Off(OUT_A);//センサー1の方に大きな反応があるということは ロボットの左側に光源があるという事なので 左に回転して光源を探す } if (SENSOR_3 >40 && SENSOR_1<40)//センサー3の値が40以上でセンサー1の値が40以下のとき { Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A); Off(OUT_C);//右側に反応がある場合は右に回転して光源を探す } if(SENSOR_1<50 && SENSOR_3<50)//センサー1と3の値が両方50以下のとき { Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A); OnRev(OUT_C);//光を見失ったという事になるので回転して光源を探す } if(SENSOR_1>40 && SENSOR_3>40)//センサー1と3の値が両方40以上のとき { Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A+OUT_C);//常に光に向いている事になるので光源へ向かって直進 } } }
製作者//基本プログラム→Masa 音楽プログラム→Chosan //曲名:チューリップ #define Do 523//ドの音を出す #define Re 587//レの音を出す #define Mi 659//ミの音を出す #define So 784//ソの音を出す task play_music()//音楽を流すためのプログラムです { while(true)//条件が正しいときは無限に実行する { PlayTone(Do,15); Wait(20);//さ PlayTone(Re,15); Wait(20);//い PlayTone(Mi,25); Wait(30);//た PlayTone(Do,15); Wait(20);//さ PlayTone(Re,15); Wait(20);//い PlayTone(Mi,25); Wait(30);//た PlayTone(So,15); Wait(20);//ちゅー PlayTone(Mi,15); Wait(20);//りっ PlayTone(Re,15); Wait(20);//ぷ PlayTone(Do,15); Wait(20);//の PlayTone(Re,15); Wait(20);//は PlayTone(Mi,15); Wait(20);//な PlayTone(Re,25); Wait(30);//が } }
感度を上げるために光センサーの値を10ずつ増やしました
task main()//光を追跡するプログラムの実行 { SetSensor(SENSOR_1,SENSOR_LIGHT);//センサー1は光センサー SetSensor(SENSOR_3,SENSOR_LIGHT);//センサー3は光センサー start play_music;//音楽開始 while(true)//条件が正しい場合は無限に実行する { if(SENSOR_1 >50 && SENSOR_3<50)//センサー1の値が50以上でセンサー3の値が50以下のとき {stop play_music;//音楽を止める Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_C); Off(OUT_A);//左に回転して光源を探す } if(SENSOR_1<60 && SENSOR_3<60)//センサー1と3の値が両方60以下のとき { Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A); OnRev(OUT_C);//回転して光源を探す } if (SENSOR_3 >50 && SENSOR_1<50)//センサー3の値が50以上でセンサー1の値が50以下のとき {stop play_music;//音楽を止める Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A); Off(OUT_C);//右に回転して光源を探す } if(SENSOR_1>50 && SENSOR_3>50)//センサー1と3の値が両方50以上のとき {stop play_music;//音楽を止める Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A+OUT_C);//光源へ向かって直進 } }}
製作者//No.1と同じ //別に区切ってある所のみ追加 #define Do 523//ドの音を出す #define Re 587//レの音を出す #define Mi 659//ミの音を出す #define So 784//ソの音を出す task play_music()//音楽を流すためのプログラムです { while(true)//条件が正しい場合は無限に実行する { PlayTone(Do,15); Wait(20);//さ PlayTone(Re,15); Wait(20);//い PlayTone(Mi,25); Wait(30);//た PlayTone(Do,15); Wait(20);//さ PlayTone(Re,15); Wait(20);//い PlayTone(Mi,25); Wait(30);//た PlayTone(So,15); Wait(20);//ちゅ- PlayTone(Mi,15); Wait(20);//りっ PlayTone(Re,15); Wait(20);//ぷ PlayTone(Do,15); Wait(20);//の PlayTone(Re,15); Wait(20);//は PlayTone(Mi,15); Wait(20);//な PlayTone(Re,25); Wait(30);//が } } task main() { SetSensor(SENSOR_1,SENSOR_LIGHT);//センサー1は光センサー SetSensor(SENSOR_3,SENSOR_LIGHT);//センサー3は光センサー start play_music;//音楽開始 while(true)//条件が正しいときは無限に実行する { if(SENSOR_1 >50 && SENSOR_3<50)//センサー1の値が50以上でセンサー3の値が50以下のとき {stop play_music;//音楽を止める Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_C); Off(OUT_A);//左に回転して光源を探す } if(SENSOR_1<60 && SENSOR_3<60)//センサー1と3の値が両方60以下のとき { Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A); OnRev(OUT_C);//回転して光源を探す } if (SENSOR_3 >50 && SENSOR_1<50)//センサー3の値が50以上でセンサー1の値が50以下のとき {stop play_music;//音楽を止める Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A); Off(OUT_C);//右に回転して光源を探す } if(SENSOR_1>50 && SENSOR_3>50)//センサー1と3の値が両方50以上のとき {stop play_music;//音楽を止める Off(OUT_A+OUT_C);//一度動きを止めて OnFwd(OUT_A+OUT_C);//光源へ向かって直進 }
if(SENSOR_1>65&&SENSOR_3>65)//両方のセンサーの値が65以上のとき {stop play_music;//音楽をとめる Off(OUT_A+OUT_C);//止まる } }}