2015a/Member/Imanari/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*ロボット [#zea0dee9]
**概要 [#d921e400]
課題2とは違うロボットを製作した。
モーターの役割はそれぞれ
-A_ボールを転がり落とすためのアームを動かす。
-B_右タイヤを動かす
-C_左タイヤを動かす
ボールを当てる動作にはロボット上部に付けたアームから転が...
超音波センサーは本体の前方下部に取り付けた。
&ref(./DSC_0473.JPG,30%);
&ref(./DSC_0474.JPG,30%);
**工夫 [#i1b30e1b]
なるべくボールをバウンドさせずまっすぐ転がし、かつ勢いを...
*プログラム [#a735c86f]
**概要 [#gf055a2a]
#define short_break Off(OUT_ABC);Wait(5000);
sub find_can()
{
int rantime=7000; //1週するのにかかる時間
int lightmin=100; //仮の距離
int timemin=0; //仮の時間
int turn_time=rantime-timemin; //発見した缶の方を向く...
SetSensorLowspeed(S1);
long t0 = CurrentTick();
while(CurrentTick()-t0<rantime)
{
OnFwd(OUT_B,30);
OnRev(OUT_C,30); //左旋回
if(SensorUS(S1)<lightmin) //1メートル以内に缶があった...
{
lightmin=SensorUS(S1);
timemin=CurrentTick()-t0;
}
}
short_break;
OnFwd(OUT_B,-30);
OnRev(OUT_C,-30); //右旋回
Wait(turn_time); //缶のところまで戻る
short_break;
ResetSensor(S1);
}
sub approach_can() //缶との距離を25センチにする
{
SetSensorLowspeed(S1);
if(SensorUS(S1)>25)
{
OnFwd(OUT_BC,30);
until(SensorUS(S1)==25); //25センチより離れていたら前...
}
if(SensorUS(S1)<25)
{
OnRev(OUT_BC,30);
until(SensorUS(S1)==30);
Off(OUT_BC);
OnFwd(OUT_BC,30);
until(SensorUS(S1)==25); //25センチより...
}
}
task main()
{
find_can();
approach_can();
short_break;
OnFwd(OUT_A,30); //アームを降ろしてボールを転がす
Wait(500);
}
1メートル以内にある物体で最も近くにあるものを缶と認識する...
旋回して約360度見渡す間に100センチより近いところに物体が...
缶の位置を記憶するのに時間を用いた。グループのメンバーと...
**工夫 [#m2147982]
ぴったり360度回る時間を把握することはできなかったので、缶...
*結果 [#t2ec4fc1]
失敗に終わった。「缶のところまで戻る」動作がうまくいかな...
おそらくint turn_time を入れる場所が違ったのだと思う。
ロボットを返却した後なので試すことができないが以下のプロ...
#define short_break Off(OUT_ABC);Wait(5000);
sub find_can()
{
int rantime=7000; //1週するのにかかる時間
int lightmin=100; //仮の距離
int timemin=0; //仮の時間
SetSensorLowspeed(S1);
long t0 = CurrentTick();
while(CurrentTick()-t0<rantime)
{
OnFwd(OUT_B,30);
OnRev(OUT_C,30); //左旋回
if(SensorUS(S1)<lightmin) //1メートル以内に缶があった...
{
lightmin=SensorUS(S1);
timemin=CurrentTick()-t0;
}
}
int turn_time=rantime-timemin; //発見した缶の方を向く...
short_break;
OnFwd(OUT_B,-30);
OnRev(OUT_C,-30); //右旋回
Wait(turn_time); //缶のところまで戻る
short_break;
ResetSensor(S1);
}
sub approach_can() //缶との距離を25センチにする
{
SetSensorLowspeed(S1);
if(SensorUS(S1)>25)
{
OnFwd(OUT_BC,30);
until(SensorUS(S1)==25); //25センチより離れていたら前...
}
if(SensorUS(S1)<25)
{
OnRev(OUT_BC,30);
until(SensorUS(S1)==30);
Off(OUT_BC);
OnFwd(OUT_BC,30);
until(SensorUS(S1)==25); //25センチより...
}
}
task main()
{
find_can();
approach_can();
short_break;
OnFwd(OUT_A,30); //アームを降ろしてボールを転がす
Wait(500);
}
*苦労した点 [#zac108dc]
超音波センサーの最小値を更新するプログラムをどのようにwhi...
まっすぐ転がすためにアームを長くするのと自重でアームが降...
*感想 [#l87003de]
角度での缶の探し方はプリントが配られたので意地でも時間で...
もう一つどんな缶の発見の仕方があるか気になった。
終了行:
#contents
*ロボット [#zea0dee9]
**概要 [#d921e400]
課題2とは違うロボットを製作した。
モーターの役割はそれぞれ
-A_ボールを転がり落とすためのアームを動かす。
-B_右タイヤを動かす
-C_左タイヤを動かす
ボールを当てる動作にはロボット上部に付けたアームから転が...
超音波センサーは本体の前方下部に取り付けた。
&ref(./DSC_0473.JPG,30%);
&ref(./DSC_0474.JPG,30%);
**工夫 [#i1b30e1b]
なるべくボールをバウンドさせずまっすぐ転がし、かつ勢いを...
*プログラム [#a735c86f]
**概要 [#gf055a2a]
#define short_break Off(OUT_ABC);Wait(5000);
sub find_can()
{
int rantime=7000; //1週するのにかかる時間
int lightmin=100; //仮の距離
int timemin=0; //仮の時間
int turn_time=rantime-timemin; //発見した缶の方を向く...
SetSensorLowspeed(S1);
long t0 = CurrentTick();
while(CurrentTick()-t0<rantime)
{
OnFwd(OUT_B,30);
OnRev(OUT_C,30); //左旋回
if(SensorUS(S1)<lightmin) //1メートル以内に缶があった...
{
lightmin=SensorUS(S1);
timemin=CurrentTick()-t0;
}
}
short_break;
OnFwd(OUT_B,-30);
OnRev(OUT_C,-30); //右旋回
Wait(turn_time); //缶のところまで戻る
short_break;
ResetSensor(S1);
}
sub approach_can() //缶との距離を25センチにする
{
SetSensorLowspeed(S1);
if(SensorUS(S1)>25)
{
OnFwd(OUT_BC,30);
until(SensorUS(S1)==25); //25センチより離れていたら前...
}
if(SensorUS(S1)<25)
{
OnRev(OUT_BC,30);
until(SensorUS(S1)==30);
Off(OUT_BC);
OnFwd(OUT_BC,30);
until(SensorUS(S1)==25); //25センチより...
}
}
task main()
{
find_can();
approach_can();
short_break;
OnFwd(OUT_A,30); //アームを降ろしてボールを転がす
Wait(500);
}
1メートル以内にある物体で最も近くにあるものを缶と認識する...
旋回して約360度見渡す間に100センチより近いところに物体が...
缶の位置を記憶するのに時間を用いた。グループのメンバーと...
**工夫 [#m2147982]
ぴったり360度回る時間を把握することはできなかったので、缶...
*結果 [#t2ec4fc1]
失敗に終わった。「缶のところまで戻る」動作がうまくいかな...
おそらくint turn_time を入れる場所が違ったのだと思う。
ロボットを返却した後なので試すことができないが以下のプロ...
#define short_break Off(OUT_ABC);Wait(5000);
sub find_can()
{
int rantime=7000; //1週するのにかかる時間
int lightmin=100; //仮の距離
int timemin=0; //仮の時間
SetSensorLowspeed(S1);
long t0 = CurrentTick();
while(CurrentTick()-t0<rantime)
{
OnFwd(OUT_B,30);
OnRev(OUT_C,30); //左旋回
if(SensorUS(S1)<lightmin) //1メートル以内に缶があった...
{
lightmin=SensorUS(S1);
timemin=CurrentTick()-t0;
}
}
int turn_time=rantime-timemin; //発見した缶の方を向く...
short_break;
OnFwd(OUT_B,-30);
OnRev(OUT_C,-30); //右旋回
Wait(turn_time); //缶のところまで戻る
short_break;
ResetSensor(S1);
}
sub approach_can() //缶との距離を25センチにする
{
SetSensorLowspeed(S1);
if(SensorUS(S1)>25)
{
OnFwd(OUT_BC,30);
until(SensorUS(S1)==25); //25センチより離れていたら前...
}
if(SensorUS(S1)<25)
{
OnRev(OUT_BC,30);
until(SensorUS(S1)==30);
Off(OUT_BC);
OnFwd(OUT_BC,30);
until(SensorUS(S1)==25); //25センチより...
}
}
task main()
{
find_can();
approach_can();
short_break;
OnFwd(OUT_A,30); //アームを降ろしてボールを転がす
Wait(500);
}
*苦労した点 [#zac108dc]
超音波センサーの最小値を更新するプログラムをどのようにwhi...
まっすぐ転がすためにアームを長くするのと自重でアームが降...
*感想 [#l87003de]
角度での缶の探し方はプリントが配られたので意地でも時間で...
もう一つどんな缶の発見の仕方があるか気になった。
ページ名: