2016a/Member/Junnko/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
*目次 [#re6d02ad]
#contents
*ロボット本体の説明 [#m01daee5]
#ref(2016a/Member/Junnko/Mission2/image2.JPG,50%,ロボット...
#ref(2016a/Member/Junnko/Mission2/image1.JPG,50%,ロボット...
元々は4輪だったものを写真のように前輪2輪だけにしました...
#ref(2016a/Member/Junnko/Mission2/image4.JPG,50%,ロボット...
光センサーはこの写真ぐらい紙からはなし、ロボット本体が...
*プログラムの説明 [#c67d1a25]
このプログラムは黒線の左側をトレースするように書きました。
#define LIGHT 39
#define turn_left1 OnFwd(OUT_C); OnRev(OUT_A);
#define turn_left2 OnFwd(OUT_C); Off(OUT_A);
#define turn_right1 OnFwd(OUT_A); OnRev(OUT_C);
#define turn_right2 OnFwd(OUT_A); Off(OUT_C);
#define go OnFwd(OUT_AC);
#define sound PlaySound(SOUND_FAST_UP);
sub fowerd()
{
sound;
OnFwd(OUT_AC);
Wait(40);
Off(OUT_AC);
}
sub left()
{
sound;
turn_left1;
Wait(30);
Off(OUT_C);
}
黒線の真ん中の値(光センサーでの)を基準にし、最初は必ず...
sub line()
{
int ch=0;
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(ch==0)
{
if(FastTimer(0)>40)
{
Off(OUT_AC);
Wait(100);
ClearTimer(0);
ch=1;
}
if (SENSOR_2 < LIGHT){
turn_left1;
}
else if (SENSOR_2 < LIGHT + 3){
turn_left2;
}
else if (SENSOR_2 < LIGHT + 6){
ClearTimer(0);
go;
}
else if (SENSOR_2 < LIGHT + 9){
ClearTimer(0);
turn_right2;
}
else
{
ClearTimer(0);
turn_right1;
}
Wait(3);
}
}
task main()
{
line();
fowerd();
line();
fowerd();
line();
fowerd();
line();
left();
line();
sound;
turn_right1;
Wait(30);
OnFwd(OUT_AC);
Wait(150);
Off(OUT_AC);
}
*感想 [#ge1b38df]
ライントレースをさせるだけなら簡単だったけど、そこに交差...
終了行:
[[2016a/Member]]
*目次 [#re6d02ad]
#contents
*ロボット本体の説明 [#m01daee5]
#ref(2016a/Member/Junnko/Mission2/image2.JPG,50%,ロボット...
#ref(2016a/Member/Junnko/Mission2/image1.JPG,50%,ロボット...
元々は4輪だったものを写真のように前輪2輪だけにしました...
#ref(2016a/Member/Junnko/Mission2/image4.JPG,50%,ロボット...
光センサーはこの写真ぐらい紙からはなし、ロボット本体が...
*プログラムの説明 [#c67d1a25]
このプログラムは黒線の左側をトレースするように書きました。
#define LIGHT 39
#define turn_left1 OnFwd(OUT_C); OnRev(OUT_A);
#define turn_left2 OnFwd(OUT_C); Off(OUT_A);
#define turn_right1 OnFwd(OUT_A); OnRev(OUT_C);
#define turn_right2 OnFwd(OUT_A); Off(OUT_C);
#define go OnFwd(OUT_AC);
#define sound PlaySound(SOUND_FAST_UP);
sub fowerd()
{
sound;
OnFwd(OUT_AC);
Wait(40);
Off(OUT_AC);
}
sub left()
{
sound;
turn_left1;
Wait(30);
Off(OUT_C);
}
黒線の真ん中の値(光センサーでの)を基準にし、最初は必ず...
sub line()
{
int ch=0;
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while(ch==0)
{
if(FastTimer(0)>40)
{
Off(OUT_AC);
Wait(100);
ClearTimer(0);
ch=1;
}
if (SENSOR_2 < LIGHT){
turn_left1;
}
else if (SENSOR_2 < LIGHT + 3){
turn_left2;
}
else if (SENSOR_2 < LIGHT + 6){
ClearTimer(0);
go;
}
else if (SENSOR_2 < LIGHT + 9){
ClearTimer(0);
turn_right2;
}
else
{
ClearTimer(0);
turn_right1;
}
Wait(3);
}
}
task main()
{
line();
fowerd();
line();
fowerd();
line();
fowerd();
line();
left();
line();
sound;
turn_right1;
Wait(30);
OnFwd(OUT_AC);
Wait(150);
Off(OUT_AC);
}
*感想 [#ge1b38df]
ライントレースをさせるだけなら簡単だったけど、そこに交差...
ページ名: