- 追加された行はこの色です。
- 削除された行はこの色です。
[[2011a]]
#contents
目次
*課題内容 [#wf02aa61]
**ランタンに向かってテニスボールを転がす(または運ぶ)ロボットの作成 [#f8eb0f78]
1転がす(ライントレース)~
2最短距離で運ぶ(自由走行)~
ロボットを作成せよ。ただし、1の場合はテニスボールの置いてある場所から直接転がし、 2の場合はその場所から最短距離で運ぶこと。ボールを探す際にはラインに沿っても沿わなくてもよい。
*メンバー [#kaa1df5d]
-中島
-すがはら
*今回のロボット [#o6433c71]
**タッチセンサー [#peff3869]
#ref(touch_sennsor2.JPG)
**アーム [#hefc2ca6]
#ref(arm.JPG)
-左右の歯車の数を変えることで左右のアームがそれぞれ異なる回転をするようにした。
#ref(gia_zoom.JPG)
-上から見た歯車部分。
#ref(gia_highview.JPG)
**全体図 [#oa9dd39e]
#ref(robotto.JPG)
-↓ライントレースのセンサーが前に付かなかったため後ろにつけた。
#ref(rign_sennsor.JPG)
*プログラム [#b9f2eb27]
**すがはらのやつ [#q90c65a8]
task main(){
SetSensor(SENSOR_2,SENSOR_LIGHT);
int l=0;
int l_max=0;
int t_max=0;
#define THRETHOLD 40 //ライントレースの閾値 40
#define SPIN 500 //一回転する時間
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH); //センサー1をタッチセンサーに
SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー2を光センサーに(ランタンを探す)
SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー3を光センサーに(ライントレース)
int l_max=0; //l_maxを定義(初期値0)
int t_max=0; //t_maxを定義(初期値0)
while(true){
start follow_line; //follow_lineのタスク(ライントレース)を開始
until (SENSOR_1==1); //ボールがセンサーに当たったら
stop follow_line; //follow_lineのタスクを一旦停止
OnFwd(OUT_B); //アームを閉じてボールを固定
Wait(10);
ClearTimer(0);
while(FastTimer(0)<=360)
while(FastTimer(0)<=SPIN)
{
OnFwd(OUT_A);
OnRev(OUT_C);
if(SENSOR_2>l_max)
{l_max=SENSOR_2;
t_max=FastTimer(0);}
OnRev(OUT_C); //回転開始
if(SENSOR_2>l_max) //ランタンの位置(光の最大値)を探す
{l_max=SENSOR_2; //最大値をl_maxと定義
t_max=FastTimer(0);} //ランタンを見つけた時間をt_maxと定義
}
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(360-t_max);
OnRev(OUT_A);
Wait(SPIN-t_max); //ランタンの向きへ方向転換
Off(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_B);
Wait(20); //アームを開き、ボールを蹴り出す準備
Off(OUT_B);
Wait(50);
OnFwd(OUT_A+OUT_C);
Wait(50); //キック!!
Off(OUT_A+OUT_C);
}
OnRev(OUT_A+OUT_C);
Wait(50); //元の位置に戻る
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(SPIN-t_max); //元の向きに戻る
} //while文の先頭に戻って再びライントレースを開始
}
task follow_line() //follow_lineのタスク(ライントレース)
{
while(true){
if(SENSOR_3<THRETHOLD) //センサーがライン上(黒)のとき
{OnFwd(OUT_A); Off(OUT_C);} //右に曲がる
if(SENSOR_3>THRETHOLD) //センサーがライン外(白)のとき
{OnFwd(OUT_C); Off(OUT_A);} //左に曲がる
}
}
**中島のやつ [#ucba0017]
*反省・感想 [#a2189b7b]
*コメント [#hdddc3c7]
#comment