- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/MemberOnly/進行状況A]]
**もくじ [#u6ea9b80]
#contents
**製作メンバー [#ue686128]
ドラ・毛利・ポロリ・トラ・ヤマヒロ・サット・和知・モロ
ドラ・毛利・ポロリ・トラ・ヤマヒロ・サット・モロ・(和知)
**ロボット名 ロボコンキラー1号(試作品) (缶を運び出すマシン) [#f78f500e]
#ref(060801_164430.jpg)
**ロボット名 ロボコンキラー1号(改良版) [#c765a2d7]
#ref(DVC00001.JPG) [#u99fd4b7]
**ロボット名 ロボコンキラー1号(完成版) [#v8533b01]
#ref(060802_111111.jpg)
**ロボット名 ロボコンキラー2号(試作品)(缶をゴールに入れるマシン) [#t73bffbb]
#ref(060801%5f152250.jpg)
**ロボット名 ロボコンキラー2号(改良版) [#rbd581d3]
#ref(DVC00002.JPG)
**ロボット名 ロボコンキラー2号(完成版) [#y053ed85]
**ロボット制作者 和知&ポロリ&トラ&サット [#i3217109]
#ref(DVC00101.JPG)
**ロボット制作者 ポロリ&トラ&サット&ドラ&ヤマヒロ&モロ&毛利 [#i3217109]
**プログラム(缶を運び出す)制作者ドラ&ヤマヒロ[#r52818dc]
**プログラム(缶を運び出す)制作者ドラ&ヤマヒロ&トラ[#r52818dc]
#define straight OnFwd(OUT_A+OUT_C);
#define back OnRev(OUT_A+OUT_C);
#define turn_r OnFwd(OUT_C);OnRev(OUT_A);
#define turn_l OnFwd(OUT_A);OnRev(OUT_C);
#define off Off(OUT_A+OUT_C);
#define nomikomi OnRev(OUT_B);
#define hakidashi OnFwd(OUT_B);
task main()
{
Float(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C);
Float(OUT_A+OUT_C);
straight
Wait(60);
Off(OUT_A+OUT_C);
off
Wait(45);
OnRev(OUT_A+OUT_C);
back
Wait(40);
Off(OUT_A+OUT_C);
off
Wait(45);
SetSensor(SENSOR_2,SENSOR_TOUCH);
OnFwd(OUT_A+OUT_C);
OnRev(OUT_B);
straight
nomikomi
until(SENSOR_2==1);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
off
nomikomi
Wait(300);
OnRev(OUT_C+OUT_B+OUT_A);
Wait(150?);
back nomikomi
Wait(150);
Off(OUT_A+OUT_C+OUT_B);
Wait(50);
OnFwd(OUT_A);
OnRev(OUT_C);Wait(300?);
Off(OUT_A+OUT_C);
Wait(50?);
OnFwd(OUT_A+OUT_B);
OnRev(OUT_C);
Wait(100?);
Off(OUT_A+OUT_B+OUT_C);
turn_l
Wait(90);
off
Wait(50);
hakidashi turn_l
Wait(100);
Off(OUT_A+OUT_B+OUT_C);
ClearTimer(0);
while(FastTimer(0)<=500){SendMessage(1);}
if(Message()==2)
{OnRev(OUT_A);
OnFwd(OUT_C);
Wait(?);
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C);
OnRev(OUT_B);
while(Timer(0)<=500){SendMessage(1);}
if(Message()==2){
turn_r
Wait(100);
straight
nomikomi
until(SENSOR_2==1);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
off
nomikomi
Wait(300);
OnRev(OUT_C+OUT_B+OUT_A);
Wait(100?);
back nomikomi
Wait(200);
Off(OUT_A+OUT_C+OUT_B);
Wait(50);
OnFwd(OUT_A);
OnRev(OUT_C);Wait(300);
Off(OUT_A+OUT_C);
turn_l
Wait(78);
off
Wait(50);
OnFwd(OUT_A+OUT_B);
OnRev(OUT_C);
hakidashi turn_l
Wait(100);
Off(OUT_A+OUT_B+OUT_C);
ClearTimer(0);
while(FastTimer(0)<=500){SendMessage(3);}
if(Message()==4)
{OnRev(OUT_A);
OnFwd(OUT_C);
Wait(?);
OnFwd(OUT_A+OUT_C);
OnRev(OUT_B);
if(Message()==6){
turn_r
Wait(100);
straight
nomikomi
until(SENSOR_2==1);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
off
nomikomi
Wait(300);
OnRev(OUT_C+OUT_B+OUT_A);
Wait(100?);
back nomikomi
Wait(200);
Off(OUT_A+OUT_C+OUT_B);
Wait(50);
OnFwd(OUT_A);
OnRev(OUT_C);Wait(300);
Off(OUT_A+OUT_C);
turn_l
Wait(78);
off
Wait(50);
OnFwd(OUT_A+OUT_B);
OnRev(OUT_C);
hakidashi turn_l
Wait(100);
Off(OUT_A+OUT_B+OUT_C);
ClearTimer(0);
while(FastTimer(0)<=500){SendMessage(5);}}
while(FastTimer(0)<=500){SendMessage(5);}}}}
**プログラム(缶をゴールに入れる)制作者毛利&モロ [#ned659ea]
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);
ClearMessage();
until(Message() != 0);
if ( Message() == 1 )
OnFwd(OUT_A + OUT_C);
until(SENSOR_2 >= 1 );
Off(OUT_A + OUT_C);
Wait(100);
OnFwd(OUT_B);
Wait(300);
Off(OUT_B);
Wait(100);
OnRev(OUT_A + OUT_C);
Wait(300);
Off(OUT_A+OUT_C);
ClearTimer(0);
while ( Timer(0) <= 500 ) { SendMessage(2); }
Wait(500);
OnFwd(OUT_A);OnRev(OUT_C);
Wait(75);
OnFwd(OUT_A+OUT_C);
Wait(200);
OnFwd(OUT_C);OnRev(OUT_A);
Wait(75);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(300);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(300);
OnRev(OUT_A+OUT_C);
Wait(200);
OnFwd(OUT_C);OnRev(OUT_A);
Wait(100);
OnFwd(OUT_A+OUT_C);
Wait(200);
OnFwd(OUT_A);OnRev(OUT_C);
OnFwd(OUT_A + OUT_C);
until(SENSOR_2 >= 1 );
Off(OUT_A + OUT_C);
Wait(100);
OnFwd(OUT_B);
Wait(300);
Off(OUT_B);
Wait(100);
OnRev(OUT_A + OUT_C);
Wait(300);
Off(OUT_A+OUT_C);
ClearTimer(0);
while ( Timer(0) <= 500 ) { SendMessage(6); }
Wait(500);
OnFwd(OUT_A);OnRev(OUT_C);
Wait(75);
OnFwd(OUT_A+OUT_C);
Wait(200);
OnFwd(OUT_C);OnRev(OUT_A);
Wait(75);
Off(OUT_A+OUT_C);
OnRev(OUT_B);
Wait(300);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(300); }
**難しかった点 [#oa08f8e0]
今回はプログラムの制作がとてもむずかしかったです。
完全にあっているプログラムを打ち込んでいるはずなのになぜかエラーがでてしまい三時間ぐらいそれでなやまされました。
結局エラーの原因はわからず終いで仕方なくその部分を変えるをよぎなくされました。
それ以外にロボットの制作にかなり悩まされました。
缶をどのようにつかむかという難題にぶちあたり苦労しました。
それに缶を障害物を越えてゴールに入れるという部分が半端なく難しかったです。
マシンが普通に缶を押しても、缶の重さに押し負けるか、缶の表面を滑って乗り上げてしまうかの繰り返しでした。
その他には2つのロボット間の通信が僕らを苦しめました。
相互にメッセージを送るというプログラム自体は簡単でしたが、実際動かしてみると、全然意思疎通ができていないロボットのようにうごきました。
そして一番の難点が缶を運ぶ際に使うはずでアームが使えなかった事です。
僕らの班はモーターが一個潰れていて使い物にならなくなっていたので、それを補う為の代用的な部分を頑張って考えました。
それにしてもロボコンに間に合うのか本当に心配です!!!
**工夫した点 [#v764df1d]
*缶を運び出すマシンの工夫した点は障害物を除去するという方法をとったところです。
先端にあるチューブで缶を少しずつ動かし、巨大なタイヤで木の障害物をものともせず動くことができます。
またもう一つのマシンと通信もできるようにしたので缶を運んでいるときにもう一つのマシンがぶつかってくることがないようにしました。
また三輪車にしたのでマシンの軽量化とコンパクト化に成功しました。
これによりスムーズに動くという利点を獲得しました。
そして前の部分が異常なまでに重くなったので後ろに様々な部品をつけて重心ちょうど機体の真ん中にくるように設定しました。
#ref(060801_164509.jpg)
*缶をゴールに入れるマシンの工夫した点は缶を持ったまま横に曲がる時にどうしても缶がマシンからはなれてしまうのを防ぐために、タイヤをつけたことです。
このタイヤはマシンの上部につけられており、缶を上から押さえつけることでタイヤと缶の間に摩擦を生じさせ滑りにくくしています。
これにより缶は横に曲がるときにマシンから離れなくなりました。
その他には光センサーを二個使いマシンが進む経路をしっかり確立させました。
速度は遅いですがなんとかゴールたどり着くようになりました。
そして一番工夫したのが缶を上げるところです。言葉では言いにくいのですがテコの 原理のようなものを使って缶を挙げるようにしました。
あとライントレースするための線が十字にクロスしていたので、どのように光センサーをとりつけたらいいかかなり迷いました。
#ref(060801%5f154752.jpg)
**製作を終えて(あいうえお作文で表してみました。) [#g92efa5e]
ロ ウ力を使う作業だった。とても疲れました。
ボ ク達はみんなでなんとか力を合わせて製作を終えることができました。
コ ンドまたロボティクスをやることがあったら、今までの授業で溜めた知識を使いたいです。
ン 〜明日のロボコン頑張るぞーー!!!!!!!!
**感想&反省 [#bcd7a95d]
本当に疲れました〜。今までの課題を軽く上回る労働基準法に記載されている基準を軽く上回るくらい働きました。
まっみんなロボティクスが好きなので苦にはなりませんでした(笑)今回はかなりチームワークが重要になってきました。
誰がかけても今回の課題は完成しなかったと思います。話
#comment