- 追加された行はこの色です。
- 削除された行はこの色です。
[[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);
}
}
}