[[2006a/A6/練習7]]

*はじめてのプログラム [#j861d7e3]
 作成者:加藤
 日時:4月27日

 task main()
 {
   OnFwd(OUT_A+OUT_C);     
   Wait(300);              //3秒間動く
   Off(OUT_A+OUT_C);       //止まる
 }
*感想 [#pfbadc90]
 しっかり動いてくれてよかった。
 しっかり動いてくれてよかった。次からは、もっと難しいプログラムを組んでみたい。

*課題1:「木」という漢字を書くロボット [#o3e75d7e]
*課題1:「木」という漢字を書くロボット(試作品) [#o3e75d7e]
 作成者:
 日時:5月24日
*プログラム(試作1号) [#oc550381]
 task main()
 {
 OnRev(OUT_B);Wait(10);Off(OUT_B);
 OnFwd(OUT_A+OUT_C);Wait(70);
 OnFwd(OUT_B);Wait(10);Off(OUT_B);
 OnRev(OUT_A+OUT_C);Wait(85);
 OnFwd(OUT_A);Wait(35);
 OnRev(OUT_C);Wait(35);
 OnFwd(OUT_A+OUT_C);Wait(35);
 OnRev(OUT_B);Wait(10);Off(OUT_B);
 OnFwd(OUT_A+OUT_C);Wait(110);
 OnFwd(OUT_B);Wait(10);Off(OUT_B);
 OnRev(OUT_A+OUT_C);Wait(145);
 OnFwd(OUT_A);Wait(17);
 OnRev(OUT_C);Wait(17);
 OnFwd(OUT_A+OUT_C);Wait(60);
 OnRev(OUT_B);Wait(10);Off(OUT_B);
 OnFwd(OUT_A+OUT_C);Wait(70);
 OnFwd(OUT_B);Wait(10);Off(OUT_B);
 OnRev(OUT_A+OUT_C);Wait(160);
 OnFwd(OUT_C);Wait(35);
 OnRev(OUT_A);Wait(35);
 OnFwd(OUT_A+OUT_C);Wait(40);
 OnRev(OUT_B);Wait(10);Off(OUT_B);
 OnFwd(OUT_A+OUT_C);Wait(80);
 OnFwd(OUT_B);Wait(10);Off(OUT_B);
 Float(OUT_A+OUT_C);
 }
*反省 [#u48ab4a6]
 ちゃんと動く気配なし。失敗作...
*プログラム(試作2号) [#jc8e18e7]
 #define  PEN_DOWN   OnRev(OUT_B);Wait(15);Off(OUT_B); 
 #define  PEN_UP  OnFwd(OUT_B);Wait(5);Off(OUT_B);
 #define  FLONT(t)  OnFwd(OUT_A+OUT_C);Wait(t);
 #define  BACK(t)  OnRev(OUT_A+OUT_C);Wait(t);
 #define  TURN_RIGHT(t)  OnFwd(OUT_A);OnRev(OUT_C);Wait(t);
 #define  TURN_LEFT(t)   OnFwd(OUT_C);OnRev(OUT_A);Wait(t); 
 
 task main()
 {
 PEN_DOWN;FLONT(70);PEN_UP;BACK(85);TURN_RIGHT(32);FLONT (35);
 PEN_DOWN;FLONT(110);PEN_UP;BACK(145);TURN_RIGHT(17);FLONT (60); 
 PEN_DOWN;FLONT(70);PEN_UP;BACK(160);TURN_LEFT(37);FLONT(38);
 PEN_DOWN;FLONT(80);PEN_UP;
 Float(OUT_A+OUT_C);
 }
*反省 [#ge40e9ec]
 これまた失敗作。簡単にしたつもりがプログラムが書きかわっていて、まったく違う動きをした。
*感想 [#y06a9ef7]

&ref(2006a/A6/練習7/木を書くロボット(前輪).JPG,40%,前輪);

#define straight OnFwd(OUT_A+OUT_C);
#define turn_right OnFwd(OUT_A);OnRev(OUT_C);
#define turn_left OnFwd(OUT_C);OnRev(OUT_A);
#define back OnRev(OUT_A+OUT_C);
#define off Off(OUT_A+OUT_C);

task main()
{
  SetSensor(SENSOR_1, SENSOR_LIGHT);
  SetSensor(SENSOR_2, SENSOR_LIGHT);
  SetSensor(SENSOR_3, SENSOR_TOUCH);
  SetPower(OUT_A, 10);
  SetPower(OUT_B, 10);
  SetPower(OUT_C, 10);
    while(true)
    {
      if (SENSOR_1< 40)
        {
        off;
        turn_left;
        Wait(15);
        }
        
      if(SENSOR_2< 40)
        {
        off;
        turn_right;
        Wait(15);
        }
        
      if((SENSOR_1> 40)&&(SENSOR_2> 40))
        {
        straight;
        }
        
      if(SENSOR_3== 1)
        {
        back;
        Wait(50);
        turn_right;
        Wait(130);
        }
        



    }
}


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