2017b/Member/MURA/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2017b/Member]]
#contents
*課題 [#r5d17a4d]
下の図のようなコースを各チームで作成し、「ミッション」を...
**コース [#cf37af2e]
#ref(2017b-mission2.png)
**ミッション [#f647d2cb]
次のコースで黒い線に沿って動き、紙コップを移動させるロボ...
#br
第2コース
+Dをスタート
+Cを直進
+Bを左折
+Pを左折(一時停止)
+Qを直進
+Rを左折
+Fを左折
+Sを直進(一時停止)
+Y地点の紙コップを取得してコースに戻る
+Sを直進(一時停止)
+Qを左折(一時停止)
+Rを直進
+X地点に紙コップを置いてコースに戻る
+Pを左折
+Bを左折(一時停止)
+A地点へ(ゴール)
*機体説明 [#i0bb4723]
#ref(Image_72337c2.jpg)
向かって右にある黄色の部分を動かすことで紙コップを挟み込...
#ref(Image_36990f0.jpg)
センサーの位置でトレースが変わるので一番安定性のある所を...
#ref(Image_f47d051.jpg)
紙コップをつかむためのモーターを置くところがなかったので...
#ref(Image_6373412.jpg)
最初は2つの黄色のパーツを動かそうとしたが複雑になるので...
*プログラム [#hc8a0a55]
#define right_dai OnFwd(OUT_C);OnRev(OUT_A); ...
#define right_syou OnFwd(OUT_C);Off(OUT_A); ...
#define left_dai OnFwd(OUT_A);OnRev(OUT_C); ...
#define left_syou OnFwd(OUT_A);Off(OUT_C); ...
#define middle 40 ...
#define go(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); ...
#define TURN_RIGHT OnFwd(OUT_C);OnRev(OUT_A);until(SENSO...
#define TURN__RIGHT(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t)...
#define TURN_LEFT(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t); ...
#define stop Off(OUT_AC);Wait(150); ...
#define back OnRev(OUT_AC);Wait(60); ...
#define tukamu OnFwd(OUT_B);Wait(10);Off(OUT_B); ...
#define hanasu OnRev(OUT_B);Wait(5);Off(OUT_B); ...
sub line() //EF間以外
{
SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー...
ClearTimer(0);
while(FastTimer(0)<20){ //0.2秒未...
if(SENSOR_2>middle+5) //閾値+5...
{
right_dai
ClearTimer(0); //タイマー...
}
else if(SENSOR_2>middle+3) //閾値+3よ...
{
right_syou
ClearTimer(0);
}
else if(SENSOR_2>middle) //閾値のと...
{
OnFwd(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>middle-3) //閾値-3よ...
{
left_syou
ClearTimer(0);
}
else //閾値が-3...
{
left_dai; //ここでタ...
}
}
Off(OUT_AC);
}
sub s() //EF間
{
SetSensor(SENSOR_1, SENSOR_TOUCH);
ClearTimer(0);
while(FastTimer(0)<1500){ //15秒間実...
if(SENSOR_2>middle+5) //閾値+5...
{
right_dai
}
else if(SENSOR_2>middle+3) //閾値+3よ...
{
right_syou
}
else if(SENSOR_2>middle) //閾値のと...
{
OnFwd(OUT_AC);
}
else if(SENSOR_2>middle-3) //閾値-3よ...
{
left_syou
}
else //閾値が-3...
{
left_dai;
}
}
Off(OUT_AC);
}
EF間のヘアピンカーブは交差点と認識されてしまうので上のプ...
task main()
{
line(); //D〜C
stop;
PlaySound(SOUND_CLICK); //音
go(30); //Cの交差...
TURN_RIGHT; //角度調整
line(); //C〜B
stop;
PlaySound(SOUND_CLICK);
go(20); //角度調整
TURN_LEFT(50); //角度調整
line(); //B〜P
TURN_RIGHT; //角度調整
line(); //B〜P
stop;
PlaySound(SOUND_CLICK);
TURN_LEFT(30); //角度調整
go(20); //角度調整
line(); //P〜Q
go(30); //交差点判...
TURN_RIGHT; //角度調整
PlaySound(SOUND_CLICK);
line(); //Q〜R
PlaySound(SOUND_CLICK);
line(); //R〜E
PlaySound(SOUND_CLICK);
s(); //E〜Fの最...
line(); //s()の時...
PlaySound(SOUND_CLICK);
go(20); //角度調整
TURN_LEFT(70); //角度調整
line(); //F〜S
PlaySound(SOUND_CLICK);
stop;
TURN__RIGHT(80); //つかむた...
go(60); //つかむた...
tukamu; //つかむ
TURN_LEFT(100); //角度調整
go(100); //位置調整
line(); //S〜S右側...
PlaySound(SOUND_CLICK);
go(20); //交差点S...
line(); //S〜Q
PlaySound(SOUND_CLICK);
stop;
TURN_LEFT(30); //角度調整
go(20); //角度調整
line(); //Q〜R
PlaySound(SOUND_CLICK);
TURN__RIGHT(150); //紙コップ...
hanasu; //紙コップ...
back(100); //バック
TURN_LEFT(70); //角度調整
go(120); //位置調整
line(); //R〜P
PlaySound(SOUND_CLICK);
line(); //P〜B
stop;
PlaySound(SOUND_CLICK);
line(); //B〜A
go(50); //GOAL
}
*感想・反省 [#b15e76db]
3回に1回しか成功しないというかなしいものができあがって...
終了行:
[[2017b/Member]]
#contents
*課題 [#r5d17a4d]
下の図のようなコースを各チームで作成し、「ミッション」を...
**コース [#cf37af2e]
#ref(2017b-mission2.png)
**ミッション [#f647d2cb]
次のコースで黒い線に沿って動き、紙コップを移動させるロボ...
#br
第2コース
+Dをスタート
+Cを直進
+Bを左折
+Pを左折(一時停止)
+Qを直進
+Rを左折
+Fを左折
+Sを直進(一時停止)
+Y地点の紙コップを取得してコースに戻る
+Sを直進(一時停止)
+Qを左折(一時停止)
+Rを直進
+X地点に紙コップを置いてコースに戻る
+Pを左折
+Bを左折(一時停止)
+A地点へ(ゴール)
*機体説明 [#i0bb4723]
#ref(Image_72337c2.jpg)
向かって右にある黄色の部分を動かすことで紙コップを挟み込...
#ref(Image_36990f0.jpg)
センサーの位置でトレースが変わるので一番安定性のある所を...
#ref(Image_f47d051.jpg)
紙コップをつかむためのモーターを置くところがなかったので...
#ref(Image_6373412.jpg)
最初は2つの黄色のパーツを動かそうとしたが複雑になるので...
*プログラム [#hc8a0a55]
#define right_dai OnFwd(OUT_C);OnRev(OUT_A); ...
#define right_syou OnFwd(OUT_C);Off(OUT_A); ...
#define left_dai OnFwd(OUT_A);OnRev(OUT_C); ...
#define left_syou OnFwd(OUT_A);Off(OUT_C); ...
#define middle 40 ...
#define go(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); ...
#define TURN_RIGHT OnFwd(OUT_C);OnRev(OUT_A);until(SENSO...
#define TURN__RIGHT(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t)...
#define TURN_LEFT(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t); ...
#define stop Off(OUT_AC);Wait(150); ...
#define back OnRev(OUT_AC);Wait(60); ...
#define tukamu OnFwd(OUT_B);Wait(10);Off(OUT_B); ...
#define hanasu OnRev(OUT_B);Wait(5);Off(OUT_B); ...
sub line() //EF間以外
{
SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー...
ClearTimer(0);
while(FastTimer(0)<20){ //0.2秒未...
if(SENSOR_2>middle+5) //閾値+5...
{
right_dai
ClearTimer(0); //タイマー...
}
else if(SENSOR_2>middle+3) //閾値+3よ...
{
right_syou
ClearTimer(0);
}
else if(SENSOR_2>middle) //閾値のと...
{
OnFwd(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_2>middle-3) //閾値-3よ...
{
left_syou
ClearTimer(0);
}
else //閾値が-3...
{
left_dai; //ここでタ...
}
}
Off(OUT_AC);
}
sub s() //EF間
{
SetSensor(SENSOR_1, SENSOR_TOUCH);
ClearTimer(0);
while(FastTimer(0)<1500){ //15秒間実...
if(SENSOR_2>middle+5) //閾値+5...
{
right_dai
}
else if(SENSOR_2>middle+3) //閾値+3よ...
{
right_syou
}
else if(SENSOR_2>middle) //閾値のと...
{
OnFwd(OUT_AC);
}
else if(SENSOR_2>middle-3) //閾値-3よ...
{
left_syou
}
else //閾値が-3...
{
left_dai;
}
}
Off(OUT_AC);
}
EF間のヘアピンカーブは交差点と認識されてしまうので上のプ...
task main()
{
line(); //D〜C
stop;
PlaySound(SOUND_CLICK); //音
go(30); //Cの交差...
TURN_RIGHT; //角度調整
line(); //C〜B
stop;
PlaySound(SOUND_CLICK);
go(20); //角度調整
TURN_LEFT(50); //角度調整
line(); //B〜P
TURN_RIGHT; //角度調整
line(); //B〜P
stop;
PlaySound(SOUND_CLICK);
TURN_LEFT(30); //角度調整
go(20); //角度調整
line(); //P〜Q
go(30); //交差点判...
TURN_RIGHT; //角度調整
PlaySound(SOUND_CLICK);
line(); //Q〜R
PlaySound(SOUND_CLICK);
line(); //R〜E
PlaySound(SOUND_CLICK);
s(); //E〜Fの最...
line(); //s()の時...
PlaySound(SOUND_CLICK);
go(20); //角度調整
TURN_LEFT(70); //角度調整
line(); //F〜S
PlaySound(SOUND_CLICK);
stop;
TURN__RIGHT(80); //つかむた...
go(60); //つかむた...
tukamu; //つかむ
TURN_LEFT(100); //角度調整
go(100); //位置調整
line(); //S〜S右側...
PlaySound(SOUND_CLICK);
go(20); //交差点S...
line(); //S〜Q
PlaySound(SOUND_CLICK);
stop;
TURN_LEFT(30); //角度調整
go(20); //角度調整
line(); //Q〜R
PlaySound(SOUND_CLICK);
TURN__RIGHT(150); //紙コップ...
hanasu; //紙コップ...
back(100); //バック
TURN_LEFT(70); //角度調整
go(120); //位置調整
line(); //R〜P
PlaySound(SOUND_CLICK);
line(); //P〜B
stop;
PlaySound(SOUND_CLICK);
line(); //B〜A
go(50); //GOAL
}
*感想・反省 [#b15e76db]
3回に1回しか成功しないというかなしいものができあがって...
ページ名: