2018a/Member/hinagi/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
#contents
*課題 [#aba61475]
#ref(2018a-mission2.png)
#ref(2018a-mission2a.png)
ラインをトレスして、缶を運ぶ。道順は見た通りで、Xにて350m...
*ロボットの説明 [#a6f6d99d]
#ref(robon1.jpg)
#ref(robon2.jpg)
一枚目は光センサー部分。二枚目は分かりづらいのだが…クワガ...
* プログラム[#rc4849e0]
定義、プログラムの順に適宜解説をしていく。
**光センサー [#ab5910af]
今回は光センサーを用いるので、数値を定義した。
#define BLACK 36
#define LITTLE_BLACK 40
#define LITTLE_WHITE 44
#define WHITE 48
**トレス時の行動パターン [#l9835ec8]
トレス時における、微細な移動も定義した。
#define LEFT OnFwd(OUT_C,40);OnRev(OUT_A,30);Wait(1);Off...
#define LITTLE_LEFT OnFwd(OUT_C,30);OnFwd(OUT_A,20);Wait...
#define LITTLE_RIGHT OnFwd(OUT_A,30);OnFwd(OUT_C,20);Wai...
#define RIGHT OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(1);Of...
#define FRONT OnFwd(OUT_AC,30);Wait(1);Off(OUT_AC);
最初に定義したとき、Offをつけるのを忘れ直線番長となってし...
**ライントレスの定義 [#d84b77b9]
先に光センサーの反応で行動を変えるものも作った。たびたび...
#define LINE_LEFT if (SENSOR_1 < BLACK) {LEFT;KAZU += 3;...
#define LINE_RIGHT if (SENSOR_1 < BLACK) {RIGHT;KAZU += ...
この定義により、一度のライントレスを
while(KAZU < 任意の値){LINE_LEFT;};
で行えるようになっている。
また、交差点を直進や曲がったときに、復帰するときにも
repeat(任意の回数){LINE_LEFT;};
で復帰することが可能となっている。
***FRONT時の関数計算 [#j27bfe69]
ライントレスは黒に近いと『KAZU』が増加し、白に近いときは...
***復帰のプログラム [#a72abb96]
"repeat"を使うよりも、時間を定義し、何秒か繰り返すという...
**缶をつかむ [#z7a63c37]
#define AGERU OnRev(OUT_B,10);Wait(1500);Off(OUT_B);
#define SAGERU OnFwd(OUT_B,10);Wait(2000);Off(OUT_B);
つかむ動作は"AGERU"。離す動作は"SAGERU"と定義されていて、...
**プログラム [#o0993c45]
task main()
{
SetSensorLight(S1);
int KAZU=0;
AGERU;
OnFwd(OUT_AC,30);Wait(700);Off(OUT_AC);
repeat(5000){LINE_LEFT;};KAZU *= 0;
Off(OUT_AC);
while(KAZU < 100){LINE_LEFT;}; Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
OnFwd(OUT_AC,30);Wait(400);Off(OUT_AC);
repeat(3000){LINE_LEFT;};KAZU *= 0; //C...
while(KAZU < 250){LINE_LEFT;};Off(OUT_AC);
PlaySound(SOUND_UP);KAZU *= 0;Wait(500); //C...
OnRev(OUT_A,40);OnFwd(OUT_C,40);Wait(2000);Off(OUT_AC);
repeat(1200){LINE_LEFT};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC); //...
KAZU *= 0;PlaySound(SOUND_DOUBLE_BEEP); //Dを...
SAGERU; //35缶をキャッチする
OnRev(OUT_A,30);OnFwd(OUT_C,30);Wait(2500);Off(OUT_AC);
repeat(1500){LINE_LEFT};KAZU *= 0; //Dを曲が...
while(KAZU < 80){LINE_LEFT;};Off(OUT_AC);
KAZU *= 0;PlaySound(SOUND_UP); //Eを感知
OnFwd(OUT_A,30);Wait(600);Off(OUT_AC);
repeat(2000){LINE_LEFT;};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);Wait(500);KAZU *= 0; ...
OnRev(OUT_A,40);OnFwd(OUT_C,40);Wait(1500);Off(OUT_AC);
repeat(800){LINE_LEFT;};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
repeat(30000){
if (SENSOR_1 < BLACK) {OnRev(OUT_A,40)...
else if (SENSOR_1 < LITTLE_BLACK) {LEF...
else if (SENSOR_1 > WHITE) {OnRev(OUT_...
else if (SENSOR_1 > LITTLE_WHITE) {RIG...
else {FRONT;}
};
repeat(1000){LINE_LEFT;};KAZU *= 0;
while(KAZU < 120){LINE_LEFT;};Off(OUT_AC); ...
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(2500);Off(OUT_AC);
repeat(3000){LINE_RIGHT;};KAZU *= 0;
while(KAZU < 120){LINE_RIGHT;};Off(OUT_AC); ...
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(2500);Off(OUT_AC);
while(KAZU < 150){LINE_RIGHT};Off(OUT_AC);
PlaySound(SOUND_UP);KAZU *= 0; //Lを感知
OnFwd(OUT_C,30);Wait(300);Off(OUT_AC);
while(KAZU < 150){LINE_RIGHT;};Off(OUT_AC);
PlaySound(SOUND_UP);KAZU *= 0; //Kを感知
OnFwd(OUT_C,30);Wait(300);Off(OUT_AC);
while(KAZU < 100){LINE_RIGHT;};Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);KAZU *= 0;Wait(1000); ...
OnFwd(OUT_C,30);OnRev(OUT_A,30);Wait(2500);Off(OUT_AC);
AGERU;
OnRev(OUT_AC,30);Wait(1000);Off(OUT_AC);
OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(4000);Off(OUT_AC);
repeat(2000){LINE_LEFT;};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(1500);Off(OUT_AC);
repeat(1000){LINE_LEFT;};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC);
OnFwd(OUT_AC,30);Wait(500);Off(OUT_AC);
}
…あまり解説をすることがない…
***小さな工夫 [#oac04c12]
-交差点にて停止する際に、音が鳴るようになっている。これは...
-GからHにかけての小さなカーブが一番の鬼門なのだが、そこは...
*最後に [#v3c761d3]
今回も今回とてかなり時間がかかってしまった。が、プログラ...
終了行:
[[2018a/Member]]
#contents
*課題 [#aba61475]
#ref(2018a-mission2.png)
#ref(2018a-mission2a.png)
ラインをトレスして、缶を運ぶ。道順は見た通りで、Xにて350m...
*ロボットの説明 [#a6f6d99d]
#ref(robon1.jpg)
#ref(robon2.jpg)
一枚目は光センサー部分。二枚目は分かりづらいのだが…クワガ...
* プログラム[#rc4849e0]
定義、プログラムの順に適宜解説をしていく。
**光センサー [#ab5910af]
今回は光センサーを用いるので、数値を定義した。
#define BLACK 36
#define LITTLE_BLACK 40
#define LITTLE_WHITE 44
#define WHITE 48
**トレス時の行動パターン [#l9835ec8]
トレス時における、微細な移動も定義した。
#define LEFT OnFwd(OUT_C,40);OnRev(OUT_A,30);Wait(1);Off...
#define LITTLE_LEFT OnFwd(OUT_C,30);OnFwd(OUT_A,20);Wait...
#define LITTLE_RIGHT OnFwd(OUT_A,30);OnFwd(OUT_C,20);Wai...
#define RIGHT OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(1);Of...
#define FRONT OnFwd(OUT_AC,30);Wait(1);Off(OUT_AC);
最初に定義したとき、Offをつけるのを忘れ直線番長となってし...
**ライントレスの定義 [#d84b77b9]
先に光センサーの反応で行動を変えるものも作った。たびたび...
#define LINE_LEFT if (SENSOR_1 < BLACK) {LEFT;KAZU += 3;...
#define LINE_RIGHT if (SENSOR_1 < BLACK) {RIGHT;KAZU += ...
この定義により、一度のライントレスを
while(KAZU < 任意の値){LINE_LEFT;};
で行えるようになっている。
また、交差点を直進や曲がったときに、復帰するときにも
repeat(任意の回数){LINE_LEFT;};
で復帰することが可能となっている。
***FRONT時の関数計算 [#j27bfe69]
ライントレスは黒に近いと『KAZU』が増加し、白に近いときは...
***復帰のプログラム [#a72abb96]
"repeat"を使うよりも、時間を定義し、何秒か繰り返すという...
**缶をつかむ [#z7a63c37]
#define AGERU OnRev(OUT_B,10);Wait(1500);Off(OUT_B);
#define SAGERU OnFwd(OUT_B,10);Wait(2000);Off(OUT_B);
つかむ動作は"AGERU"。離す動作は"SAGERU"と定義されていて、...
**プログラム [#o0993c45]
task main()
{
SetSensorLight(S1);
int KAZU=0;
AGERU;
OnFwd(OUT_AC,30);Wait(700);Off(OUT_AC);
repeat(5000){LINE_LEFT;};KAZU *= 0;
Off(OUT_AC);
while(KAZU < 100){LINE_LEFT;}; Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
OnFwd(OUT_AC,30);Wait(400);Off(OUT_AC);
repeat(3000){LINE_LEFT;};KAZU *= 0; //C...
while(KAZU < 250){LINE_LEFT;};Off(OUT_AC);
PlaySound(SOUND_UP);KAZU *= 0;Wait(500); //C...
OnRev(OUT_A,40);OnFwd(OUT_C,40);Wait(2000);Off(OUT_AC);
repeat(1200){LINE_LEFT};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC); //...
KAZU *= 0;PlaySound(SOUND_DOUBLE_BEEP); //Dを...
SAGERU; //35缶をキャッチする
OnRev(OUT_A,30);OnFwd(OUT_C,30);Wait(2500);Off(OUT_AC);
repeat(1500){LINE_LEFT};KAZU *= 0; //Dを曲が...
while(KAZU < 80){LINE_LEFT;};Off(OUT_AC);
KAZU *= 0;PlaySound(SOUND_UP); //Eを感知
OnFwd(OUT_A,30);Wait(600);Off(OUT_AC);
repeat(2000){LINE_LEFT;};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);Wait(500);KAZU *= 0; ...
OnRev(OUT_A,40);OnFwd(OUT_C,40);Wait(1500);Off(OUT_AC);
repeat(800){LINE_LEFT;};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
repeat(30000){
if (SENSOR_1 < BLACK) {OnRev(OUT_A,40)...
else if (SENSOR_1 < LITTLE_BLACK) {LEF...
else if (SENSOR_1 > WHITE) {OnRev(OUT_...
else if (SENSOR_1 > LITTLE_WHITE) {RIG...
else {FRONT;}
};
repeat(1000){LINE_LEFT;};KAZU *= 0;
while(KAZU < 120){LINE_LEFT;};Off(OUT_AC); ...
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(2500);Off(OUT_AC);
repeat(3000){LINE_RIGHT;};KAZU *= 0;
while(KAZU < 120){LINE_RIGHT;};Off(OUT_AC); ...
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(2500);Off(OUT_AC);
while(KAZU < 150){LINE_RIGHT};Off(OUT_AC);
PlaySound(SOUND_UP);KAZU *= 0; //Lを感知
OnFwd(OUT_C,30);Wait(300);Off(OUT_AC);
while(KAZU < 150){LINE_RIGHT;};Off(OUT_AC);
PlaySound(SOUND_UP);KAZU *= 0; //Kを感知
OnFwd(OUT_C,30);Wait(300);Off(OUT_AC);
while(KAZU < 100){LINE_RIGHT;};Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);KAZU *= 0;Wait(1000); ...
OnFwd(OUT_C,30);OnRev(OUT_A,30);Wait(2500);Off(OUT_AC);
AGERU;
OnRev(OUT_AC,30);Wait(1000);Off(OUT_AC);
OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(4000);Off(OUT_AC);
repeat(2000){LINE_LEFT;};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC);
PlaySound(SOUND_DOUBLE_BEEP);Wait(1000);KAZU *= 0; ...
OnFwd(OUT_A,30);OnRev(OUT_C,30);Wait(1500);Off(OUT_AC);
repeat(1000){LINE_LEFT;};KAZU *= 0;
while(KAZU < 100){LINE_LEFT;};Off(OUT_AC);
OnFwd(OUT_AC,30);Wait(500);Off(OUT_AC);
}
…あまり解説をすることがない…
***小さな工夫 [#oac04c12]
-交差点にて停止する際に、音が鳴るようになっている。これは...
-GからHにかけての小さなカーブが一番の鬼門なのだが、そこは...
*最後に [#v3c761d3]
今回も今回とてかなり時間がかかってしまった。が、プログラ...
ページ名: