2016a/Member/rin331/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
*目次 [#i0d6b39b]
#contents
*はじめに [#xf9492f0]
今回の課題はかなり試行錯誤したため使わなくなった機体シス...
それらも紹介しなければ、せっかく作ったのにかわいそうなの...
&size(30){[[過去の遺産:http://yakushi.shinshu-u.ac.jp/rob...
*課題と自分チームの考え [#ae5afe92]
今回の課題3は模擬的なロボコンということで2つのマイコンを...
自分たちのチームは
&color(red){1つのロボットのみ};
でほぼ全体の処理を行う。&br;
%%のこりの1つは音楽でも流せればよかったなぁ。%%
今回このような形になった理由には2つ理由が存在する。&br;
1つ目 センサーが1つに集結させることができ、より正確な動...
2つ目 3つのモータで処理全体がカバーできた&br;
これらの理由から一体型でなくても処理できると判断したため...
*機体の説明 [#b380836f]
説明が細分化するため分けて記述する。
**全体像 [#t48321e5]
全体像としてこんな感じになっている。
先ほど書いたがマイコンは1つだ。&br;
&ref(./機体01.jpg,45%,機体画像 全体);
**パーツ [#kff1a7ff]
パーツとしては&br;
・車体&br;
・紙コップ処理部分&br;
・マイコン &br;
&ref(./機体02.jpg,45%,機体画像 パーツ);&br;
の3つとなる。
**タイヤ [#y3831b02]
タイヤの幅はライントレースをするため、できる限り狭くなっ...
また、前回先生にアドバイスをもらった通りタイヤは薄いもの...
&ref(./機体03.jpg,45%,機体画像 タイヤ);
**センサ [#rbf386e7]
センサに関しては&br;
1.光センサ (ラントレース)&br;
2.光センサ (紙コップがあるのかの判定)&br;
3.タッチセンサ (上下にどこまで上がっているのかの判別...
の3つを使用していた。&br;
画像はよいモノがなかったのでなし。
&color(red){しかしこのうち2は本番では目標が一個だったた...
ちなみに最終的には使わなかった2だが、&br;
書いてある通り紙コップが手前にあるかを判定しているが最初...
判別しようとした。だが実際はなにもない空間だと黒に近い値...
%%コップは買いなおした。(140円)%%
**上下の動作と掴む動作を1つのモータで行うシステム [#b7a9...
今回の機体の一番大変だった部分である。&br;
なお正直自分のみで説明が十分できる自信がないと思うので制...
製作者:「[[RaikouRK:http://yakushi.shinshu-u.ac.jp/robot...
簡単な概要としては画像のように&br;
&ref(./機体04.jpg,45%,機体画像 掴むシステム);&br;
青が動力でそのまま赤Aへと繋がっている。&br;
その後、BCと繋がっているがCは開く、閉じるが限界までいくと...
そうするとBのみが動き今度は上昇、下降するという動きに変化...
*プログラムの仕組みについて [#c50d9608]
今回のプログラムは過去最大のためもちろん分けて話す。&br;
また今回はプログラムをパーツ化し、分担し作ろうということ...
そのためそのプログラムはだれが作ったのかも記述する。
**レース用プログラム [#md0edf53]
製作者:「[[RaikouRK:http://yakushi.shinshu-u.ac.jp/robot...
彼には悪いが省略 読みたきゃ過去の自分のを見てほしい。
**紙コップを保持を(上げる,)下げる、保持するプログラム[#lc...
製作者:「自分」と「[[jake57:http://yakushi.shinshu-u.ac....
sub down()
//下に下げる動作
{
OnRev(OUT_B);
Wait(200);
}
task keep()
//上でキープしておくただし、ラインとレースと並列動作させ...
{
while(1)
{
OnRev(OUT_B);
Wait(1);
OnFwd(OUT_B);
Wait(3);
}
}
後述するといった紙コップをどう維持するかというプログラム...
コメント文でも定義しているが、これはtask定義でライントレ...
これによって遠心力などで紙コップが外れることはなく安心だ...
またプログラム全体像で見ればわかるがup()というサブルーチ...
これは制作時subの製作限界数を超えたからだ。&br;
ちなみにWait()の1:3は手作業で求めた。
**180度回転するプログラム [#x12ea7d4]
製作者:「[[Yamada:http://yakushi.shinshu-u.ac.jp/robotic...
sub TURN_180()
//180ど回転
{
OnFwd(OUT_AC);
Wait(70);
Off(OUT_AC);
OnRev(OUT_A);
Wait(125);
while(SENSOR_1>40)
{
OnFwd(OUT_C);
OnRev(OUT_A);
}
Off(OUT_AC);
}
説明として180度回転と書いているが実際にしていることは少し...
まず3行で後ろに後退する。&br;
その後Aのモータのみ一定時間動かし回転し、その後センサが一...
一見して簡単なプログラムだがこのプログラムの凝っている点...
一回目と二回目で回転の半径が違うという点だ!&br;
これによって大きな回転でだいたいの位置を決め、&br;
小さな回転で正確な位置を決めるということを可能にしている。
*プログラムの全体 [#wf4f2eaf]
前日まで機体の改良をしたため、最終目標は1個だけになって...
(しかもそれすらできなかった。)
#define Middle 45 //ライントレース用 (中央値)
task main()
{
setting();//初期設定(センサ、モータ)
//////////////////////////////////////Cへ移動
STARTING_OPERATION();//四角い枠から脱出
repeat(2)
{
TRACE();
zensin();
}
//交差点からCへ向かう
TRACE();
OnRev(OUT_C);
Wait(25);
TRACE();
//誤差修正
OnRev(OUT_A);
Wait(95);
Off(OUT_AC);
////////////////////////////////////////Cに到着
OnFwd(OUT_B);//コップつかむ
Wait(250);//上に上げる
start keep;//紙コップの保持
TURN_180();//反転
OnFwd(OUT_A);//Qの方向を向く
OnRev(OUT_C);
Wait(200);
Off(OUT_AC);
OnRev(OUT_AC);//進む
Wait(100);
Off(OUT_AC);
//センサー使って進む
while(SENSOR_1 > Middle-4)
OnRev(OUT_AC);
stop keep;
//放す
Off(OUT_AC);
down();
}
sub setting()
{
//初期設定(パワー、センサー)
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);//モータB止める用
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetPower(OUT_AC,4);//タイヤ
SetPower(OUT_B,7);//上下、開き
}
sub zensin()
//プログラム名は前進だがライントレース終了後右にずれるた...
{
OnRev(OUT_A);
Wait(106);
Off(OUT_A);
}
sub copjugde()//*使ってない
//コップが前にくるまで前進(過去の遺産で説明)
{
while(SENSOR_3 < 46)
OnRev(OUT_AC);
Off(OUT_AC);
Wait(100);
}
task keep()
//上でキープしておくただし、ラインとレースと並列動作させ...
{
while(1)
{
OnRev(OUT_B);
Wait(1);
OnFwd(OUT_B);
Wait(1);
}
}
sub TRACE()
//トレース用メソッド
{
ClearTimer(0);
while(FastTimer(0)<=42){
if(SENSOR_1>Middle+4)//白 左旋回
{
OnFwd(OUT_C);
OnRev(OUT_A);
ClearTimer(0);
}
else if(SENSOR_1>Middle+2)//やや白 左折
{
Off(OUT_C);
OnRev(OUT_A);
ClearTimer(0);
}
else if(SENSOR_1>Middle)//直進
{
OnRev(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_1>Middle-2)//やや黒 右折
{
Off(OUT_A);
OnRev(OUT_C);
}
else //黒 右旋回
{
OnFwd(OUT_A);
OnRev(OUT_C);
}
}
Off(OUT_AC);
PlaySound(SOUND_FAST_UP);//トレース終了、交差点認識
}
sub down()
//下に下げる動作
{
OnRev(OUT_B);
Wait(200);
}
sub STARTING_OPERATION()
//スタート地点の四角から脱出する
{
while(SENSOR_1<Middle)
{
OnRev(OUT_AC);
}
while(SENSOR_1>Middle)
{
OnRev(OUT_AC);
}
OnRev(OUT_AC);
Wait(50);
Off(OUT_C);
OnRev(OUT_A);
Wait(40);
while(SENSOR_1<Middle)
{
OnRev(OUT_AC);
}
Off(OUT_AC);
}
sub TURN_180()
{
OnFwd(OUT_AC);
Wait(80);
Off(OUT_AC);
OnRev(OUT_A);
Wait(130);
while(SENSOR_1>40)
{
OnFwd(OUT_C);
OnRev(OUT_A);
}
Off(OUT_AC);
}
*3と全体の反省 [#z129e537]
**課題3 [#uea947e5]
やはり人数6人でやるということで規模も大きい、大変な期間...
また、とりあえず作ってみようと言う形で、最初から6個を目...
結果はかわったかもしれない。&br;
ほかのチームを見ると、やはりシンプルな作りが高得点になっ...
これはシンプルにすればするほど機体自体のミスが減るととも...
そう考えると、自分たちのマイコン1つでやるという考えも間...
(完成できなかったのだからそれ以上は何もいえないが...)&br;
**全体の感想 [#kd8780fa]
とにかくつらいゼミだったというのが最初の感想。&br;
もちろん、それをわかった上で自分の意思でやったので自己責...
だがこのゼミでは自分は機体の改善の大切さを知ることができ...
プログラムでは改善が難しいモノでも、タイヤやセンサの角度...
かえることができる。つまりは別の視点で改善ができないか考...
また、もう一つこのゼミで重要だと思ったのが、チームワーク...
プログラムはもちろん一人で書かなければいけないが、みんな...
機体は一人では出ないアイデアでもみんなで考えればいいアイ...
まとめると、今回のゼミでは自分が思っていた力とは別の力が...
そのため大変だったが、楽しくもあったと思う。
終了行:
[[2016a/Member]]
*目次 [#i0d6b39b]
#contents
*はじめに [#xf9492f0]
今回の課題はかなり試行錯誤したため使わなくなった機体シス...
それらも紹介しなければ、せっかく作ったのにかわいそうなの...
&size(30){[[過去の遺産:http://yakushi.shinshu-u.ac.jp/rob...
*課題と自分チームの考え [#ae5afe92]
今回の課題3は模擬的なロボコンということで2つのマイコンを...
自分たちのチームは
&color(red){1つのロボットのみ};
でほぼ全体の処理を行う。&br;
%%のこりの1つは音楽でも流せればよかったなぁ。%%
今回このような形になった理由には2つ理由が存在する。&br;
1つ目 センサーが1つに集結させることができ、より正確な動...
2つ目 3つのモータで処理全体がカバーできた&br;
これらの理由から一体型でなくても処理できると判断したため...
*機体の説明 [#b380836f]
説明が細分化するため分けて記述する。
**全体像 [#t48321e5]
全体像としてこんな感じになっている。
先ほど書いたがマイコンは1つだ。&br;
&ref(./機体01.jpg,45%,機体画像 全体);
**パーツ [#kff1a7ff]
パーツとしては&br;
・車体&br;
・紙コップ処理部分&br;
・マイコン &br;
&ref(./機体02.jpg,45%,機体画像 パーツ);&br;
の3つとなる。
**タイヤ [#y3831b02]
タイヤの幅はライントレースをするため、できる限り狭くなっ...
また、前回先生にアドバイスをもらった通りタイヤは薄いもの...
&ref(./機体03.jpg,45%,機体画像 タイヤ);
**センサ [#rbf386e7]
センサに関しては&br;
1.光センサ (ラントレース)&br;
2.光センサ (紙コップがあるのかの判定)&br;
3.タッチセンサ (上下にどこまで上がっているのかの判別...
の3つを使用していた。&br;
画像はよいモノがなかったのでなし。
&color(red){しかしこのうち2は本番では目標が一個だったた...
ちなみに最終的には使わなかった2だが、&br;
書いてある通り紙コップが手前にあるかを判定しているが最初...
判別しようとした。だが実際はなにもない空間だと黒に近い値...
%%コップは買いなおした。(140円)%%
**上下の動作と掴む動作を1つのモータで行うシステム [#b7a9...
今回の機体の一番大変だった部分である。&br;
なお正直自分のみで説明が十分できる自信がないと思うので制...
製作者:「[[RaikouRK:http://yakushi.shinshu-u.ac.jp/robot...
簡単な概要としては画像のように&br;
&ref(./機体04.jpg,45%,機体画像 掴むシステム);&br;
青が動力でそのまま赤Aへと繋がっている。&br;
その後、BCと繋がっているがCは開く、閉じるが限界までいくと...
そうするとBのみが動き今度は上昇、下降するという動きに変化...
*プログラムの仕組みについて [#c50d9608]
今回のプログラムは過去最大のためもちろん分けて話す。&br;
また今回はプログラムをパーツ化し、分担し作ろうということ...
そのためそのプログラムはだれが作ったのかも記述する。
**レース用プログラム [#md0edf53]
製作者:「[[RaikouRK:http://yakushi.shinshu-u.ac.jp/robot...
彼には悪いが省略 読みたきゃ過去の自分のを見てほしい。
**紙コップを保持を(上げる,)下げる、保持するプログラム[#lc...
製作者:「自分」と「[[jake57:http://yakushi.shinshu-u.ac....
sub down()
//下に下げる動作
{
OnRev(OUT_B);
Wait(200);
}
task keep()
//上でキープしておくただし、ラインとレースと並列動作させ...
{
while(1)
{
OnRev(OUT_B);
Wait(1);
OnFwd(OUT_B);
Wait(3);
}
}
後述するといった紙コップをどう維持するかというプログラム...
コメント文でも定義しているが、これはtask定義でライントレ...
これによって遠心力などで紙コップが外れることはなく安心だ...
またプログラム全体像で見ればわかるがup()というサブルーチ...
これは制作時subの製作限界数を超えたからだ。&br;
ちなみにWait()の1:3は手作業で求めた。
**180度回転するプログラム [#x12ea7d4]
製作者:「[[Yamada:http://yakushi.shinshu-u.ac.jp/robotic...
sub TURN_180()
//180ど回転
{
OnFwd(OUT_AC);
Wait(70);
Off(OUT_AC);
OnRev(OUT_A);
Wait(125);
while(SENSOR_1>40)
{
OnFwd(OUT_C);
OnRev(OUT_A);
}
Off(OUT_AC);
}
説明として180度回転と書いているが実際にしていることは少し...
まず3行で後ろに後退する。&br;
その後Aのモータのみ一定時間動かし回転し、その後センサが一...
一見して簡単なプログラムだがこのプログラムの凝っている点...
一回目と二回目で回転の半径が違うという点だ!&br;
これによって大きな回転でだいたいの位置を決め、&br;
小さな回転で正確な位置を決めるということを可能にしている。
*プログラムの全体 [#wf4f2eaf]
前日まで機体の改良をしたため、最終目標は1個だけになって...
(しかもそれすらできなかった。)
#define Middle 45 //ライントレース用 (中央値)
task main()
{
setting();//初期設定(センサ、モータ)
//////////////////////////////////////Cへ移動
STARTING_OPERATION();//四角い枠から脱出
repeat(2)
{
TRACE();
zensin();
}
//交差点からCへ向かう
TRACE();
OnRev(OUT_C);
Wait(25);
TRACE();
//誤差修正
OnRev(OUT_A);
Wait(95);
Off(OUT_AC);
////////////////////////////////////////Cに到着
OnFwd(OUT_B);//コップつかむ
Wait(250);//上に上げる
start keep;//紙コップの保持
TURN_180();//反転
OnFwd(OUT_A);//Qの方向を向く
OnRev(OUT_C);
Wait(200);
Off(OUT_AC);
OnRev(OUT_AC);//進む
Wait(100);
Off(OUT_AC);
//センサー使って進む
while(SENSOR_1 > Middle-4)
OnRev(OUT_AC);
stop keep;
//放す
Off(OUT_AC);
down();
}
sub setting()
{
//初期設定(パワー、センサー)
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);//モータB止める用
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetPower(OUT_AC,4);//タイヤ
SetPower(OUT_B,7);//上下、開き
}
sub zensin()
//プログラム名は前進だがライントレース終了後右にずれるた...
{
OnRev(OUT_A);
Wait(106);
Off(OUT_A);
}
sub copjugde()//*使ってない
//コップが前にくるまで前進(過去の遺産で説明)
{
while(SENSOR_3 < 46)
OnRev(OUT_AC);
Off(OUT_AC);
Wait(100);
}
task keep()
//上でキープしておくただし、ラインとレースと並列動作させ...
{
while(1)
{
OnRev(OUT_B);
Wait(1);
OnFwd(OUT_B);
Wait(1);
}
}
sub TRACE()
//トレース用メソッド
{
ClearTimer(0);
while(FastTimer(0)<=42){
if(SENSOR_1>Middle+4)//白 左旋回
{
OnFwd(OUT_C);
OnRev(OUT_A);
ClearTimer(0);
}
else if(SENSOR_1>Middle+2)//やや白 左折
{
Off(OUT_C);
OnRev(OUT_A);
ClearTimer(0);
}
else if(SENSOR_1>Middle)//直進
{
OnRev(OUT_AC);
ClearTimer(0);
}
else if(SENSOR_1>Middle-2)//やや黒 右折
{
Off(OUT_A);
OnRev(OUT_C);
}
else //黒 右旋回
{
OnFwd(OUT_A);
OnRev(OUT_C);
}
}
Off(OUT_AC);
PlaySound(SOUND_FAST_UP);//トレース終了、交差点認識
}
sub down()
//下に下げる動作
{
OnRev(OUT_B);
Wait(200);
}
sub STARTING_OPERATION()
//スタート地点の四角から脱出する
{
while(SENSOR_1<Middle)
{
OnRev(OUT_AC);
}
while(SENSOR_1>Middle)
{
OnRev(OUT_AC);
}
OnRev(OUT_AC);
Wait(50);
Off(OUT_C);
OnRev(OUT_A);
Wait(40);
while(SENSOR_1<Middle)
{
OnRev(OUT_AC);
}
Off(OUT_AC);
}
sub TURN_180()
{
OnFwd(OUT_AC);
Wait(80);
Off(OUT_AC);
OnRev(OUT_A);
Wait(130);
while(SENSOR_1>40)
{
OnFwd(OUT_C);
OnRev(OUT_A);
}
Off(OUT_AC);
}
*3と全体の反省 [#z129e537]
**課題3 [#uea947e5]
やはり人数6人でやるということで規模も大きい、大変な期間...
また、とりあえず作ってみようと言う形で、最初から6個を目...
結果はかわったかもしれない。&br;
ほかのチームを見ると、やはりシンプルな作りが高得点になっ...
これはシンプルにすればするほど機体自体のミスが減るととも...
そう考えると、自分たちのマイコン1つでやるという考えも間...
(完成できなかったのだからそれ以上は何もいえないが...)&br;
**全体の感想 [#kd8780fa]
とにかくつらいゼミだったというのが最初の感想。&br;
もちろん、それをわかった上で自分の意思でやったので自己責...
だがこのゼミでは自分は機体の改善の大切さを知ることができ...
プログラムでは改善が難しいモノでも、タイヤやセンサの角度...
かえることができる。つまりは別の視点で改善ができないか考...
また、もう一つこのゼミで重要だと思ったのが、チームワーク...
プログラムはもちろん一人で書かなければいけないが、みんな...
機体は一人では出ないアイデアでもみんなで考えればいいアイ...
まとめると、今回のゼミでは自分が思っていた力とは別の力が...
そのため大変だったが、楽しくもあったと思う。
ページ名: