2006a/A3/tomyのページ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2006a/A3/試作品]]
[[ロボティクス入門ゼミ]]
#contents
*5/12 の授業 [#hb5ff3d7]
**初めてのプログラム [#h74a8186]
task main()
{
OnFwd(OUT_A);
OnFwd(OUT_C);
Wait(150) ;
OnFwd(OUT_A+OUT_C);
Wait(500);
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(300);
OnFwd(OUT_A+OUT_C);
Wait(300);
Float(OUT_A+OUT_C);
}
テキトーに作ってみたからどのように動くのかわからない…
*5/19の授業 [#sc4c18b4]
*課題1 [#g90df32a]
**「水」を書くプログラム [#y4a36eeb]
task main()
{
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(130);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_A);
Wait(100);
OnRev(OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C);
Wait(42);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(30);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_C);
Wait(30);
Off(OUT_C);
OnFwd(OUT_A+OUT_C);
Wait(110);
Off(OUT_A+OUT_C);
OnFwd(OUT_A);
Wait(80);
OnRev(OUT_C);
Wait(80);
Off(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C);
Wait(10);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(35);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_A);
Wait(210);
Off(OUT_A);
OnRev(OUT_A+OUT_C);
Wait(70);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(70);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnRev(OUT_A+OUT_C);
Wait(140);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(50);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_C);
Wait(140);
Off(OUT_C);
OnRev(OUT_A+OUT_C);
Wait(80);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(100);
Float(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
}
*6月16日 [#ue4954f7]
**ライントレースしながらほかのロボにぶつかって反転するプログラム [#lf7ab55b]
#define turn_RIGHT ;OnFwd(OUT_A);OnRev(OUT_C);Wait(150);
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);
while (true) {
OnFwd(OUT_A+OUT_C);
if (SENSOR_1 < 45) {
OnFwd(OUT_C);
OnRev(OUT_A);
until (SENSOR_1>45);}
if(SENSOR_3<40) {
OnFwd(OUT_A);
OnRev(OUT_C);
until(SENSOR_3>45); }
if(SENSOR_2==1) { //タッチセンサーが反応した場合
OnRev(OUT_A+OUT_C); //0.8秒後退
Wait(80);
turn_RIGHT //逆向きになるまで回転
}
}
}
*6月23日 [#q36d5a3c]
**ライントレースしながらほかのロボにぶつかるとよけるプログラム [#p7644a93]
#define THRESHOLD 40
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);/センサー1をライトセンサーと宣言
SetSensor(SENSOR_2, SENSOR_LIGHT);/センサー2をライトセンサーと宣言
SetSensor(SENSOR_3, SENSOR_TOUCH);/センサー3をタッチセンサーと宣言
OnFwd(OUT_A+OUT_C);
while (true) {
if (SENSOR_3 == 1) {
OnRev(OUT_A+OUT_C) ; Wait(50);0.5秒後退する
Off(OUT_A+OUT_C);
OnRev(OUT_C);
Wait(150);/モーターCを1.5秒逆回転
OnFwd(OUT_A+OUT_C);
Wait(150);/1.5秒進む
Off(OUT_A);
Wait(150);1.5秒左回転させる
OnFwd(OUT_A);
Wait(150);
Off(OUT_A);
Wait(150);
OnFwd(OUT_A);/モーターAを動かし元のコースに戻る
} else {
if (SENSOR_1 < 40) {
Off(OUT_A);
OnFwd(OUT_C);センサー1に黒線が入ると左回転
}
if (SENSOR_2 < 40) {
OnFwd(OUT_A);
Off(OUT_C);センサー2に黒線が入ると右回転
}
}
}
}
**光を追いかけるプログラム [#kaa26561]
#define ROOP 100 //ロボが一周する時間
#define LEFT_X OnFwd(OUT_A);OnRev(OUT_C);Wait(1);Off(OUT_A+OUT_C);//左回転
#define RIGHT_X OnFwd(OUT_C);OnRev(OUT_A);Wait(1);Off(OUT_A+OUT_C);//右回転
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
int light_max = 0; //「見つけた明るさ」の最大値
int i = 0;
for(i=0; i<=ROOP; i++){
LEFT_X; //まず左に一周しつつ
if(SENSOR_2>light_max){ //このlight_maxを
light_max = SENSOR_2; //見つけた中で、一番明るい
} //明るさの値に塗り変える。
}
Off(OUT_A+OUT_C); //とりあえず一周したら
Wait(50); //休憩してみる
repeat(10){ //上で見つけた明るさを元に
for(i=0; i<=ROOP; i++){ //右回転で探しては前進、探しては前進
if(light_max-10>=SENSOR_2){
RIGHT_X;
}
else{
Off(OUT_A+OUT_C);Wait(10); //最も明るい所よりも若干、暗くても進ませます。
OnFwd(OUT_A+OUT_C);
Wait(30);
Float(OUT_A+OUT_C);
Wait(50);
}
}
}
}
終了行:
[[2006a/A3/試作品]]
[[ロボティクス入門ゼミ]]
#contents
*5/12 の授業 [#hb5ff3d7]
**初めてのプログラム [#h74a8186]
task main()
{
OnFwd(OUT_A);
OnFwd(OUT_C);
Wait(150) ;
OnFwd(OUT_A+OUT_C);
Wait(500);
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(300);
OnFwd(OUT_A+OUT_C);
Wait(300);
Float(OUT_A+OUT_C);
}
テキトーに作ってみたからどのように動くのかわからない…
*5/19の授業 [#sc4c18b4]
*課題1 [#g90df32a]
**「水」を書くプログラム [#y4a36eeb]
task main()
{
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(130);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_A);
Wait(100);
OnRev(OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C);
Wait(42);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(30);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_C);
Wait(30);
Off(OUT_C);
OnFwd(OUT_A+OUT_C);
Wait(110);
Off(OUT_A+OUT_C);
OnFwd(OUT_A);
Wait(80);
OnRev(OUT_C);
Wait(80);
Off(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C);
Wait(10);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(35);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_A);
Wait(210);
Off(OUT_A);
OnRev(OUT_A+OUT_C);
Wait(70);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(70);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnRev(OUT_A+OUT_C);
Wait(140);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(50);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_C);
Wait(140);
Off(OUT_C);
OnRev(OUT_A+OUT_C);
Wait(80);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);
Wait(40);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(100);
Float(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
}
*6月16日 [#ue4954f7]
**ライントレースしながらほかのロボにぶつかって反転するプログラム [#lf7ab55b]
#define turn_RIGHT ;OnFwd(OUT_A);OnRev(OUT_C);Wait(150);
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);
while (true) {
OnFwd(OUT_A+OUT_C);
if (SENSOR_1 < 45) {
OnFwd(OUT_C);
OnRev(OUT_A);
until (SENSOR_1>45);}
if(SENSOR_3<40) {
OnFwd(OUT_A);
OnRev(OUT_C);
until(SENSOR_3>45); }
if(SENSOR_2==1) { //タッチセンサーが反応した場合
OnRev(OUT_A+OUT_C); //0.8秒後退
Wait(80);
turn_RIGHT //逆向きになるまで回転
}
}
}
*6月23日 [#q36d5a3c]
**ライントレースしながらほかのロボにぶつかるとよけるプログラム [#p7644a93]
#define THRESHOLD 40
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);/センサー1をライトセンサーと宣言
SetSensor(SENSOR_2, SENSOR_LIGHT);/センサー2をライトセンサーと宣言
SetSensor(SENSOR_3, SENSOR_TOUCH);/センサー3をタッチセンサーと宣言
OnFwd(OUT_A+OUT_C);
while (true) {
if (SENSOR_3 == 1) {
OnRev(OUT_A+OUT_C) ; Wait(50);0.5秒後退する
Off(OUT_A+OUT_C);
OnRev(OUT_C);
Wait(150);/モーターCを1.5秒逆回転
OnFwd(OUT_A+OUT_C);
Wait(150);/1.5秒進む
Off(OUT_A);
Wait(150);1.5秒左回転させる
OnFwd(OUT_A);
Wait(150);
Off(OUT_A);
Wait(150);
OnFwd(OUT_A);/モーターAを動かし元のコースに戻る
} else {
if (SENSOR_1 < 40) {
Off(OUT_A);
OnFwd(OUT_C);センサー1に黒線が入ると左回転
}
if (SENSOR_2 < 40) {
OnFwd(OUT_A);
Off(OUT_C);センサー2に黒線が入ると右回転
}
}
}
}
**光を追いかけるプログラム [#kaa26561]
#define ROOP 100 //ロボが一周する時間
#define LEFT_X OnFwd(OUT_A);OnRev(OUT_C);Wait(1);Off(OUT_A+OUT_C);//左回転
#define RIGHT_X OnFwd(OUT_C);OnRev(OUT_A);Wait(1);Off(OUT_A+OUT_C);//右回転
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
int light_max = 0; //「見つけた明るさ」の最大値
int i = 0;
for(i=0; i<=ROOP; i++){
LEFT_X; //まず左に一周しつつ
if(SENSOR_2>light_max){ //このlight_maxを
light_max = SENSOR_2; //見つけた中で、一番明るい
} //明るさの値に塗り変える。
}
Off(OUT_A+OUT_C); //とりあえず一周したら
Wait(50); //休憩してみる
repeat(10){ //上で見つけた明るさを元に
for(i=0; i<=ROOP; i++){ //右回転で探しては前進、探しては前進
if(light_max-10>=SENSOR_2){
RIGHT_X;
}
else{
Off(OUT_A+OUT_C);Wait(10); //最も明るい所よりも若干、暗くても進ませます。
OnFwd(OUT_A+OUT_C);
Wait(30);
Float(OUT_A+OUT_C);
Wait(50);
}
}
}
}
ページ名: