2016b/Member/aat/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*目次 [#p29d7ff8]
#contents
*課題 [#k9798d32]
#ref(./2016b-mission3.png,全体図)
最後の課題は、ピッチャーロボットはA地点からQ地点、バッタ...
&br;私たちはピッチャーロボを担当し、中でも私は移動のプロ...
*ロボットの説明 [#o3709025]
**全体像 [#z82ad345]
これがロボットの概観である。
#ref(./s_14084.jpg,全体像)
&br;タイヤは2つにして、後ろは滑るようになっている。
&br;進行方向に対して右側にボールを打ち出すようにしてある...
&br;これのおかげで、スタート地点から所定の位置に行くこと...
**投球部分 [#ve84eb1b]
ボールを投げる機構はこのようになっている。
#ref(./s_14086.jpg,ピッチング)
&br;
#ref(./s_14090.jpg,50,ピッチング)
黄色のブロック(以下ストッパー)はボールをせき止めて、下の2...
&br;&br;?初めはボールを積んだ状態で、ストッパーがせき止め...
&br;?モーターが回転することによってギアが回り、ストッパー...
&br;?ストッパーが奥に戻ると、同時にすべり台が下がってきて...
&br;&br;こんな感じである。
&br;すべり台のギアを小さくすることで、ストッパーの移動と...
*プログラムの説明 [#h51302c2]
サブルーチンで使用するものを以下のように定義した。
#define THROW_SIGNAL 100 //こちらが送る数字
#define BATTING_SIGNAL 200 //相手から送られてくる数字
...
#define CALL_SIGNAL 201 //こちらが送る数字
#define RESPONS_SIGNAL 101 //相手から送られてくる数字
...
これらはすべて、通信用の数字である。詳しくはこのあと説明...
**AからQ地点まで〜 [#t2eea11b]
まずAからQ地点まで行くプログラムである。
sub AtoQ()
{
SetSensor(SENSOR_2,SENSOR_ROTATION);
ClearSensor(SENSOR_2);
SetPower(OUT_C,4);
Wait(100);
PlaySound(SOUND_UP); //スタート音と重ならないよ...
OnFwd(OUT_B);
OnRev(OUT_C);
until(SENSOR_2==4); //回転センサが4になるまで...
Off(OUT_BC);
ClearSensor(SENSOR_2);
OnRev(OUT_BC);
until(SENSOR_2==-65); //回転センサが-65になるま...
Off(OUT_BC);
ClearSensor(SENSOR_2);
}
&br;スタートはA地点であるが、方向はB地点を向いているため...
&br;私たちの班では、最初の移動で光センサは使わずに、回転...
&br;それでもかなりの確率でベストポジションに行けたので、...
&br;Cだけパワーを抑えた理由は、それぞれを同じ力にするとB...
**通信のチェック [#oe871df0]
sub tsusin_check()
{
ClearMessage();
while(Message()!=RESPONS_SIGNAL){
Wait(40);
SendMessage(CALL_SIGNAL); //応答が来るま...
}
PlaySound(SOUND_UP); //応答が来たら...
}
これは通信ができるかチェックするプログラムである。
&br;こちらが通信を送り続け、向こうはこれを受け取ったら返...
&br;といった感じである。
&br;これが終われば、通信ができる状態になっているので、そ...
**ピッチング [#m7a0bab2]
sub pitching()
{
SetPower(OUT_A,0);
OnFwd(OUT_A);
Wait(20);
Off(OUT_A); //ストッパーが手前に移動し、ボールを...
Wait(60);
OnRev(OUT_A);
Wait(21);
Off(OUT_A); //ストッパーを戻し、ボールを転がす
}
これはピッチング自体のプログラムであり、後のプログラムに...
&br;ピッチングの方法の詳細は上で説明したため、ここでは省...
&br;パワーを最大限小さくして、激しい動きによる負荷を抑え...
sub tsusin_pitching()
{
ClearMessage();
while(Message()!=BATTING_SIGNAL){
Wait(30);
SendMessage(THROW_SIGNAL); //返答が来る...
}
PlaySound(SOUND_LOW_BEEP);
pitching(); //音を鳴ら...
}
そしてこれが通信部分を組み込んだプログラムである。
&br;原理は通信チェックと同じで、こちらが通信を送り続けて...
**メインプログラム [#u8c41483]
これがメインのプログラムである。
task main()
{
AtoQ(); //AからQへ移動
tsusin_check(); //通信のチェック
repeat(5){
tsusin_pitching();
} //ピッチングを5回繰り返す
}
task mainはとてもすっきりしたものになってよかった。複雑な...
&br;5回繰り返す部分は、単純にrepeatを用いた。
&br;ちなみにバッターロボのチームのHPは[[こちら:http://yak...
*結果 [#p5d15196]
私たちのグループは7チーム中4位であった。
&br;一回目はボールが詰まってしまって、思ったような結果が...
*反省点と感想 [#e52ae42f]
今回は最後の課題ということで、とても難易度が高かった(と思...
&br;この授業を通して、私はとても大きな達成感を感じられた...
&br;約5か月間、お疲れ様でした。
終了行:
*目次 [#p29d7ff8]
#contents
*課題 [#k9798d32]
#ref(./2016b-mission3.png,全体図)
最後の課題は、ピッチャーロボットはA地点からQ地点、バッタ...
&br;私たちはピッチャーロボを担当し、中でも私は移動のプロ...
*ロボットの説明 [#o3709025]
**全体像 [#z82ad345]
これがロボットの概観である。
#ref(./s_14084.jpg,全体像)
&br;タイヤは2つにして、後ろは滑るようになっている。
&br;進行方向に対して右側にボールを打ち出すようにしてある...
&br;これのおかげで、スタート地点から所定の位置に行くこと...
**投球部分 [#ve84eb1b]
ボールを投げる機構はこのようになっている。
#ref(./s_14086.jpg,ピッチング)
&br;
#ref(./s_14090.jpg,50,ピッチング)
黄色のブロック(以下ストッパー)はボールをせき止めて、下の2...
&br;&br;?初めはボールを積んだ状態で、ストッパーがせき止め...
&br;?モーターが回転することによってギアが回り、ストッパー...
&br;?ストッパーが奥に戻ると、同時にすべり台が下がってきて...
&br;&br;こんな感じである。
&br;すべり台のギアを小さくすることで、ストッパーの移動と...
*プログラムの説明 [#h51302c2]
サブルーチンで使用するものを以下のように定義した。
#define THROW_SIGNAL 100 //こちらが送る数字
#define BATTING_SIGNAL 200 //相手から送られてくる数字
...
#define CALL_SIGNAL 201 //こちらが送る数字
#define RESPONS_SIGNAL 101 //相手から送られてくる数字
...
これらはすべて、通信用の数字である。詳しくはこのあと説明...
**AからQ地点まで〜 [#t2eea11b]
まずAからQ地点まで行くプログラムである。
sub AtoQ()
{
SetSensor(SENSOR_2,SENSOR_ROTATION);
ClearSensor(SENSOR_2);
SetPower(OUT_C,4);
Wait(100);
PlaySound(SOUND_UP); //スタート音と重ならないよ...
OnFwd(OUT_B);
OnRev(OUT_C);
until(SENSOR_2==4); //回転センサが4になるまで...
Off(OUT_BC);
ClearSensor(SENSOR_2);
OnRev(OUT_BC);
until(SENSOR_2==-65); //回転センサが-65になるま...
Off(OUT_BC);
ClearSensor(SENSOR_2);
}
&br;スタートはA地点であるが、方向はB地点を向いているため...
&br;私たちの班では、最初の移動で光センサは使わずに、回転...
&br;それでもかなりの確率でベストポジションに行けたので、...
&br;Cだけパワーを抑えた理由は、それぞれを同じ力にするとB...
**通信のチェック [#oe871df0]
sub tsusin_check()
{
ClearMessage();
while(Message()!=RESPONS_SIGNAL){
Wait(40);
SendMessage(CALL_SIGNAL); //応答が来るま...
}
PlaySound(SOUND_UP); //応答が来たら...
}
これは通信ができるかチェックするプログラムである。
&br;こちらが通信を送り続け、向こうはこれを受け取ったら返...
&br;といった感じである。
&br;これが終われば、通信ができる状態になっているので、そ...
**ピッチング [#m7a0bab2]
sub pitching()
{
SetPower(OUT_A,0);
OnFwd(OUT_A);
Wait(20);
Off(OUT_A); //ストッパーが手前に移動し、ボールを...
Wait(60);
OnRev(OUT_A);
Wait(21);
Off(OUT_A); //ストッパーを戻し、ボールを転がす
}
これはピッチング自体のプログラムであり、後のプログラムに...
&br;ピッチングの方法の詳細は上で説明したため、ここでは省...
&br;パワーを最大限小さくして、激しい動きによる負荷を抑え...
sub tsusin_pitching()
{
ClearMessage();
while(Message()!=BATTING_SIGNAL){
Wait(30);
SendMessage(THROW_SIGNAL); //返答が来る...
}
PlaySound(SOUND_LOW_BEEP);
pitching(); //音を鳴ら...
}
そしてこれが通信部分を組み込んだプログラムである。
&br;原理は通信チェックと同じで、こちらが通信を送り続けて...
**メインプログラム [#u8c41483]
これがメインのプログラムである。
task main()
{
AtoQ(); //AからQへ移動
tsusin_check(); //通信のチェック
repeat(5){
tsusin_pitching();
} //ピッチングを5回繰り返す
}
task mainはとてもすっきりしたものになってよかった。複雑な...
&br;5回繰り返す部分は、単純にrepeatを用いた。
&br;ちなみにバッターロボのチームのHPは[[こちら:http://yak...
*結果 [#p5d15196]
私たちのグループは7チーム中4位であった。
&br;一回目はボールが詰まってしまって、思ったような結果が...
*反省点と感想 [#e52ae42f]
今回は最後の課題ということで、とても難易度が高かった(と思...
&br;この授業を通して、私はとても大きな達成感を感じられた...
&br;約5か月間、お疲れ様でした。
ページ名: