[[2006a/A6/練習7]] *はじめてのプログラム [#j861d7e3] 作成者:加藤 日時:4月27日 task main() { OnFwd(OUT_A+OUT_C); Wait(300); //3秒間動く Off(OUT_A+OUT_C); //止まる } *感想 [#pfbadc90] しっかり動いてくれてよかった。次からは、もっと難しいプログラムを組んでみたい。 *課題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); } } }