[[2006a/C2/練習page]]

[[ロボティクス入門ゼミ]]
*課題 [#t8b8939d]
**水を書くロボットを作る [#t5cc8db8]
 まずロボットの構造を佐藤君(相方)と一緒に考えました。話し合った結果、ロボがペンを持ちながら動くものではなく、ロボは動かないで、ペンを上下左右に動かすロボを作ることに決まりました。しかしモーター3個でペンの上げ下げと上下左右に動かすロボの構造を考えること、横移動は車輪でロボごと動かすことにしました。その結果なんとか水を書くロボが完成することができました。そのロボの名前は、ジェット・田中!!です。(注:今、決めたので相方の許可をとってません)
#ref(2006a/C2/課題1左/proGRA/shuji_02.bmp,100%,ジェット田中!!)
ジェット・田中の利点は、小さい字を書けることと、早く書けることです。逆に弱点は、大きい字を書けないことと、耐性がないことです。
**水を書くロボットのプログラム [#gdc276ad]
 task main()
 {
 while(1){
 pen_down();
 wt();
 Retreat();
 wt();
 hane();
 wt();
 pen_up();
 wt();
 move_left();
 wt();
 pen_down();
 wt();
 left();
 wt();
 diagonal_left();
 wt();
 pen_up();
 wt();
 move_light();
 wtl();
 pen_down();
 wt();
 light();
 wt();
 diagonal_light();
 wt();
 pen_up();
 wt();
 neta();
 }
 }
 void wt(void){  //20msの待ち時間
 Wait(20);
 }
 void wtl(void){  //50msの待ち時間
 Wait(50);
 }
 void pen_up(void){  //ペンを持ち上げる(紙から離す)
 OnRev(OUT_C);
 Wait(50);
 Off(OUT_C);
 }
 void pen_down(void){  //ペンを下げる(紙につける)
 OnFwd(OUT_C);
 Wait(50);
 Off(OUT_C);
 }
 void Retreat(void){ //アームを引く
 OnFwd(OUT_B);
 Wait(70);
 Off(OUT_B);
 }
 void hane(void){    //刎ねる
 OnFwd(OUT_A);
 OnRev(OUT_B);
 Wait(10);
 Off(OUT_A+OUT_B);
 }
 void move_left(void){       //二画目の開始点へ移動
 OnFwd(OUT_A);
 OnRev(OUT_B);
 Wait(13);
 Off(OUT_A);
 Wait(20);
 Off(OUT_B);
 }
 void left(void){            //二画目をかく
 OnRev(OUT_A);
 Wait(20);
 Off(OUT_A);
 }
 void diagonal_left(void){   //二画目の斜め
 OnFwd(OUT_A+OUT_B);
 Wait(30);
 Off(OUT_A+OUT_B);
 } 
 void move_light(void){      //三画目の開始点へ移動
 OnRev(OUT_A+OUT_B);
 Wait(30);
 Off(OUT_B);
 Wait(23);
 Off(OUT_A);
 }
 void light(void){  //三画目を書く
 OnFwd(OUT_A);
 Wait(20);
 Off(OUT_A);
 }
 void diagonal_light(void){          //三画目の斜め
 OnRev(OUT_A);
 OnFwd(OUT_B);
 Wait(30);
 Off(OUT_A+OUT_B);
 }
 void neta(void){                    //次の開始点へ(オマケ)
 OnRev(OUT_A+OUT_B);
 Wait(60);
 Off(OUT_A+OUT_B);
 }
水を書くプログラムは相方がやってくれました。プログラムの簡単な解説は、水を書くのに必要な数値をそれぞれのサブルーチン(void)から呼び出し、それをwhileでくりかえしています。
このプログラムのおかげでジェット・田中が"水"を書くことができるようになりました。めでたし、めでたし。

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