2018a/Member/iwa/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
#contents
*課題3 [#i2f4f1a4]
#ref(2018a-mission2.png)
課題2で使用した上の画像のフィールドを使用してAから出発...
詳しいルールについては[[ルール:http://yakushi.shinshu-u.a...
*ロボット概要 [#n3a60d1a]
ロボットは2台を同時に動かしそれらの連携によって缶を動か...
また、核部品は分散させないでくっつけておおきな核部品をつ...
今回は過去の課題よりも準備にとれる時間が非常に少なかった...
**背面 [#v40c7343]
#ref(s_image1 (1)-min.jpeg)
2つ核部品があるがそのうち下側がマスター、上側がスレイブ...
また、よくみてみると車輪が2つしかないことに気づくだろう...
**側面 [#x2c73d1e]
#ref(s_image3-min.jpeg)
#ref(s_image4-min.jpeg)
タイヤ部分のモーターに直接タイヤがついているのではなく歯...
**前面&上面 [#f0269329]
#ref(s_image5-min.jpeg)
上面からは2つタイヤのモーターではないモーターが見えると...
また、それぞれのアームには細いタイヤが2つついているがこ...
**下面 [#t48626af]
#ref(s_image2-min.jpeg)
下面からはマスターの核部品がみえる。マスターがしたにある...
また、課題2の時と同じように光センサーを床に限りなく近づ...
そして、2つのタイヤモーターを棒のような部品でつなぐこと...
*プログラミング [#o63592ff]
**マスター [#i4e8d68a]
#define CONN 1 // スレーブの接続番号
#define SIGNALON 11 // ハサミで持ち上げるためのメッセ...
#define SIGNALOFF 12 // 缶を落とすためのメッセージ
#define llt OnFwd(OUT_A,50); OnRev(OUT_C,30); Wait(1);//...
#define lrt OnRev(OUT_A,30); OnFwd(OUT_C,50); Wait(1);/...
#define ternleft OnFwd(OUT_A,50); OnRev(OUT_C,10);//左...
#define ternright OnRev(OUT_A,10); OnFwd(OUT_C,50);//右...
#define go OnFwd(OUT_A,50); OnFwd(OUT_C,50);//直進する
#define back OnRev(OUT_A,50); OnRev(OUT_C,50);//後退する
#define trase_R {if(SENSOR_2<36){lrt; n++;} else if(SE...
{llt; n=0;}}
#define trase_L {if(SENSOR_2<36){llt; n++;} else if(SE...
{lrt; n=0;}}
#define open RotateMotor(OUT_B,25,80); Off(OUT_B);Wait(1...
#define close RotateMotor(OUT_B,25,-80); Off(OUT_B);Wait...
#define UP RotateMotor(OUT_C,40,90); Off(OUT_C); Wait(10...
#define DOWN RotateMotor(OUT_C,20,-100);Off(OUT_C); Wait...
task main()
{
SetSensorLowspeed(S1);
SetSensorLight(S2);
int n=0;
while(n<=100)
{ // H
trase_R;
}
Off(OUT_AC);
Wait(1000);
OnFwdSync(OUT_AC, 50, 0);
Wait(500);
Off(OUT_AC);
n=0;
while(n<=100)
{ // s2
trase_R;
}
Off(OUT_AC);
Wait(1000);
OnFwd(OUT_AC,50); //線を...
Wait(500);
n=0;
while(n<=90)
{
trase_L ...
}
Off(OUT_AC);
Wait(1000);
RotateMotor(OUT_A, 60, 300);
Off(OUT_AC);
n=0;
while(n<=150)
{ //十字路で止...
trase_R
}
Off(OUT_AC);
Wait(1000);
RotateMotor(OUT_C, 60, 300);
Off(OUT_AC);
n=0;
while(n<=70)
{ //Fで止まる
trase_L
}
Off(OUT_AC);
close;
SendRemoteNumber(CONN,MAILBOX1,SIGNALON); //...
Off(OUT_ABC);
Wait(3000);
OnRev(OUT_AC,50); //バ...
Wait(1000);
Off(OUT_AC);
RotateMotorEx(OUT_AC, 75, 1860, 100, true, false); //振...
Off(OUT_AC);
n=0;
while(n<=70)
{ //Gで止まる
trase_L
}
Off(OUT_AC);
RotateMotorEx(OUT_AC, 75, 400, -100, true, false );
Off(OUT_AC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALOFF);
Off(OUT_ABC);
Wait(3000);
open;
Off(OUT_ABC);
Wait(3000);
}
このプログラムは多くつかうプログラムをすべて定義している...
前述の通りマスターは線をトレースするプログラムを中心に動...
また、課題2では私たちのペアはトレースする際の交差点判断...
ロボット概要でも述べたようにタイヤに歯車部品を取り付けた...
**スレイブ [#xc61f910]
#define CONN 1 // スレーブの接続番号
#define SIGNALON 11 // ハサミで持ち上げるためのメッセ...
#define SIGNALOFF 12 // 缶を落とすためのメッセージ
#define llt OnFwd(OUT_A,50); OnRev(OUT_C,30); Wait(1);//...
#define lrt OnRev(OUT_A,30); OnFwd(OUT_C,50); Wait(1);/...
#define ternleft OnFwd(OUT_A,50); OnRev(OUT_C,10);//左...
#define ternright OnRev(OUT_A,10); OnFwd(OUT_C,50);//右...
#define go OnFwd(OUT_A,50); OnFwd(OUT_C,50);//直進する
#define back OnRev(OUT_A,50); OnRev(OUT_C,50);//後退する
#define trase_R {if(SENSOR_2<35){lrt; n++;} else if(SE...
{llt;
n=0;}}
#define trase_L {if(SENSOR_2<35){llt; n++;} else if(SE...
{lrt;
n=0;}}
#define open RotateMotor(OUT_B,25,85); Off(OUT_B);Wait(1...
#define close RotateMotor(OUT_B,25,-85); Off(OUT_B);Wait...
#define UP RotateMotor(OUT_C,40,90); Off(OUT_C); Wait(10...
#define DOWN RotateMotor(OUT_C,20,-90);Off(OUT_C); Wait(...
task main ()
{
int msg; // 受け取った値を格納する変数
while (true) {
ReceiveRemoteNumber(MAILBOX1,true,msg); //
if (msg == SIGNALON) {
UP;
}
if (msg == SIGNALOFF) {
DOWN;
}
}
}
こちらも定義によって多く使われるプログラムは定義してしま...
これも前述したとおりスレイブ側はアームの上げ下げや、開閉...
アームは課題1のようにモーターの回転によって上下動くよう...
*結果 [#a99a82b1]
#ref(s_image1-min.jpeg)
少し画像からは分かりづらいが私たちのグループはN3N4で...
*感想、反省など [#dc6fe4e9]
今回頑張ったと思ったがこのような結果で終わってしまってか...
こうなってしまったのには理由が個人、グループ、ロボット、...
まず、個人では私自身テスト前最後のみんなで集まれる課外の...
また、以上の点以外でも当日きちんとロボットの工夫した点を...
しかし、これまでの課題でロボットについてすこし興味がわい...
終了行:
[[2018a/Member]]
#contents
*課題3 [#i2f4f1a4]
#ref(2018a-mission2.png)
課題2で使用した上の画像のフィールドを使用してAから出発...
詳しいルールについては[[ルール:http://yakushi.shinshu-u.a...
*ロボット概要 [#n3a60d1a]
ロボットは2台を同時に動かしそれらの連携によって缶を動か...
また、核部品は分散させないでくっつけておおきな核部品をつ...
今回は過去の課題よりも準備にとれる時間が非常に少なかった...
**背面 [#v40c7343]
#ref(s_image1 (1)-min.jpeg)
2つ核部品があるがそのうち下側がマスター、上側がスレイブ...
また、よくみてみると車輪が2つしかないことに気づくだろう...
**側面 [#x2c73d1e]
#ref(s_image3-min.jpeg)
#ref(s_image4-min.jpeg)
タイヤ部分のモーターに直接タイヤがついているのではなく歯...
**前面&上面 [#f0269329]
#ref(s_image5-min.jpeg)
上面からは2つタイヤのモーターではないモーターが見えると...
また、それぞれのアームには細いタイヤが2つついているがこ...
**下面 [#t48626af]
#ref(s_image2-min.jpeg)
下面からはマスターの核部品がみえる。マスターがしたにある...
また、課題2の時と同じように光センサーを床に限りなく近づ...
そして、2つのタイヤモーターを棒のような部品でつなぐこと...
*プログラミング [#o63592ff]
**マスター [#i4e8d68a]
#define CONN 1 // スレーブの接続番号
#define SIGNALON 11 // ハサミで持ち上げるためのメッセ...
#define SIGNALOFF 12 // 缶を落とすためのメッセージ
#define llt OnFwd(OUT_A,50); OnRev(OUT_C,30); Wait(1);//...
#define lrt OnRev(OUT_A,30); OnFwd(OUT_C,50); Wait(1);/...
#define ternleft OnFwd(OUT_A,50); OnRev(OUT_C,10);//左...
#define ternright OnRev(OUT_A,10); OnFwd(OUT_C,50);//右...
#define go OnFwd(OUT_A,50); OnFwd(OUT_C,50);//直進する
#define back OnRev(OUT_A,50); OnRev(OUT_C,50);//後退する
#define trase_R {if(SENSOR_2<36){lrt; n++;} else if(SE...
{llt; n=0;}}
#define trase_L {if(SENSOR_2<36){llt; n++;} else if(SE...
{lrt; n=0;}}
#define open RotateMotor(OUT_B,25,80); Off(OUT_B);Wait(1...
#define close RotateMotor(OUT_B,25,-80); Off(OUT_B);Wait...
#define UP RotateMotor(OUT_C,40,90); Off(OUT_C); Wait(10...
#define DOWN RotateMotor(OUT_C,20,-100);Off(OUT_C); Wait...
task main()
{
SetSensorLowspeed(S1);
SetSensorLight(S2);
int n=0;
while(n<=100)
{ // H
trase_R;
}
Off(OUT_AC);
Wait(1000);
OnFwdSync(OUT_AC, 50, 0);
Wait(500);
Off(OUT_AC);
n=0;
while(n<=100)
{ // s2
trase_R;
}
Off(OUT_AC);
Wait(1000);
OnFwd(OUT_AC,50); //線を...
Wait(500);
n=0;
while(n<=90)
{
trase_L ...
}
Off(OUT_AC);
Wait(1000);
RotateMotor(OUT_A, 60, 300);
Off(OUT_AC);
n=0;
while(n<=150)
{ //十字路で止...
trase_R
}
Off(OUT_AC);
Wait(1000);
RotateMotor(OUT_C, 60, 300);
Off(OUT_AC);
n=0;
while(n<=70)
{ //Fで止まる
trase_L
}
Off(OUT_AC);
close;
SendRemoteNumber(CONN,MAILBOX1,SIGNALON); //...
Off(OUT_ABC);
Wait(3000);
OnRev(OUT_AC,50); //バ...
Wait(1000);
Off(OUT_AC);
RotateMotorEx(OUT_AC, 75, 1860, 100, true, false); //振...
Off(OUT_AC);
n=0;
while(n<=70)
{ //Gで止まる
trase_L
}
Off(OUT_AC);
RotateMotorEx(OUT_AC, 75, 400, -100, true, false );
Off(OUT_AC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALOFF);
Off(OUT_ABC);
Wait(3000);
open;
Off(OUT_ABC);
Wait(3000);
}
このプログラムは多くつかうプログラムをすべて定義している...
前述の通りマスターは線をトレースするプログラムを中心に動...
また、課題2では私たちのペアはトレースする際の交差点判断...
ロボット概要でも述べたようにタイヤに歯車部品を取り付けた...
**スレイブ [#xc61f910]
#define CONN 1 // スレーブの接続番号
#define SIGNALON 11 // ハサミで持ち上げるためのメッセ...
#define SIGNALOFF 12 // 缶を落とすためのメッセージ
#define llt OnFwd(OUT_A,50); OnRev(OUT_C,30); Wait(1);//...
#define lrt OnRev(OUT_A,30); OnFwd(OUT_C,50); Wait(1);/...
#define ternleft OnFwd(OUT_A,50); OnRev(OUT_C,10);//左...
#define ternright OnRev(OUT_A,10); OnFwd(OUT_C,50);//右...
#define go OnFwd(OUT_A,50); OnFwd(OUT_C,50);//直進する
#define back OnRev(OUT_A,50); OnRev(OUT_C,50);//後退する
#define trase_R {if(SENSOR_2<35){lrt; n++;} else if(SE...
{llt;
n=0;}}
#define trase_L {if(SENSOR_2<35){llt; n++;} else if(SE...
{lrt;
n=0;}}
#define open RotateMotor(OUT_B,25,85); Off(OUT_B);Wait(1...
#define close RotateMotor(OUT_B,25,-85); Off(OUT_B);Wait...
#define UP RotateMotor(OUT_C,40,90); Off(OUT_C); Wait(10...
#define DOWN RotateMotor(OUT_C,20,-90);Off(OUT_C); Wait(...
task main ()
{
int msg; // 受け取った値を格納する変数
while (true) {
ReceiveRemoteNumber(MAILBOX1,true,msg); //
if (msg == SIGNALON) {
UP;
}
if (msg == SIGNALOFF) {
DOWN;
}
}
}
こちらも定義によって多く使われるプログラムは定義してしま...
これも前述したとおりスレイブ側はアームの上げ下げや、開閉...
アームは課題1のようにモーターの回転によって上下動くよう...
*結果 [#a99a82b1]
#ref(s_image1-min.jpeg)
少し画像からは分かりづらいが私たちのグループはN3N4で...
*感想、反省など [#dc6fe4e9]
今回頑張ったと思ったがこのような結果で終わってしまってか...
こうなってしまったのには理由が個人、グループ、ロボット、...
まず、個人では私自身テスト前最後のみんなで集まれる課外の...
また、以上の点以外でも当日きちんとロボットの工夫した点を...
しかし、これまでの課題でロボットについてすこし興味がわい...
ページ名: