2017a/Member/kenji/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
**課題3について [#mb50bfa8]
詳しくは[[2017a/Mission3]]
**ロボットについて [#n7d9dc68]
はじめはアーム部分にタイヤを取り付け、そのタイヤを回転さ...
**プログラミング [#ta298043]
定義
#define go_forward OnFwd(OUT_AC);//前進
#define turn_right OnFwd(OUT_A);//右折
#define turn_left OnFwd(OUT_C);//左折
#define migisenkai OnFwd(OUT_A); OnRev(OUT_C);//右旋回
#define hidarisenkai OnFwd(OUT_C); OnRev(OUT_A);//左旋回
#define power(s) SetPower(OUT_AC,s); //モーターの出力が...
#define sound1 PlaySound(SOUND_UP);
#define sound2 PlaySound(SOUND_DOWN);Wait(100);
#define GO(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);//前進...
#define SIGNALGRAB 100
#define SIGNALBACK 200
#define back(u) OnRev(OUT_AC); Wait(u); Off(OUT_AC);//後...
サブルーチン
sub trace2()//交差点の判断などは課題?の時と同様
{
ClearTimer(0);
while (FastTimer(0)<=25){
if (SENSOR_1 > 49){//右旋回
migisenkai; ClearTimer(0);
} else if (SENSOR_1 > 44){//右折
turn_right; ClearTimer(0);
} else if (SENSOR_1 > 40){//前進
go_forward; ClearTimer(0);
} else if (SENSOR_1 > 36){//左折
turn_left; ClearTimer(0);
} else if (SENSOR_1 > 33){//左旋回
hidarisenkai;//タイマをリセットしない
}
}
Off(OUT_AC);
}
sub hidari1()
{
sound1;
go_forward;
Wait(20);
hidarisenkai;
Wait(40);
turn_left;
Wait(30);
}
sub hidari2()
{
sound2;
go_forward;
Wait(20);
hidarisenkai;
Wait(40);
turn_left;
Wait(30);
}
タスクメイン
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
power(4);//モーターの出力を調整。課題?の時は0であった...
ClearMessage();
GO(100);//スタート枠から前進
trace2();//A-F区間
hidari1();//Fを左折
trace2();//F-Q区間
hidari2();//Qを左方向
trace2();//Q-R区間
hidari1();//Rを左折し、Tに向かう
trace2();//R-T
GO(200);//前進してゴールの中に入る
SendMessage(SIGNALGRAB);//ゴールの位置に到着したこと...
while(true){
until (Message() == SIGNALBACK);//SIGNALBACKを受...
back(300);//後退する
}
}
↑
アームのプログラム †
定義部分
#define grab OnFwd(OUT_C); Wait(100); Off(OUT_C);//アー...
#define relese OnRev(OUT_C); Wait(100); Off(OUT_C);//ア...
#define rift_up OnFwd(OUT_A); Wait(700); Off(OUT_A);//リ...
#define rift_down1 OnRev(OUT_A); Wait(200); Off(OUT_A);/...
#define rift_down2 OnRev(OUT_A); Wait(300); Off(OUT_A);/...
#define SIGNALGRAB 100
#define SIGNALBACK 200
#define grab2(s) OnFwd(OUT_C); Wait(s); Off(OUT_C);//缶...
#define relese(t) OnRev(OUT_C); Wait(t); Off(OUT_C);//缶...
タスクメイン
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH);//センサー1にタッチ...
ClearMessage();
int count;//変数を定義
count=0;
while (count<1){//countが1未満の時ループに入る
ClearMessage();//Messageの値を0に初期化
if (Message() == SIGNALGRAB){//SIGNALGRABを受信し...
count++;
} else count = 0;//そうでなければcountは0
}
grab2(50);//缶をゴール内にまとめるためにアームを動かす
relese(70);//大きめにアームを開いて缶を完全に離す
SendMessage(SIGNALBACK);//後退するように伝える。
**まとめ [#f33b7819]
今回の課題はとても難しかった。ロボットを作るのにかなりの...
終了行:
#contents
**課題3について [#mb50bfa8]
詳しくは[[2017a/Mission3]]
**ロボットについて [#n7d9dc68]
はじめはアーム部分にタイヤを取り付け、そのタイヤを回転さ...
**プログラミング [#ta298043]
定義
#define go_forward OnFwd(OUT_AC);//前進
#define turn_right OnFwd(OUT_A);//右折
#define turn_left OnFwd(OUT_C);//左折
#define migisenkai OnFwd(OUT_A); OnRev(OUT_C);//右旋回
#define hidarisenkai OnFwd(OUT_C); OnRev(OUT_A);//左旋回
#define power(s) SetPower(OUT_AC,s); //モーターの出力が...
#define sound1 PlaySound(SOUND_UP);
#define sound2 PlaySound(SOUND_DOWN);Wait(100);
#define GO(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);//前進...
#define SIGNALGRAB 100
#define SIGNALBACK 200
#define back(u) OnRev(OUT_AC); Wait(u); Off(OUT_AC);//後...
サブルーチン
sub trace2()//交差点の判断などは課題?の時と同様
{
ClearTimer(0);
while (FastTimer(0)<=25){
if (SENSOR_1 > 49){//右旋回
migisenkai; ClearTimer(0);
} else if (SENSOR_1 > 44){//右折
turn_right; ClearTimer(0);
} else if (SENSOR_1 > 40){//前進
go_forward; ClearTimer(0);
} else if (SENSOR_1 > 36){//左折
turn_left; ClearTimer(0);
} else if (SENSOR_1 > 33){//左旋回
hidarisenkai;//タイマをリセットしない
}
}
Off(OUT_AC);
}
sub hidari1()
{
sound1;
go_forward;
Wait(20);
hidarisenkai;
Wait(40);
turn_left;
Wait(30);
}
sub hidari2()
{
sound2;
go_forward;
Wait(20);
hidarisenkai;
Wait(40);
turn_left;
Wait(30);
}
タスクメイン
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
power(4);//モーターの出力を調整。課題?の時は0であった...
ClearMessage();
GO(100);//スタート枠から前進
trace2();//A-F区間
hidari1();//Fを左折
trace2();//F-Q区間
hidari2();//Qを左方向
trace2();//Q-R区間
hidari1();//Rを左折し、Tに向かう
trace2();//R-T
GO(200);//前進してゴールの中に入る
SendMessage(SIGNALGRAB);//ゴールの位置に到着したこと...
while(true){
until (Message() == SIGNALBACK);//SIGNALBACKを受...
back(300);//後退する
}
}
↑
アームのプログラム †
定義部分
#define grab OnFwd(OUT_C); Wait(100); Off(OUT_C);//アー...
#define relese OnRev(OUT_C); Wait(100); Off(OUT_C);//ア...
#define rift_up OnFwd(OUT_A); Wait(700); Off(OUT_A);//リ...
#define rift_down1 OnRev(OUT_A); Wait(200); Off(OUT_A);/...
#define rift_down2 OnRev(OUT_A); Wait(300); Off(OUT_A);/...
#define SIGNALGRAB 100
#define SIGNALBACK 200
#define grab2(s) OnFwd(OUT_C); Wait(s); Off(OUT_C);//缶...
#define relese(t) OnRev(OUT_C); Wait(t); Off(OUT_C);//缶...
タスクメイン
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH);//センサー1にタッチ...
ClearMessage();
int count;//変数を定義
count=0;
while (count<1){//countが1未満の時ループに入る
ClearMessage();//Messageの値を0に初期化
if (Message() == SIGNALGRAB){//SIGNALGRABを受信し...
count++;
} else count = 0;//そうでなければcountは0
}
grab2(50);//缶をゴール内にまとめるためにアームを動かす
relese(70);//大きめにアームを開いて缶を完全に離す
SendMessage(SIGNALBACK);//後退するように伝える。
**まとめ [#f33b7819]
今回の課題はとても難しかった。ロボットを作るのにかなりの...
ページ名: