2019a/Member/Syoshida/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019a/Member]]
#contents
*課題について [#sf9b88ae]
ピンポン玉または青と赤のボールを運搬して、所定の容器の中...
#ref(2019a/Member/Syoshida/Mission3/課題3コース.jpg,100%...
ロボコンのフィールド平面図
フィールドの説明
フィールドは課題2で使用した紙を使用する。
生協のお弁当の四角いプラ容器2つをそれぞれ円内に置き、片方...
残りの2個の玉は課題2と同じ位置に置く。その際、ゴムタイヤ...
プラ容器には色をつけたり文字や記号を書いてもよい。
プラ容器は両面テープ等でフィールドに固定してもよい。
2枚の紙の境界にはそれぞれ幅1cm、合計2cmの黒線を描いてもよ...
*ロボットについて [#j6ab90ed]
私は今回の課題では2体のロボットを製作し、それぞれを役割...
**ロボット1について [#p4b90d6a]
ロボット1は容器に入ったピンポン玉を回収し、別の容器に移...
***ロボット1の全体像 [#j48e8f12]
#ref(2019a/Member/Syoshida/Mission3/ロボット1全体像.jpg,...
***ロボット1の構造 [#i21d2f80]
-ロボット1は容器に入った2つのピンポン玉を動かすように作...
~
-ロボット1は大きなタイヤを前側に、小さなタイヤを後ろ側に...
#ref(2019a/Member/Syoshida/Mission3/ロボット1構造.jpg,40...
&color(red,){Aと左のタイヤを動かすモーター(赤丸位置)};...
&color(green,){Cと右のタイヤを動かすモーター(緑丸位置)}...
&color(blue,){Bとアームを動かすモーター(青丸位置)};を接続~
&color(magenta,){端子2と光センサー(ピンク丸位置)};を接続~
&color(orange,){アームに輪ゴム(橙色丸位置)};を引っ掛け、...
-光センサーを地面に近くなるようロボットに設置することによ...
***ライントレースについて [#d3d144fb]
光センサーが&color(red,){48より大きい値を示すとき(白)で...
光センサーが&color(green,){45と49の間の値を示すとき(灰色...
光センサーが&color(blue,){44より小さい値を示すとき(黒)...
#ref(2019a/Member/Syoshida/Mission2/ロボティクスゼミ ラ...
このように3つの曲がる動きだけを入力し、大きなカーブを曲...
***ピンポン玉を運ぶ仕組みについて [#dc628d46]
ピンポン玉が入った容器ごと運ぶ仕組みになっています。
#ref(2019a/Member/Syoshida/Mission3/ロボット1容器を掴む....
図1~
~
図1のように持ち上げたい容器の横両方にタイヤのついたアー...
~
~
#ref(2019a/Member/Syoshida/Mission3/image2 - コピー.jpeg,...
図2~
~
~
図2より、アームを限界まであげることによって容器の中のピ...
***ロボット1の行動 [#tb491629]
#ref(2019a/Member/Syoshida/Mission3/ロボット1の行動.jpg,...
BからC地点までは行動時間を設定したライントレースによって...
&color(red,){赤丸地点にて容器を掴む};~
&color(green,){緑丸地点にて容器を掴んだアームを上げ、もう...
**ロボット2について [#z1d001c9]
ロボット2は地面に置かれたピンポン玉を回収し、容器に入れ...
***ロボット2の全体像 [#j48e8f12]
#ref(2019a/Member/Syoshida/Mission3/ロボット2全体像.jpg,...
***ロボット2の構造 [#y36b1235]
#ref(2019a/Member/Syoshida/Mission3/.jpg,40%,ロボット2の...
&color(red,){Aと左のタイヤを動かすモーター(赤丸位置)};...
&color(green,){Cと右のタイヤを動かすモーター(緑丸位置)}...
&color(blue,){Bとアームを動かすモーター(青丸位置)};を接続~
***ピンポン玉を運ぶ仕組みについて [#ibe89938]
#ref(2019a/Member/Syoshida/Mission3/ロボット2ボールを掴...
図A~
~
輪ゴムを図Aの通りに設置し、ロボット2が地面に置かれたピン...
~
~
#ref(2019a/Member/Syoshida/Mission3/ロボット2ボールを落...
図B~
~
図Bのようにロボット2の上部につけられた柱にアームに引っか...
***ロボット2の行動 [#o7bef2be]
#ref(2019a/Member/Syoshida/Mission3/ロボット2の行動.jpg,...
&color(red,){赤丸地点L′にて置かれたピンポン玉を掴む};~
&color(green,){緑丸地点にてピンポン玉を掴んだアームを上げ...
容器にピンポン玉を一つ入れた後、後退して停止する。
*プログラミングについて [#o6594a4a]
**ロボット1のプログラミングの説明 [#me0fbc9c]
***#defineについて [#pd1ea27c]
***光センサーに関する定義 [#gd3f1f55]
光センサーの数値の定義に関しては状況によってセンサーの反...
プログラムを見てすぐに変えられるよう多くを定義しませんで...
***時間に関する定義 [#r4dd7555]
#define RUN_TIME 610 //6.1秒
#define STEP 5
***動きに関する定義 [#w9d4fe29]
#define turn OnFwd(OUT_A);OnRev(OUT_C);Wait(148);Off(OUT...
#define turn_left OnFwd(OUT_C);OnRev(OUT_A);Wait(120);Of...
***その他の定義 [#aa1c24e0]
#define power(s) SetPower(OUT_B,s); //アームの動きを...
***サブルーチンの設定 [#y6cf7c52]
sub tores() //ライントレースのサブルーチン
{ SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while ( FastTimer(0) <= RUN_TIME ) {
if ( 48 < SENSOR_2 ){
OnFwd(OUT_A); Off(OUT_C); //白なら右へ
} else if (45 <SENSOR_2 < 49) {
Off(OUT_A); OnFwd(OUT_C); //灰色なら左へ
} else {
OnRev(OUT_A);OnFwd(OUT_C); //黒なら左へ旋回
}
}
}
sub down() //アームをゆっくりおろす動き
{
OnFwd(OUT_B);
power(0);
Wait(50);
Off(OUT_B);
Wait(100);
}
sub up1() //アームをゆっくりあげる動き
{
OnRev(OUT_B);
power(0);
Wait(30);
Off(OUT_B);
Wait(100);
}
sub throw() //容器に入ったピンポン玉を取り出す動作
{
OnFwd(OUT_B);
power(0);
Wait(80); //アームをゆっくりさげる
Off(OUT_B);
OnRev(OUT_B);
Wait(50); //アームを素早くあげる
Off(OUT_B);
}
***実行するプログラム [#nae0eaf0]
task main()
{
OnFwd(OUT_AC); //地点Bまで前進
Wait(100);
tores(); //BからCまでのライントレース
turn; //ピンポン玉の入った容器のある方に向け...
OnRev(OUT_AC); //少し後退してアームが容器に当...
Wait(120);
Off(OUT_AC);
down(); //アームをおろす
OnFwd(OUT_AC); //前進してアームの間に容器を挟む
Wait(130);
Off(OUT_AC);
up1(); //容器を持ち上げる(アームをあげる)
OnRev(OUT_AC); //そのまま後退して位置調整
Wait(415);
turn_left; //左に90度旋回
OnRev(OUT_AC); //後退
Wait(140);
Off(OUT_AC);
throw(); //運んでいた容器からピンポン玉を取り...
}
終了
**ロボット2のプログラミングの説明 [#g203c405]
***#defineについて [#pd1ea27c]
***時間に関する定義 [#r4dd7555]
#define RUN_TIME 700
***動きに関する定義 [#w9d4fe29]
#define turn OnFwd(OUT_A);OnRev(OUT_C);
#define turn2 OnFwd(OUT_C);OnRev(OUT_A);
#define go OnFwd(OUT_AC);
***その他の定義 [#c82dcf9a]
#define power(s) SetPower(OUT_B,s); //モータのパワーをs...
***サブルーチンの設定 [#y6cf7c52]
sub up() //アームをゆっくりあげる動作(ピンポン玉を持...
{
OnFwd(OUT_B);
power(1);
Wait(50);
Off(OUT_B);
}
sub up2() //アームをゆっくりあげる動作(ピンポン玉を...
{
OnFwd(OUT_B);
power(2);
Wait(20);
Off(OUT_B);
}
sub down() //アームをゆっくりさげる動作
{
OnRev(OUT_B);
power(2);
Wait(50);
Off(OUT_B);
}
***実行するプログラム [#nae0eaf0]
task main()
{
go;Wait(110);Off(OUT_AC); //A地点を出発して旋回す...
turn2;Wait(70);Off(OUT_AC); //左に90度旋回
go;Wait(210);Off(OUT_AC); //K′地点まで直進
turn;Wait(70);Off(OUT_AC); //右に90度旋回
go;Wait(30);Off(OUT_AC); //L′地点まで直進
down();Wait(30); //ピンポン玉を掴む(アームをさげ...
up();Wait(30); //ピンポン玉を掴んで保持しながらア...
turn2;Wait(70);Off(OUT_AC); //左に90度旋回
go;Wait(10);Off(OUT_AC); //前進して容器に近づく
up2();Wait(30); //ピンポン玉を押し出して容器にピン...
OnRev(OUT_AC);Wait(1000);Off(OUT_AC); //後退してコ...
}
終了
*結果 [#y39b78d2]
最終的にはうまくいかず、ボールを掴むことも出来なかった。
*まとめ [#k1bf251c]
これまでゼミで学んだことを詰め込んで挑戦したロボコンであ...
終了行:
[[2019a/Member]]
#contents
*課題について [#sf9b88ae]
ピンポン玉または青と赤のボールを運搬して、所定の容器の中...
#ref(2019a/Member/Syoshida/Mission3/課題3コース.jpg,100%...
ロボコンのフィールド平面図
フィールドの説明
フィールドは課題2で使用した紙を使用する。
生協のお弁当の四角いプラ容器2つをそれぞれ円内に置き、片方...
残りの2個の玉は課題2と同じ位置に置く。その際、ゴムタイヤ...
プラ容器には色をつけたり文字や記号を書いてもよい。
プラ容器は両面テープ等でフィールドに固定してもよい。
2枚の紙の境界にはそれぞれ幅1cm、合計2cmの黒線を描いてもよ...
*ロボットについて [#j6ab90ed]
私は今回の課題では2体のロボットを製作し、それぞれを役割...
**ロボット1について [#p4b90d6a]
ロボット1は容器に入ったピンポン玉を回収し、別の容器に移...
***ロボット1の全体像 [#j48e8f12]
#ref(2019a/Member/Syoshida/Mission3/ロボット1全体像.jpg,...
***ロボット1の構造 [#i21d2f80]
-ロボット1は容器に入った2つのピンポン玉を動かすように作...
~
-ロボット1は大きなタイヤを前側に、小さなタイヤを後ろ側に...
#ref(2019a/Member/Syoshida/Mission3/ロボット1構造.jpg,40...
&color(red,){Aと左のタイヤを動かすモーター(赤丸位置)};...
&color(green,){Cと右のタイヤを動かすモーター(緑丸位置)}...
&color(blue,){Bとアームを動かすモーター(青丸位置)};を接続~
&color(magenta,){端子2と光センサー(ピンク丸位置)};を接続~
&color(orange,){アームに輪ゴム(橙色丸位置)};を引っ掛け、...
-光センサーを地面に近くなるようロボットに設置することによ...
***ライントレースについて [#d3d144fb]
光センサーが&color(red,){48より大きい値を示すとき(白)で...
光センサーが&color(green,){45と49の間の値を示すとき(灰色...
光センサーが&color(blue,){44より小さい値を示すとき(黒)...
#ref(2019a/Member/Syoshida/Mission2/ロボティクスゼミ ラ...
このように3つの曲がる動きだけを入力し、大きなカーブを曲...
***ピンポン玉を運ぶ仕組みについて [#dc628d46]
ピンポン玉が入った容器ごと運ぶ仕組みになっています。
#ref(2019a/Member/Syoshida/Mission3/ロボット1容器を掴む....
図1~
~
図1のように持ち上げたい容器の横両方にタイヤのついたアー...
~
~
#ref(2019a/Member/Syoshida/Mission3/image2 - コピー.jpeg,...
図2~
~
~
図2より、アームを限界まであげることによって容器の中のピ...
***ロボット1の行動 [#tb491629]
#ref(2019a/Member/Syoshida/Mission3/ロボット1の行動.jpg,...
BからC地点までは行動時間を設定したライントレースによって...
&color(red,){赤丸地点にて容器を掴む};~
&color(green,){緑丸地点にて容器を掴んだアームを上げ、もう...
**ロボット2について [#z1d001c9]
ロボット2は地面に置かれたピンポン玉を回収し、容器に入れ...
***ロボット2の全体像 [#j48e8f12]
#ref(2019a/Member/Syoshida/Mission3/ロボット2全体像.jpg,...
***ロボット2の構造 [#y36b1235]
#ref(2019a/Member/Syoshida/Mission3/.jpg,40%,ロボット2の...
&color(red,){Aと左のタイヤを動かすモーター(赤丸位置)};...
&color(green,){Cと右のタイヤを動かすモーター(緑丸位置)}...
&color(blue,){Bとアームを動かすモーター(青丸位置)};を接続~
***ピンポン玉を運ぶ仕組みについて [#ibe89938]
#ref(2019a/Member/Syoshida/Mission3/ロボット2ボールを掴...
図A~
~
輪ゴムを図Aの通りに設置し、ロボット2が地面に置かれたピン...
~
~
#ref(2019a/Member/Syoshida/Mission3/ロボット2ボールを落...
図B~
~
図Bのようにロボット2の上部につけられた柱にアームに引っか...
***ロボット2の行動 [#o7bef2be]
#ref(2019a/Member/Syoshida/Mission3/ロボット2の行動.jpg,...
&color(red,){赤丸地点L′にて置かれたピンポン玉を掴む};~
&color(green,){緑丸地点にてピンポン玉を掴んだアームを上げ...
容器にピンポン玉を一つ入れた後、後退して停止する。
*プログラミングについて [#o6594a4a]
**ロボット1のプログラミングの説明 [#me0fbc9c]
***#defineについて [#pd1ea27c]
***光センサーに関する定義 [#gd3f1f55]
光センサーの数値の定義に関しては状況によってセンサーの反...
プログラムを見てすぐに変えられるよう多くを定義しませんで...
***時間に関する定義 [#r4dd7555]
#define RUN_TIME 610 //6.1秒
#define STEP 5
***動きに関する定義 [#w9d4fe29]
#define turn OnFwd(OUT_A);OnRev(OUT_C);Wait(148);Off(OUT...
#define turn_left OnFwd(OUT_C);OnRev(OUT_A);Wait(120);Of...
***その他の定義 [#aa1c24e0]
#define power(s) SetPower(OUT_B,s); //アームの動きを...
***サブルーチンの設定 [#y6cf7c52]
sub tores() //ライントレースのサブルーチン
{ SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
while ( FastTimer(0) <= RUN_TIME ) {
if ( 48 < SENSOR_2 ){
OnFwd(OUT_A); Off(OUT_C); //白なら右へ
} else if (45 <SENSOR_2 < 49) {
Off(OUT_A); OnFwd(OUT_C); //灰色なら左へ
} else {
OnRev(OUT_A);OnFwd(OUT_C); //黒なら左へ旋回
}
}
}
sub down() //アームをゆっくりおろす動き
{
OnFwd(OUT_B);
power(0);
Wait(50);
Off(OUT_B);
Wait(100);
}
sub up1() //アームをゆっくりあげる動き
{
OnRev(OUT_B);
power(0);
Wait(30);
Off(OUT_B);
Wait(100);
}
sub throw() //容器に入ったピンポン玉を取り出す動作
{
OnFwd(OUT_B);
power(0);
Wait(80); //アームをゆっくりさげる
Off(OUT_B);
OnRev(OUT_B);
Wait(50); //アームを素早くあげる
Off(OUT_B);
}
***実行するプログラム [#nae0eaf0]
task main()
{
OnFwd(OUT_AC); //地点Bまで前進
Wait(100);
tores(); //BからCまでのライントレース
turn; //ピンポン玉の入った容器のある方に向け...
OnRev(OUT_AC); //少し後退してアームが容器に当...
Wait(120);
Off(OUT_AC);
down(); //アームをおろす
OnFwd(OUT_AC); //前進してアームの間に容器を挟む
Wait(130);
Off(OUT_AC);
up1(); //容器を持ち上げる(アームをあげる)
OnRev(OUT_AC); //そのまま後退して位置調整
Wait(415);
turn_left; //左に90度旋回
OnRev(OUT_AC); //後退
Wait(140);
Off(OUT_AC);
throw(); //運んでいた容器からピンポン玉を取り...
}
終了
**ロボット2のプログラミングの説明 [#g203c405]
***#defineについて [#pd1ea27c]
***時間に関する定義 [#r4dd7555]
#define RUN_TIME 700
***動きに関する定義 [#w9d4fe29]
#define turn OnFwd(OUT_A);OnRev(OUT_C);
#define turn2 OnFwd(OUT_C);OnRev(OUT_A);
#define go OnFwd(OUT_AC);
***その他の定義 [#c82dcf9a]
#define power(s) SetPower(OUT_B,s); //モータのパワーをs...
***サブルーチンの設定 [#y6cf7c52]
sub up() //アームをゆっくりあげる動作(ピンポン玉を持...
{
OnFwd(OUT_B);
power(1);
Wait(50);
Off(OUT_B);
}
sub up2() //アームをゆっくりあげる動作(ピンポン玉を...
{
OnFwd(OUT_B);
power(2);
Wait(20);
Off(OUT_B);
}
sub down() //アームをゆっくりさげる動作
{
OnRev(OUT_B);
power(2);
Wait(50);
Off(OUT_B);
}
***実行するプログラム [#nae0eaf0]
task main()
{
go;Wait(110);Off(OUT_AC); //A地点を出発して旋回す...
turn2;Wait(70);Off(OUT_AC); //左に90度旋回
go;Wait(210);Off(OUT_AC); //K′地点まで直進
turn;Wait(70);Off(OUT_AC); //右に90度旋回
go;Wait(30);Off(OUT_AC); //L′地点まで直進
down();Wait(30); //ピンポン玉を掴む(アームをさげ...
up();Wait(30); //ピンポン玉を掴んで保持しながらア...
turn2;Wait(70);Off(OUT_AC); //左に90度旋回
go;Wait(10);Off(OUT_AC); //前進して容器に近づく
up2();Wait(30); //ピンポン玉を押し出して容器にピン...
OnRev(OUT_AC);Wait(1000);Off(OUT_AC); //後退してコ...
}
終了
*結果 [#y39b78d2]
最終的にはうまくいかず、ボールを掴むことも出来なかった。
*まとめ [#k1bf251c]
これまでゼミで学んだことを詰め込んで挑戦したロボコンであ...
ページ名: