[[2006a/B7/課題2左]]

[[2006a/B7]]
**今回のメンバー [#m3c997be]
クーロン茶、たいよう、おかじ
* 光センサーを使ったライントレースロボット [#ze3df488]&br;
紙に黒ペンで線を引いて、その上をひたすらまわるロボットの作成&br;

**命名・ライントレースロボット『たどるくん』byおかじ (まるで象サンみたいね)[#caa1e92a]
★製作者★ おかじ
#ref(2006a/B7/課題2左/SN340006.JPG,50%,正面)
これ↑が一応ロボットの原型?です。課題の発表時にはこの姿で走らせました。~
しかし、こんな何の特徴もないロボットじゃつまらない!閲覧者の皆さん、そう思いませんか!?(いや、別に)~
そこで、ロボット製作のエキスパート、おかじさんが素晴らしいロボットを製作してくれました。それがこれ↓
#ref(2006a/B7/課題2左/ashi.jpg,120%,正面)
一応足もあります☆この足で重たい体を支えてます。
#ref(2006a/B7/課題2左/hana.jpg,120%,正面)
この鼻。。。ここだけの話やけど上下運動します!!電子辞書を持ち上げるくらいのパワーがあります(マジで)

<クーロン茶の戯言> ~
おかじさんによると、本当はこれ、ぞうさんじゃなくてカブトムシのつもりだったらしいです(^o^;でも、最終完成体はぞうでもカブトムシでもなくて、サソリロボットになったんですが...~
ちなみに、この上下する鼻を製作するのに余ってたギアーを10個も使ったとの話(^^;

**プログラム [#z174e241]
まず、ライントレースをするためのプログラムのみを考えてみることにしました。タッチセンサーのプログラムは後ほど考えることに。
  ライントレースのみのプログラムです。<製作者> クーロン茶
  task main()
  {
  SetSensor(SENSOR_1,SENSOR_LIGHT);
  SetSensor(SENSOR_3,SENSOR_LIGHT);
  OnFwd(OUT_A+OUT_C);
  while (true) {
  if(SENSOR_1 < 40) {
  OnFwd(OUT_C);
  Off(OUT_A);
  }
  if(SENSOR_3 < 40) {
  Off(OUT_C);
  OnFwd(OUT_A);
  }
  }
  }
次に、上のプログラムに2種類のタッチセンサーのプログラムを追加しました。
  右によけて追い越すプログラムです。☆製作者☆ クーロン茶&たいよう
  task main()
  {
  SetSensor(SENSOR_1,SENSOR_LIGHT);センサ−1がライトセンサーであると宣言
  SetSensor(SENSOR_2,SENSOR_TOUCH);センサ−2がタッチセンサーであると宣言
  SetSensor(SENSOR_3,SENSOR_LIGHT);センサ−3がライトセンサーであると宣言
  
  OnFwd(OUT_A+OUT_C);
  
  while (true) {
  if(SENSOR_1 < 40) {  //左側のライトセンサーが黒線に触れると
  OnFwd(OUT_C);  //右側のタイヤだけを回転
  Off(OUT_A);
  }
  if(SENSOR_3 < 40) {  //右側のライトセンサーが黒線に触れると
  Off(OUT_C);  //右側のタイヤだけを回転
  OnFwd(OUT_A);
  }
  if(SENSOR_2 == 1) {  //タッチセンサーが入ると
  OnRev(OUT_A+OUT_C);  //いったんバックして
  Wait(50);
  OnFwd(OUT_A);  //右によけて追い越して
  Wait(83);
  OnFwd(OUT_C);
  Wait(160);
  OnRev(OUT_A);
  Wait(83);
  OnFwd(OUT_A);
  Wait(160);
  OnRev(OUT_A);
  Wait(87);
  OnFwd(OUT_A);  //またラインとレースを開始します
  }
  }
  }

  180度反転して逆走し始めるプログラムです。☆製作者☆ クーロン茶&おかじ
  task main()
  {
  SetSensor(SENSOR_1,SENSOR_LIGHT);  センサ−1がライトセンサーであると宣言
  SetSensor(SENSOR_2,SENSOR_TOUCH);  センサ−2がタッチセンサーであると宣言
  SetSensor(SENSOR_3,SENSOR_LIGHT);  センサ−3がライトセンサーであると宣言
  
  OnFwd(OUT_A+OUT_C);
  
  while (true) {
  if(SENSOR_1 < 40) {  //左側のライトセンサーが黒線に触れると
  OnFwd(OUT_C);  //右側のタイヤだけを回転
  Off(OUT_A);
  }
  if(SENSOR_3 < 40) {  //右側のライトセンサーが黒線に触れると
  Off(OUT_C);  //右側のタイヤだけを回転
  OnFwd(OUT_A);
  }
  if(SENSOR_2 == 1) {  //タッチセンサーが入ると
  OnRev(OUT_A+OUT_C);  //180度反転し
  Wait(50);
  OnFwd(OUT_A);  //逆走し始めます
  Wait(165);
  OnFwd(OUT_C); 
  }
  }
  }

**工夫した点 [#r1cd8ac1]

★ロボットと制作過程☆&br;
1、カーブでも小回りがきくように、左右のタイヤ幅をできるだけ狭くした。これにより、少々のきついカーブでもラインから脱線しにくくなった。&br;

2、接続のコードが見えないように内部にコードを通し,見栄えを良くした。&br;

3、なんとなく鼻?をつけた 笑☆ でも、重心が片寄りすぎて前の方に支える足を付け加えるはめになった(>_<)&br;
  おまけ:角(鼻)の動くプログラム、たどるくんの完全体の画像はおかじの個人ページに貼ってあります。

☆プログラム制作過程★

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS