- 追加された行はこの色です。
- 削除された行はこの色です。
*光センサーロボット 「ICHIURA 2」[#bd8d6ee1]
&ref(2007a/A4/課題2右/070607_2010~0001.jpg,100%,itiura2);
今回は光センサーを装備したロボットを制作し自分たちでマジックを用いて作ったコースを走らせました。
*ICHIURA 2について [#v6764e31]
&ref(2007a/A4/課題2右/070607_2010~0003.jpg,100%,itiura2); これが今回のロボット、ICHIURA 2です。
&ref(2007a/A4/課題2右/070607_2009~0001.jpg,100%,itiura2); そしてこれが光センサー&タッチセンサーです。これを装備することでICHIURA 2は完成します。
最初に述べたように今回のICHIURA 2には光センサーが2個、さらにタッチセンサーが1個装備されています。
&ref(2007a/A4/課題2右/070607_2010~0002.jpg,100%,itiura2);
&ref(2007a/A4/課題2右/070607_2008~0001.jpg,100%,itiura2);
この両方を取り付けるのには苦労しました。しかし無駄なものを取り付けずに元々のロボットの形を残しつつシンプルなデザインに仕上げることができました。
特に光りセンサーの位置、角度に気をつけて制作しました。
*コース [#g16f784f]
&ref(2007a/A4/課題2右/070620_1158~0001.jpg,100%,itiura2);今回ICHIURA 2が走ったコースです。
わかっていただけるとは思いますが、モデルは魚です。
尻尾部分の角度が急であること、目の部分を書くのに失敗したことなどからなかなか難易度の高いコースになってしまいました(苦笑)
*プログラム [#s08173d9]
#define THRESHOLD 40 // 黒と白の閾値を設定
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); // センサ1(左は光センサ)
SetSensor(SENSOR_3,SENSOR_LIGHT); // センサ2(右)も光センサ
while(true) { // 無限ループ
if (SENSOR_1<THRESHOLD){ //
if (SENSOR_3<THRESHOLD){ // 光センサが2個とも黒線上のとき
OnFwd(OUT_A); は直進
OnFwd(OUT_C);
} else { // 左だけ黒線上にないときは左にターン
Off(OUT_A);
OnFwd(OUT_C);
}
} else {
if (SENSOR_3<THRESHOLD){ // 右だけ黒線上にないときは右にターン
OnFwd(OUT_A);
Off(OUT_C);
} else { // 2個とも黒線上にない場合は停止
Off(OUT_A);
Off(OUT_C);
}
}
}
}
*しかし・・・ [#n1231c0d]
ICHIURA 2では魚の尻尾部分の急カーブ、失敗した目の部分に対応することが出来ませんでした。何か対策を練らねばなりません。
そこで、先生にアドバイスをいただきICHIURA 2の改良を試みることになりました。
*改良版ICHIURA 2の誕生 [#n6d246a4]
&ref(2007a/A4/課題2右/070621_1922~0002.jpg,100%,itiura2); ICHIURA 2を少し改良しました。改良版ICHIURA 2の誕生です!
*改良版ICHIURA 2の特徴・改善点 [#y8a13a9a]
ICHIURA 2は2個の光センサー2個を用いて光が黒い部分を感知すると走り出すような設定にしていたのですが
それでは急なカーブを曲がりきれない等の問題が生じてしまったので2個の光センサーを離し、黒い線の間をま
たいで進むように変更しました。さらにタッチセンサーの部分も形を変えました。
&ref(2007a/A4/課題2右/070621_1919~0001.jpg,100%,itiura2);
&ref(2007a/A4/課題2右/070621_1921~0001.jpg,100%,itiura2);
&ref(2007a/A4/課題2右/070621_1921~0002.jpg,100%,itiura2);
*新プログラム [#w4c89a09]
#define THRESHOLD 40 // 黒と白の閾値を設定
task main ()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); // センサ1(左)は光センサ
SetSensor(SENSOR_3,SENSOR_LIGHT); // センサ2(右)は光センサ
while(true){ // 無限ループ
if (SENSOR_1>THRESHOLD){
if (SENSOR_3>THRESHOLD){ // 光センサ2個とも黒線上にないときは
OnFwd(OUT_A); 直進
OnFwd(OUT_C);
} else { // 左だけ黒線上にないときは右にターン
Off(OUT_A);
OnFwd(OUT_C);
}
} else { // 右だけ黒線上にないときは左にターン
if (SENSOR_3>THRESHOLD){
OnFwd(OUT_A);
Off(OUT_C);
} else { //二個とも黒線上にないときは停止
Off(OUT_A);
Off(OUT_C);
}
}
}
}
*制作してみての感想 [#k4ddf7bf]
今回は2つ目の課題ということもあり前回苦労した分、かなりスムーズにできました。
さらに今回のロボット、ICHIURA 2は前回より使うブロックも少なくすることができ、シンプルな出来になっていると思います。
実際にコースを走らせると最初は魚の尻尾と目の部分でロボが止まってしまい大変でした。
改良してからは前回よりスムーズに走るようになりぎこちなくも魚の尻尾の部分はなんとか走るようになってくれましたが、結局魚の目の部分の克服には至らず(元のデザインがかなり失敗していて目の部分がしっかり繋がっていないこともあり)マジックで修正しました。
*カーブ(魚の目)の部分での失敗について [#p8fde3a4]
今回の課題の一番の失敗点はまずコース作りにありました。魚の目の部分がしっかりとカーブになっていませんでした。
先生からアドバイスをいただき改良することで、今まで難しかった魚の尻尾の部分ではなんとか走るようになリましたが結局の所目の部分の克服には至りませんでした。
今回は手際よくスムーズに準備を行うことが出来ましたが、コース作りの失敗のためにうまくいきませんでした。カーブと線が交差する部分の対策を練ってしっかり検討して考えてからコース作りに取り組まなければならなかったと思います。
今回の反省を活かしてロボコンではチーム内でしっかりと話し合って検討した上でしっかりと課題をこなしたいと思います。
*コメントよろしくお願いします☆ [#f0fb4f11]
-プログラムの説明もあるとさらに良いでしょう。 -- [[ヒロヤ]] &new{2007-06-21 (木) 12:58:57};
-小さなループ部分(魚の目?)に入る交差点での判断はかなり難しそうですが、そのあたりをどうやって克服したのかきちんと説明しましょう。 -- [[松本]] &new{2007-06-26 (火) 09:01:05};
#comment