2015a/Member/KTY/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*目次 [#cd996728]
#contents
*課題の説明 [#e7d1f95d]
半径1m以内にある空き缶を探し、25cmの距離からボールを空き...
ただし最初に空き缶が25cm以内の距離にある場合は、30cmまで...
*ロボットの説明 [#m8e08e9b]
**本体 [#k95eb888]
&ref(./写真 2 (1).JPG,20%);
これが今回私たちのチームが制作したロボットである。~
アームでボールを囲み、空き缶の前まで運ぶ。
**アーム [#tf32c8b8]
***アーム1 [#l46722a4]
&ref(./image.jpeg,13%);
本体の下部にあり、ボールが外に出ないようにする役割をもつ。~
***アーム2 [#i6257fa7]
&ref(./写真 4.JPG,15%);
本体の上部にある。~
ボールを囲み、空き缶の手前まで運ぶためのもの。~
空き缶にボールを当てるときに開く。
*コンセプト [#xa432ce3]
&ref(./NX.png,50%);
まず超音波センサーで周囲360°をサーチし、最短距離にあるも...
サーチ終了後最短距離にあるものの方向を向き、距離に応じて...
最後にシュートして終了する。
*プログラム [#k483a0ef]
プログラムは以下の通りである。~
今回は配布資料と課題2を参考に、少し手を加えた。
***マクロ [#ebc1f78f]
#define speed 50
#define speed_slow 30
#define down OnFwd(OUT_A,40);Wait(500);Off(OUT_A);Wait(3...
#define up OnRev(OUT_A,40);Wait(500);Off(OUT_A);Wait(300...
#define goal OnRev(OUT_BC,50);Wait(500);Off(OUT_BC);Wait...
up;OnFwd(OUT_BC,80);Wait(300);Off(OUT_BC); ...
***サブルーチン・関数 [#b9609457]
const float diameter = 5.45;//タイヤの直径
const float track = 12.35; //タイヤ間の距離
const float pi = 3.1415;//π
void fwdDist(float d){//引数dの分だけ前進
long angle;
angle = d/(diameter*pi)*360.0;//d進むために必要な数a...
RotateMotorEx(OUT_BC,speed_slow,angle,0,true,true);/...
}
int searchDirection(long ang) [//最も近い物体を探す
long angle,tacho_min=0;
int d_min;
d_min=300;//仮の最小値を設定
angle = (track/diameter)*ang; //引数からモーターの回...
ResetTachoCount(OUT_BC); //角度のカウントをリセット
while(MotorTachoCount(OUT_B)<=angle){//angの範囲内で...
RotateMotorEx(OUT_BC,speed_slow,1,-100,true,true...
if(SensorUS(S1)<d_min){//それまでの最小値より近...
d_min=SensorUS(S1);//最小値を更新
tacho_min=MotorTachoCount(OUT_B);//最小値を...
}
}
RotateMotorEx(OUT_BC,speed_slow,angle-tacho_min,100,...
return d_min;//最小値を返す
}
***メイン [#g843a410]
task main(){
SetSensorLowspeed(S1);//超音波センサ
int d=searchDirection(360);
if(d>25){//物体が25cmより離れた距離にある場合
fwdDist(d-25.0);//25cm手前まで移動;
}
if(d<=25){//物体が25cm以内の距離にある場合
fwdDist(d-30.0);//30cm手前まで移動;
}
goal;
}
*結果 [#z5f77ff6]
無事に空き缶にボールを当てることができた。
*苦労したところ・反省点 [#r62b91e7]
**苦労したこと [#m5964f10]
配布資料に書いていないものが使われていたため、サンプルプ...
今回はサンプルプログラムが配布されたため、プログラミング...
またロボットについても課題2のものを流用しているため、特に...
**反省点 [#o162d167]
ロボットの重心がかなり前にあるのだが、時間に追われて改善...
プログラミングについては、サンプルプログラムをベースにし...
終了行:
*目次 [#cd996728]
#contents
*課題の説明 [#e7d1f95d]
半径1m以内にある空き缶を探し、25cmの距離からボールを空き...
ただし最初に空き缶が25cm以内の距離にある場合は、30cmまで...
*ロボットの説明 [#m8e08e9b]
**本体 [#k95eb888]
&ref(./写真 2 (1).JPG,20%);
これが今回私たちのチームが制作したロボットである。~
アームでボールを囲み、空き缶の前まで運ぶ。
**アーム [#tf32c8b8]
***アーム1 [#l46722a4]
&ref(./image.jpeg,13%);
本体の下部にあり、ボールが外に出ないようにする役割をもつ。~
***アーム2 [#i6257fa7]
&ref(./写真 4.JPG,15%);
本体の上部にある。~
ボールを囲み、空き缶の手前まで運ぶためのもの。~
空き缶にボールを当てるときに開く。
*コンセプト [#xa432ce3]
&ref(./NX.png,50%);
まず超音波センサーで周囲360°をサーチし、最短距離にあるも...
サーチ終了後最短距離にあるものの方向を向き、距離に応じて...
最後にシュートして終了する。
*プログラム [#k483a0ef]
プログラムは以下の通りである。~
今回は配布資料と課題2を参考に、少し手を加えた。
***マクロ [#ebc1f78f]
#define speed 50
#define speed_slow 30
#define down OnFwd(OUT_A,40);Wait(500);Off(OUT_A);Wait(3...
#define up OnRev(OUT_A,40);Wait(500);Off(OUT_A);Wait(300...
#define goal OnRev(OUT_BC,50);Wait(500);Off(OUT_BC);Wait...
up;OnFwd(OUT_BC,80);Wait(300);Off(OUT_BC); ...
***サブルーチン・関数 [#b9609457]
const float diameter = 5.45;//タイヤの直径
const float track = 12.35; //タイヤ間の距離
const float pi = 3.1415;//π
void fwdDist(float d){//引数dの分だけ前進
long angle;
angle = d/(diameter*pi)*360.0;//d進むために必要な数a...
RotateMotorEx(OUT_BC,speed_slow,angle,0,true,true);/...
}
int searchDirection(long ang) [//最も近い物体を探す
long angle,tacho_min=0;
int d_min;
d_min=300;//仮の最小値を設定
angle = (track/diameter)*ang; //引数からモーターの回...
ResetTachoCount(OUT_BC); //角度のカウントをリセット
while(MotorTachoCount(OUT_B)<=angle){//angの範囲内で...
RotateMotorEx(OUT_BC,speed_slow,1,-100,true,true...
if(SensorUS(S1)<d_min){//それまでの最小値より近...
d_min=SensorUS(S1);//最小値を更新
tacho_min=MotorTachoCount(OUT_B);//最小値を...
}
}
RotateMotorEx(OUT_BC,speed_slow,angle-tacho_min,100,...
return d_min;//最小値を返す
}
***メイン [#g843a410]
task main(){
SetSensorLowspeed(S1);//超音波センサ
int d=searchDirection(360);
if(d>25){//物体が25cmより離れた距離にある場合
fwdDist(d-25.0);//25cm手前まで移動;
}
if(d<=25){//物体が25cm以内の距離にある場合
fwdDist(d-30.0);//30cm手前まで移動;
}
goal;
}
*結果 [#z5f77ff6]
無事に空き缶にボールを当てることができた。
*苦労したところ・反省点 [#r62b91e7]
**苦労したこと [#m5964f10]
配布資料に書いていないものが使われていたため、サンプルプ...
今回はサンプルプログラムが配布されたため、プログラミング...
またロボットについても課題2のものを流用しているため、特に...
**反省点 [#o162d167]
ロボットの重心がかなり前にあるのだが、時間に追われて改善...
プログラミングについては、サンプルプログラムをベースにし...
ページ名: