- 追加された行はこの色です。
- 削除された行はこの色です。
[[2009a]]へ
#contents
*ロボコン [#w553c1b8]
詳しくは[http://yakushi.shinshu-u.ac.jp/robotics/?2009a%2F%A5%ED%A5%DC%A5%B3%A5%F3 こちら]
*ロボコンの構想とか [#h1e55bd4]
**概要 [#pf6fa7b1]
-母艦を作って、その上に小型機を乗せる。
-牛乳パックの乗っている壁の、一か所だけ低くなっている部分(下図で言うと茶色の部分)まで来たら母艦から小型機を射出
-小型機は壁の向こう側で頑張る
**母艦(親機) [#d27c601c]
-親機の役目は子機を壁の向こう側まで送り込むことのみ
-親機にある程度の高さを持たせて、段差の上に橋を掛ける。その上を子機が渡る
**小型機(子機) [#z7700714]
-小型機の役目はパックをゴールの枠の中に入れること
-腕でパックを掴み、運搬する
**フィールド全体図 [#r08eac8a]
#ref(2009a/ロボコン/robocon2009a-1.png,100%,フィールド)
**構想についての話し合いの場(掲示板) [#rf976d8b]
- ロボコンの構想について話し合いの場作ってみた(`・ω・´)ゞ ピシッ! -- [[俺]] &new{2009-07-17 (金) 21:44:44};
- いつか集まりたいと思うけど、みんないつなら大丈夫? -- [[KEI]] &new{2009-07-23 (木) 22:15:10};
- ちなみに俺は7月31日と8月3、4日ならOK -- [[KEI]] &new{2009-07-23 (木) 22:16:40};
- 今のところ7/31〜8/5までは空いてる -- [[俺]] &new{2009-07-24 (金) 15:20:00};
~(この後、3,4あたりに集まることが決まる)
- 母艦がスタート側からパックを子機側に押し出して、子機の上にパックを落とし、運搬するやり方も -- [[俺]] &new{2009-07-24 (金) 17:43:12};
- 日曜はロッカーと教室開いてなかった(´・ω・`) 科学の祭典やってた -- [[俺]] &new{2009-08-02 (日) 09:56:20};
- 月曜日はロボットを大体完成させた。火曜日は主にプログラム -- [[俺]] &new{2009-08-04 (火) 11:11:29};
- 親機のプログラム完成 -- [[俺]] &new{2009-08-04 (火) 17:19:34};
#comment
~~
*全体図 [#q1b56577]
**親機 [#e240e1fc]
#ref(2009a/A5/ロボコン/oyaki01.jpg,100%,親機01)
-橋を掛けた状態
~
#ref(2009a/A5/ロボコン/oyaki02.jpg,100%,親機02)
-橋をしまった状態
*プログラム [#mf257811]
**親機 [#x1187374]
#define THERESHOLD 40
task main () //親機の動作
{
int kousa=0; //交差点の数を数える変数
SetSensor(SENSOR_2,SENSOR_TOUCH);
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while(true){
if (SENSOR_1<THERESHOLD){
if (SENSOR_3<THERESHOLD){
int GO=0; //子機への発進命令
SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1は光学センサー
SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー3は光学センサー
while(GO<1){
if (SENSOR_1>THERESHOLD){
if (SENSOR_3>THERESHOLD){
OnFwd(OUT_A+OUT_C);
} else {
Off(OUT_A);
OnFwd(OUT_C);
Off(OUT_C);
OnFwd(OUT_A);
}
} else {
if (SENSOR_3<THERESHOLD){
OnFwd(OUT_A);
Off(OUT_C);
if (SENSOR_3>THERESHOLD){
OnFwd(OUT_C);
Off(OUT_A);
} else { //交差点に突入
kousa=kousa+1;
if (kousa=1){
if (kousa==1){
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //前進
Wait(30);
Off(OUT_A+OUT_C);
}
if (kousa=2){
OnRev(OUT_A); //右折
OnFwd(OUT_C);
Wait(90);
if (kousa==2){
Off(OUT_A+OUT_C);
usetsu(); //右折
}
if (kousa==3){
Off(OUT_A+OUT_C);
usetsu(); //右折
OnFwd(OUT_A+OUT_C); //前進
Wait(100);
Off(OUT_A+OUT_C);
sasetsu(); //左折
OnFwd(OUT_A+OUT_C); //前進
Wait(30);
Off(OUT_A+OUT_C);
GO=1; //GOに1を代入
SendMessage(GO);
Wait(500);
OnRev(OUT_A+OUT_C); //後退
Wait(100);
Off(OUT_A+OUT_C);
}
}
}
}
}
sub usetsu() //右折
{
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(180);
Off(OUT_A+OUT_C);
}
sub sasetsu() //左折
{
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(180);
Off(OUT_A+OUT_C);
}
**子機 [#haae400a]
*コメントをどうぞ [#a4728fe5]
#comment