2017b/Member/smith/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*課題3 R5,R6の制作したロボット [#t0792ca3]
#contents
**1、ロボット本体 [#s0ce3f4a]
***ロボットの概要 [#n4ab1650]
&ref(2017b/Member/smith/Mission3/kadai3-8.jpg,30%,ロボッ...
&ref(2017b/Member/smith/Mission3/kadai3-3.jpg,30%,アーム...
&ref(2017b/Member/smith/Mission3/kadai3-1.jpg,30%,ロボッ...
・今回作成したロボットは、モータ2つを左右につけて各モー...
・課題である紙コップをつかむために、本体の前にクワガタの...
・これらのタイヤはどちらも後輪に対応しているため、本体前...
・このロボットのモータAには左タイヤを、モータBにはアーム...
***ルート考案 [#e7b9a8ce]
&ref(2017b/Member/smith/Mission3/2017b-mission3.jpg,80%,...
・この班では、もともと2つある本体を分担させて、Aから出発...
・これにより、1台のみで課題を取り組まなければならなくなり...
1、Aから交差点Bあたりまで進んだ後、2回回転角・光センサ両...
2、紙コップをつかんだ後、Xの方向を向き、そのまま前進。
3、中のピンポン玉を出した後、このマップの範囲外の本体の...
4、排除後、中央上の紙コップの方向を向き、そのまま前進。...
5、中央上の紙コップをつかんだらXの方向を向き、そのまま前...
6、ピンポン玉をX内に出した後つかんでいる紙コップをYに運...
***紙コップを挟んで所定の位置で中にあるピンポン玉を出す機...
&ref(2017b/Member/smith/Mission3/kadai3-5.jpg,30%,本体の...
&ref(2017b/Member/smith/Mission3/kadai3-6.jpg,30%,上部);
&ref(2017b/Member/smith/Mission3/kadai3-10.jpg,30%,裏側);
&ref(2017b/Member/smith/Mission3/kadai3-9.jpg,30%,アーム...
・このアームの部分は今回一番苦戦した機構である。モータBが...
&ref(2017b/Member/smith/Mission3/kadai3-12.jpg,30%,つかむ...
&ref(2017b/Member/smith/Mission3/kadai3-14.jpg,30%,つかん...
&ref(2017b/Member/smith/Mission3/kadai3-13.jpg,30%,つかみ...
・これを作るのに結構な時間がかかり、また、この部分が簡単...
***紙コップの大まかな位置を特定する機構 [#d2f6f722]
&ref(2017b/Member/smith/Mission3/kadai3-7.jpg,30%,回転角...
&ref(2017b/Member/smith/Mission3/kadai3-4.jpg,30%,紙コッ...
&ref(2017b/Member/smith/Mission3/kadai3-11.jpg,30%,光セン...
・本体をより精密に紙コップの近くまで移動させるために回転...
・回転角を計るセンサは、上図右のように右側のタイヤのギア...
・光センサは、黒い半球状の摩擦軽減用の部品を取り付けた場...
**2、プログラム [#j397a269]
***基礎部分 [#qe275de4]
#define cup_getup OnFwd(OUT_B);Wait(15);Off(OUT_B);//紙...
#define cup_putdown OnRev(OUT_B);Wait(30);Off(OUT_B);//...
#define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);...
#define turn_left(s) OnFwd(OUT_C);OnRev(OUT_A);Wait(s);O...
・このロボットの基礎となるプログラムである。モータBが前回...
***紙コップを検知するサブルーチン [#p59fc8a7]
sub search_cup()
{
SetSensor(SENSOR_1,SENSOR_ROTATION);
SetSensor(SENSOR_2,SENSOR_LIGHT);
int sun_MAX = 100;//明るさの値であり、のちに値を下げ...
int sensor_MAX = 0;//回転の値であり、のちに上がって...
ClearSensor(SENSOR_1);
while(SENSOR_1 < 4)//回転センサーが4となるまで繰り返し
{
SetPower(OUT_AC,2);
OnFwd(OUT_A);
OnRev(OUT_C);
if(SENSOR_2 < sun_MAX)//もし明るさがそれまでに記...
{
sun_MAX = SENSOR_2;//最低の明るさを更新
sensor_MAX = SENSOR_1;//最低の明るさを記録し...
}
}
Off(OUT_AC);
Wait(100);
SetPower(OUT_AC,2);
OnRev(OUT_A);
OnFwd(OUT_C);
until(SENSOR_1 < sensor_MAX);//先ほど最低の明るさを...
Off(OUT_AC);
Wait(100);
OnFwd(OUT_AC);//紙コップがある方向に近づく
Wait(40);
Off(OUT_AC);
}
・本体の説明で記した通り紙コップを検知するためのサブルー...
***タスクメイン [#tdfc5132]
task main()
{ //手順1はじめ
OnFwd(OUT_AC);//A地点から1つ目の紙コップ付近まで近づく
Wait(140);
Off(OUT_AC);
int A;
for (A=1; A<=2; A++)//以下のことを2回繰り返し
{
SetPower(OUT_AC,2);
OnFwd(OUT_C);//紙コップを見つけるために一時的に...
OnRev(OUT_A);
Wait(20);
Off(OUT_AC);
Wait(100);
search_cup();//紙コップを見つけて紙コップに近づく
Wait(100);
} //手順1おわり
cup_getup;//手順2はじめ 紙コップをつかむ
turn_right(185);//紙コップをつかんだ地点で右旋回し、...
Wait(100);
OnFwd(OUT_AC);//X地点に近づく
Wait(50);
Off(OUT_AC); //手順2おわり
OnFwd(OUT_B);//手順3はじめ 紙コップを持ち上げる
OnRev(OUT_AC);//紙コップを持ち上げながら下がり、紙コ...
Wait(100);
Off(OUT_ABC);
Wait(100);
turn_left(150);//持っている紙コップを移動の邪魔にな...
Wait(100);
cup_putdown;//手順3おわり 紙コップをはなす
turn_right(155);//手順4はじめ 2つ目の紙コップの方向...
OnFwd(OUT_AC);//紙コップに近づく
Wait(140);
Off(OUT_AC);
turn_right(40);//紙コップがある方向を向くため右旋回
OnFwd(OUT_AC);//更に紙コップに近づく
Wait(40);
Off(OUT_AC);
int B;
for (B=1; B<=2; B++)//以下のことを2回繰り返し
{
SetPower(OUT_AC,2);
turn_left(20);//紙コップを見つけるために一時的に...
Wait(100);
search_cup();//紙コップを見つけて紙コップに近づく
Wait(100);
} //手順4おわり
cup_getup;//手順5はじめ 紙コップをつかむ
Off(OUT_AC);
Wait(100);
turn_right(160);//手順5おわり 紙コップをつかんだ地...
OnFwd(OUT_B);//手順6はじめ 紙コップを持ち上げる
OnRev(OUT_AC);//紙コップを持ち上げながら下がり、紙コ...
Wait(100);
Off(OUT_ABC);
turn_left(85);//X地点の方向を向いてる状態からY地点の...
OnFwd(OUT_AC);//Y地点に近づき、紙コップをY地点に置く
Wait(160);
Off(OUT_AC); //手順6おわり
}
・このロボットのタスクメインである。ロボット本体の説明の...
**3、実行結果と反省 [#w43dca6a]
・本体の説明で記したように、時間が足りなくてあまり本体を...
終了行:
*課題3 R5,R6の制作したロボット [#t0792ca3]
#contents
**1、ロボット本体 [#s0ce3f4a]
***ロボットの概要 [#n4ab1650]
&ref(2017b/Member/smith/Mission3/kadai3-8.jpg,30%,ロボッ...
&ref(2017b/Member/smith/Mission3/kadai3-3.jpg,30%,アーム...
&ref(2017b/Member/smith/Mission3/kadai3-1.jpg,30%,ロボッ...
・今回作成したロボットは、モータ2つを左右につけて各モー...
・課題である紙コップをつかむために、本体の前にクワガタの...
・これらのタイヤはどちらも後輪に対応しているため、本体前...
・このロボットのモータAには左タイヤを、モータBにはアーム...
***ルート考案 [#e7b9a8ce]
&ref(2017b/Member/smith/Mission3/2017b-mission3.jpg,80%,...
・この班では、もともと2つある本体を分担させて、Aから出発...
・これにより、1台のみで課題を取り組まなければならなくなり...
1、Aから交差点Bあたりまで進んだ後、2回回転角・光センサ両...
2、紙コップをつかんだ後、Xの方向を向き、そのまま前進。
3、中のピンポン玉を出した後、このマップの範囲外の本体の...
4、排除後、中央上の紙コップの方向を向き、そのまま前進。...
5、中央上の紙コップをつかんだらXの方向を向き、そのまま前...
6、ピンポン玉をX内に出した後つかんでいる紙コップをYに運...
***紙コップを挟んで所定の位置で中にあるピンポン玉を出す機...
&ref(2017b/Member/smith/Mission3/kadai3-5.jpg,30%,本体の...
&ref(2017b/Member/smith/Mission3/kadai3-6.jpg,30%,上部);
&ref(2017b/Member/smith/Mission3/kadai3-10.jpg,30%,裏側);
&ref(2017b/Member/smith/Mission3/kadai3-9.jpg,30%,アーム...
・このアームの部分は今回一番苦戦した機構である。モータBが...
&ref(2017b/Member/smith/Mission3/kadai3-12.jpg,30%,つかむ...
&ref(2017b/Member/smith/Mission3/kadai3-14.jpg,30%,つかん...
&ref(2017b/Member/smith/Mission3/kadai3-13.jpg,30%,つかみ...
・これを作るのに結構な時間がかかり、また、この部分が簡単...
***紙コップの大まかな位置を特定する機構 [#d2f6f722]
&ref(2017b/Member/smith/Mission3/kadai3-7.jpg,30%,回転角...
&ref(2017b/Member/smith/Mission3/kadai3-4.jpg,30%,紙コッ...
&ref(2017b/Member/smith/Mission3/kadai3-11.jpg,30%,光セン...
・本体をより精密に紙コップの近くまで移動させるために回転...
・回転角を計るセンサは、上図右のように右側のタイヤのギア...
・光センサは、黒い半球状の摩擦軽減用の部品を取り付けた場...
**2、プログラム [#j397a269]
***基礎部分 [#qe275de4]
#define cup_getup OnFwd(OUT_B);Wait(15);Off(OUT_B);//紙...
#define cup_putdown OnRev(OUT_B);Wait(30);Off(OUT_B);//...
#define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);...
#define turn_left(s) OnFwd(OUT_C);OnRev(OUT_A);Wait(s);O...
・このロボットの基礎となるプログラムである。モータBが前回...
***紙コップを検知するサブルーチン [#p59fc8a7]
sub search_cup()
{
SetSensor(SENSOR_1,SENSOR_ROTATION);
SetSensor(SENSOR_2,SENSOR_LIGHT);
int sun_MAX = 100;//明るさの値であり、のちに値を下げ...
int sensor_MAX = 0;//回転の値であり、のちに上がって...
ClearSensor(SENSOR_1);
while(SENSOR_1 < 4)//回転センサーが4となるまで繰り返し
{
SetPower(OUT_AC,2);
OnFwd(OUT_A);
OnRev(OUT_C);
if(SENSOR_2 < sun_MAX)//もし明るさがそれまでに記...
{
sun_MAX = SENSOR_2;//最低の明るさを更新
sensor_MAX = SENSOR_1;//最低の明るさを記録し...
}
}
Off(OUT_AC);
Wait(100);
SetPower(OUT_AC,2);
OnRev(OUT_A);
OnFwd(OUT_C);
until(SENSOR_1 < sensor_MAX);//先ほど最低の明るさを...
Off(OUT_AC);
Wait(100);
OnFwd(OUT_AC);//紙コップがある方向に近づく
Wait(40);
Off(OUT_AC);
}
・本体の説明で記した通り紙コップを検知するためのサブルー...
***タスクメイン [#tdfc5132]
task main()
{ //手順1はじめ
OnFwd(OUT_AC);//A地点から1つ目の紙コップ付近まで近づく
Wait(140);
Off(OUT_AC);
int A;
for (A=1; A<=2; A++)//以下のことを2回繰り返し
{
SetPower(OUT_AC,2);
OnFwd(OUT_C);//紙コップを見つけるために一時的に...
OnRev(OUT_A);
Wait(20);
Off(OUT_AC);
Wait(100);
search_cup();//紙コップを見つけて紙コップに近づく
Wait(100);
} //手順1おわり
cup_getup;//手順2はじめ 紙コップをつかむ
turn_right(185);//紙コップをつかんだ地点で右旋回し、...
Wait(100);
OnFwd(OUT_AC);//X地点に近づく
Wait(50);
Off(OUT_AC); //手順2おわり
OnFwd(OUT_B);//手順3はじめ 紙コップを持ち上げる
OnRev(OUT_AC);//紙コップを持ち上げながら下がり、紙コ...
Wait(100);
Off(OUT_ABC);
Wait(100);
turn_left(150);//持っている紙コップを移動の邪魔にな...
Wait(100);
cup_putdown;//手順3おわり 紙コップをはなす
turn_right(155);//手順4はじめ 2つ目の紙コップの方向...
OnFwd(OUT_AC);//紙コップに近づく
Wait(140);
Off(OUT_AC);
turn_right(40);//紙コップがある方向を向くため右旋回
OnFwd(OUT_AC);//更に紙コップに近づく
Wait(40);
Off(OUT_AC);
int B;
for (B=1; B<=2; B++)//以下のことを2回繰り返し
{
SetPower(OUT_AC,2);
turn_left(20);//紙コップを見つけるために一時的に...
Wait(100);
search_cup();//紙コップを見つけて紙コップに近づく
Wait(100);
} //手順4おわり
cup_getup;//手順5はじめ 紙コップをつかむ
Off(OUT_AC);
Wait(100);
turn_right(160);//手順5おわり 紙コップをつかんだ地...
OnFwd(OUT_B);//手順6はじめ 紙コップを持ち上げる
OnRev(OUT_AC);//紙コップを持ち上げながら下がり、紙コ...
Wait(100);
Off(OUT_ABC);
turn_left(85);//X地点の方向を向いてる状態からY地点の...
OnFwd(OUT_AC);//Y地点に近づき、紙コップをY地点に置く
Wait(160);
Off(OUT_AC); //手順6おわり
}
・このロボットのタスクメインである。ロボット本体の説明の...
**3、実行結果と反省 [#w43dca6a]
・本体の説明で記したように、時間が足りなくてあまり本体を...
ページ名: