ハート型を描くロボットのプログラム
task main () { OnFwd(OUT_A+OUT_C);Wait(68); OnFwd(OUT_A);Off(OUT_C);Wait(296); OnRev(OUT_A);OnFwd(OUT_C);Wait(250); OnFwd(OUT_A);Off(OUT_C);Wait(296); OnFwd(OUT_A+OUT_C);Wait(110); Off(OUT_A+OUT_C); }
うまくいったようないかないような...
台から落ちないロボットのプログラム
task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_TOUCH); while(true) { OnFwd(OUT_A+OUT_C); until((SENSOR_1==1)||(SENSOR_3==1)); OnRev(OUT_A+OUT_C);Wait(100); OnFwd(OUT_A);Wait(100); OnFwd(OUT_C); } }
"手"が2つついたようなロボットでやりました。片方の手が台から出るとタッチセンサーが反応して少しバックしてから回転し、また前に進むということを繰り返します。 基本に忠実に作り、結構シンプルになりました。バックする時間と回転する時間の調節が難しかったです。
モーター1つでライントレースするプログラム
#define THRESHOLD 45 #define RUN_TIME 150 task main () { SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); while ( Timer(0) <= RUN_TIME ) { if (SENSOR_2 < THRESHOLD) { OnFwd(OUT_A); } else { OnRev(OUT_A); } } }
写真のようにギアを配置して作りました。タイヤの位置関係は最初に作ったローヴァーロボットと同じになっています。なるべく左右対称にしたかったので、モーターの配置も少しこだわりました。
ギアの配置に結構苦労しました。写真は途中のもので、この後モーターと最初の小さいギアの間を強化して空転をなくしました。
光を追いかけるロボットのプログラム
音のなるロボットのプログラム
#define Doo 1047 #define Ree 1175 #define Mii 1319 #define So 784 #define Ra 880 #define Si 988 #define Do 523 #define Re 587 #define Mi 659 #define Sso 392 #define Rra 440 #define Ssi 494 task play_music() { while (true) { PlayTone(Doo+Do,15);Wait(20); PlayTone(Ree+Re,15);Wait(20); PlayTone(Mii+Mi,35);Wait(40); PlayTone(Doo+Do,15);Wait(20); PlayTone(Ree+Re,15);Wait(20); PlayTone(Mii+Mi,15);Wait(20); PlayTone(Ree+Re,15);Wait(20); PlayTone(Doo+Do,15);Wait(20); PlayTone(Ssi+Si,15);Wait(20); PlayTone(Rra+Ra,15);Wait(20); PlayTone(Ssi+Si,15);Wait(20); PlayTone(Doo+Do,15);Wait(20); PlayTone(Ree+Re,15);Wait(20); PlayTone(Ssi+Si,15);Wait(20); PlayTone(Sso+So,10);Wait(20); PlayTone(Doo+Do,15);Wait(20); PlayTone(Ree+Re,15);Wait(20); PlayTone(Mii+Mi,35);Wait(40); PlayTone(Doo+Do,15);Wait(20); PlayTone(Ree+Re,15);Wait(20); PlayTone(Mii+Mi,15);Wait(20); PlayTone(Ree+Re,15);Wait(20); PlayTone(Doo+Do,15);Wait(20); PlayTone(Ssi+Si,15);Wait(20); PlayTone(Rra+Ra,15);Wait(20); PlayTone(Ree+Re,15);Wait(20); PlayTone(Ssi+Si,15);Wait(20); PlayTone(Sso+So,15);Wait(20); PlayTone(Doo+Do,15);Wait(20); } } task main() { SetSensor(SENSOR_1, SENSOR_TOUCH); start play_music ; // 演奏を開始 OnFwd(OUT_A+OUT_B); // 前進 until (SENSOR_1 == 1); stop play_music ; // 演奏を停止 Off(OUT_A+OUT_B); // 動きも停止 }
別の講義で扱った曲を作ってみました。はもるようにしようと1オクターブずらした音も混ぜましたが大したことありませんでした。