2017a/Member/Kobakazu/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2017a/Member]]
#contents
*課題? [#q042eaac]
今回の課題は缶積みロボットの制作であった。課題?で使用した...
詳しいルールについては [[こちら>http://yakushi.shinshu-u...
*作戦 [#rbd445cc]
私達は、3段積むことができることを目標として制作した。
まずは、スタート地点からE-F-Q-Tの順にコースをライントレー...
しかし、ロボットの制作で時間がかかってしまい、プログラム...
*ロボット本体 [#f3274f2d]
今回はロボットの制作が非常に大変だった。
まずは缶を回収し、積み上げるためにはどのような機構が必要...
今回の課題ではRCXを2つ繋げて、1つのロボットとして使用する...
&ref(2017a/Member/Kobakazu/Mission3/IMG_1.jpg,前方);
&ref(2017a/Member/Kobakazu/Mission3/IMG_2.jpg,横);
2つのRCXは縦に接続し、立てることにした。立てると、機体全...
今回のロボットの足回りはタイヤではなく、キャタピラを利用...
*アームの機構について [#u5775b9f]
アームは一つのモータで、ギアを組み合わせて缶を掴むことが...
&ref(2017a/Member/Kobakazu/Mission3/IMG_5.jpg,アームとリ...
&ref(2017a/Member/Kobakazu/Mission3/IMG_3.jpg,缶を掴んだ...
缶に接触する部分はタイヤにした。缶を積み重ねるには、持ち...
*リフトの機構について [#z242da34]
今回の課題で機体を作るにあたって、このリフトの機構が一番...
&ref(2017a/Member/Kobakazu/Mission3/IMG_4.jpg,リフト);
リフトの機構ではウォームギアを利用した。ウォームギアを使...
*各センサについて [#k4400f97]
今回の課題では、光センサとタッチセンサを利用した。光セン...
*プログラムについて [#x105b1c3]
本来は作戦通りにプログラムを制作する予定だったが、先述し...
プログラムについてはコメント分で説明した。
**ライントレースのプログラム [#bd5c942f]
ライントレースのプログラムは課題?の時に記述したプログラム...
定義部分
#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);//後退する
}
}
**アームのプログラム [#f523fa78]
定義部分
#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);//後退するように伝える。
}
*まとめ [#h33917be]
製作時間が足りなく、ロボットの制作に時間がかかりすぎてし...
もう少し計画的に制作をすすめることができれば、プログラム...
このロボティクス入門ゼミを受講して、ロボットの制御は必ず...
終了行:
[[2017a/Member]]
#contents
*課題? [#q042eaac]
今回の課題は缶積みロボットの制作であった。課題?で使用した...
詳しいルールについては [[こちら>http://yakushi.shinshu-u...
*作戦 [#rbd445cc]
私達は、3段積むことができることを目標として制作した。
まずは、スタート地点からE-F-Q-Tの順にコースをライントレー...
しかし、ロボットの制作で時間がかかってしまい、プログラム...
*ロボット本体 [#f3274f2d]
今回はロボットの制作が非常に大変だった。
まずは缶を回収し、積み上げるためにはどのような機構が必要...
今回の課題ではRCXを2つ繋げて、1つのロボットとして使用する...
&ref(2017a/Member/Kobakazu/Mission3/IMG_1.jpg,前方);
&ref(2017a/Member/Kobakazu/Mission3/IMG_2.jpg,横);
2つのRCXは縦に接続し、立てることにした。立てると、機体全...
今回のロボットの足回りはタイヤではなく、キャタピラを利用...
*アームの機構について [#u5775b9f]
アームは一つのモータで、ギアを組み合わせて缶を掴むことが...
&ref(2017a/Member/Kobakazu/Mission3/IMG_5.jpg,アームとリ...
&ref(2017a/Member/Kobakazu/Mission3/IMG_3.jpg,缶を掴んだ...
缶に接触する部分はタイヤにした。缶を積み重ねるには、持ち...
*リフトの機構について [#z242da34]
今回の課題で機体を作るにあたって、このリフトの機構が一番...
&ref(2017a/Member/Kobakazu/Mission3/IMG_4.jpg,リフト);
リフトの機構ではウォームギアを利用した。ウォームギアを使...
*各センサについて [#k4400f97]
今回の課題では、光センサとタッチセンサを利用した。光セン...
*プログラムについて [#x105b1c3]
本来は作戦通りにプログラムを制作する予定だったが、先述し...
プログラムについてはコメント分で説明した。
**ライントレースのプログラム [#bd5c942f]
ライントレースのプログラムは課題?の時に記述したプログラム...
定義部分
#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);//後退する
}
}
**アームのプログラム [#f523fa78]
定義部分
#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);//後退するように伝える。
}
*まとめ [#h33917be]
製作時間が足りなく、ロボットの制作に時間がかかりすぎてし...
もう少し計画的に制作をすすめることができれば、プログラム...
このロボティクス入門ゼミを受講して、ロボットの制御は必ず...
ページ名: