今回は光センサーを装備したロボットを制作し自分たちでマジックを用いて作ったコースを走らせました。
そしてこれが光センサー&タッチセンサーです。これを装備することでICHIURA 2は完成します。
最初に述べたように今回のICHIURA 2には光センサーが2個、さらにタッチセンサーが1個装備されています。
この両方を取り付けるのには苦労しました。しかし無駄なものを取り付けずに元々のロボットの形を残しつつシンプルなデザインに仕上げることができました。
特に光りセンサーの位置、角度に気をつけて制作しました。
わかっていただけるとは思いますが、モデルは魚です。
尻尾部分の角度が急であること、目の部分を書くのに失敗したことなどからなかなか難易度の高いコースになってしまいました(苦笑)
#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); } } } }
ICHIURA 2では魚の尻尾部分の急カーブ、失敗した目の部分に対応することが出来ませんでした。何か対策を練らねばなりません。
そこで、先生にアドバイスをいただきICHIURA 2の改良を試みることになりました。
ICHIURA 2を少し改良しました。改良版ICHIURA 2の誕生です!
ICHIURA 2は2個の光センサー2個を用いて光が黒い部分を感知すると走り出すような設定にしていたのですが
それでは急なカーブを曲がりきれない等の問題が生じてしまったので2個の光センサーを離し、黒い線の間をま
たいで進むように変更しました。さらにタッチセンサーの部分も形を変えました。
#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); } } } }
今回は2つ目の課題ということもあり前回苦労した分、かなりスムーズにできました。
さらに今回のロボット、ICHIURA 2は前回より使うブロックも少なくすることができ、シンプルな出来になっていると思います。
実際にコースを走らせると最初は魚の尻尾と目の部分でロボが止まってしまい大変でした。
今回の課題の一番の失敗点はまずコース作りにありました。魚の目の部分がしっかりとカーブになっていませんでした。
先生からアドバイスをいただき改良することで、今まで難しかった魚の尻尾の部分ではなんとか走るようになリましたが結局の所目の部分の克服には至りませんでした。
今回は手際よくスムーズに準備を行うことが出来ましたが、コース作りの失敗のためにうまくいきませんでした。カーブと線が交差する部分の対策を練ってしっかり検討して考えてからコース作りに取り組まなければならなかったと思います。
今回の反省を活かしてロボコンではチーム内でしっかりと話し合って検討した上でしっかりと課題をこなしたいと思います。