- 追加された行はこの色です。
- 削除された行はこの色です。
[[2007a/A10/課題2右]]
#contents
*黒い線に沿って動くロボット [#fe4c331d]
#ref(./Image094~01.jpg)
**製作メンバー [#wb984525]
田丸、藤原
**ロボットの紹介 [#ve977490]
-【全体図】
#ref(./Image094~00.jpg)
-最初は、ダブルバンパー+光センサ×2で、上の写真のような構造にしていました。が、タッチセンサの反応が良くなかったので、交差点で、もう1台のRCXと衝突したときに巻き込まれる可能性を危惧して作りなおしました。
-上のバンパーの感度の問題が発生したため、苦し紛れにタッチセンサに頼らない方法を考えました。
#ref(./Image099~00.jpg)
考えてできたのが上の写真です。
煩わしいバンパーをスッキリ取り払い、光センサーをライントレース用と障害物感知用にしようと考えました。
一見、良いアイディアだと思ったのですが、ライントレース用の光センサが一つしかないため、「黒(暗い部分)」を感知させ、なおかつ今回の課題の「速く、正確に」を実現させるためにプログラムを並列にしなければならなかったので、このパターンも断念しました。
#ref(./Image095~00.jpg)
-【工夫&苦労した点】
**プログラム [#fec0dfd7]
#define TRESHOLD 40
#define MOTER OUT_A+OUT_C
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true){
if(SENSOR_1>THRESHOLD){
if(SENSOR_3>THRESHOlD){
OnFwd(MOTER);
}else{
OnFwd(OUT_C);
Off(OUT_A);
}
if(SENSOR_3>THRESHOLD){
OnFwd(OUT_A);
Off(OUT_C);
}else{
Off(MOTER);Wait();
OnFwd(MOTER);Wait();
}}
if(SENSOR_2 == 1){
OnRev(MOTER);Wait();
Off(MOTER);Wait();
OnFwd(MOTER);
}}
**感想 [#scfce757]
(田丸)
今回のメインはプログラムだと思っていたので、ロボットの構造は、あまり気に掛けていなかったのですが、
シンプルな構造にすればする程プログラムが複雑になっていったので正直なところ参りました。
(結局は時間がなくて光センサは二つ使ったのですが)
前回の課題から、「タイヤの摩擦」について改善しようと思っていたのですが時間がなくできなかったのが残念です。
今回の課題で、入力センサの仕組みが少し分かったので、次回は他の関数も使ってみたいと思います。
***コメントをお願いします [#o24aa411]
#comment