2011a

メンバー

  • Chris
  • taka
  • okamoto
  • iso

課題内容 <サッカーロボットを作成せよ>

ルール説明

http://yakushi.shinshu-u.ac.jp/robotics/?2011a%2F%A5%ED%A5%DC%A5%B3%A5%F3

ロボット紹介

1号

1号-1

全体像です。

1号-2

この部分が回転することにより、ボールが発射されます。

1号-3

この空洞にボールを納めます。

1号-4

ここからボールを入れます。

1号-5

ボールの移動。

2号

2号-1

このアームが伸びて、ボールを押し出します。

2号-2

アームが伸びる仕組み。

2号-3

歯によって、アームを動かします。

プログラム

1号

define THRESHOLD2 50

int move_time ;
int turn_time ;
int lMax_1 = 0; //センサー1の一番高い値
int tMax_1 = 0; //センサー1が一番高い値を見た時間
int lMax_3 = 0; //センサー3の一番高い値
int tMax_3 = 0; //センサー3が一番高い値を見た時間
sub light() //ゴール探知
{
	Off(OUT_A+OUT_C);
	lMax_1 = 0;
	OnFwd(OUT_C);
	ClearTimer(0);
	while(FastTimer(0) < turn_time) //約360°回す
	{
	 	OnRev(OUT_A);
	 	//一番明るい方向を探知して、時間を記録する
	 	if(SENSOR_1 > lMax_1) {lMax_1 = SENSOR_1; tMax_1 = FastTimer(0);}
	}
	Off(OUT_A+OUT_C);
	lMax_3 = 0;
	OnFwd(OUT_C);
	ClearTimer(0);
	while(FastTimer(0) < turn_time) //約360°回す
	{
	 	OnRev(OUT_A);
	 	//一番明るい方向を探知して、時間を記録する
	 	if(SENSOR_3 > lMax_3) {lMax_3 = SENSOR_3; tMax_3 = FastTimer(0);}
	}
	OnFwd(OUT_A);
	OnRev(OUT_C);
	Wait(tMax_1-tMax_3); //ゴールの方向に回転
}
sub ball_shot() //ボールショット
{
	OnFwd(OUT_A); //左右に揺らす
	OnRev(OUT_C);
	Wait(2);
	Off(OUT_A+OUT_C);
	Wait(10);
	OnFwd(OUT_C);
	OnRev(OUT_A);
	Wait(2);
	Off(OUT_A+OUT_C);
	Wait(10);
	OnFwd(OUT_A);
	OnRev(OUT_C);
	Wait(2);
	Off(OUT_A+OUT_C);
	Wait(10);
	OnFwd(OUT_C);
	OnRev(OUT_A);
	Wait(2);
	Off(OUT_A+OUT_C);
	Wait(10);
	OnFwd(OUT_A); //前後に揺らす
	OnFwd(OUT_C);
	Wait(2);
	Off(OUT_A+OUT_C);
	Wait(10);
	OnRev(OUT_A);
	OnRev(OUT_C);
	Wait(2);
	Off(OUT_A+OUT_C);
	Wait(10);
	OnFwd(OUT_A);
	OnFwd(OUT_C);
	Wait(2);
	Off(OUT_A+OUT_C);
	Wait(10);
	OnRev(OUT_A);
	OnRev(OUT_C);
	Wait(2);
	Off(OUT_A+OUT_C);
	Wait(10);
	OnFwd(OUT_B); //アームを前後に揺らす
	Wait(1);
	OnRev(OUT_B);
	Wait(1);
	OnFwd(OUT_B);
	Wait(1);
	OnRev(OUT_B);
	Wait(1);
	Off(OUT_B);
	Wait(20);
	OnFwd(OUT_B); //投げる
	Wait(20);
	Off(OUT_B);
	Wait(20);
	OnRev(OUT_B); //アームを戻す
	Wait(20);
	Off(OUT_B);
	Wait(20);
}
task main()
{

	SetSensor(SENSOR_1,SENSOR_LIGHT); //それぞれの光センサーを設定
	SetSensor(SENSOR_2,SENSOR_LIGHT);
	SetSensor(SENSOR_3,SENSOR_LIGHT);
	SetPower(OUT_A+OUT_C,1); //パワーの設定


	move_time = 80 ;
	turn_time = 238 ;

	OnRev(OUT_A+OUT_C); //黒(円)まで後退
	until(SENSOR_2 < THRESHOLD2);

	OnRev(OUT_C); //白まで回転
	Off(OUT_A);
	until(SENSOR_2 > THRESHOLD2);

	OnRev(OUT_A+OUT_C); //黒(線)まで後退
	until(SENSOR_2 < THRESHOLD2);

	ClearTimer(0); // Timer(0) をリセット
	while ( Timer(0) <= move_time ) {
	if (SENSOR_2 < THRESHOLD2) { //センサーが黒のとき右に旋回
	OnRev(OUT_C);
	Off(OUT_A);
	} else { //センサーが白のとき左に旋回
	OnRev(OUT_A);
	Off(OUT_C);
	}
    }

	OnRev(OUT_C); //約90°回転
	Off(OUT_A);
	Wait(turn_time/4);

	OnRev(OUT_A+OUT_C); //前進
	Wait(50);

	Off(OUT_A+OUT_C); //積み込み時間
	Wait(600);

	OnFwd(OUT_A+OUT_C); //前進
	Wait(5);

	OnFwd(OUT_C); //回転
	OnRev(OUT_A);
	Wait(20);

	OnFwd(OUT_A+OUT_C); //黒まで前進
	until(SENSOR_2 < THRESHOLD2);

	OnFwd(OUT_A+OUT_C); //白まで前進
	until(SENSOR_2 > THRESHOLD2);

	move_time =30 ;

	ClearTimer(0); // Timer(0) をリセット
	while ( Timer(0) <= move_time ) {
	if (SENSOR_2 < THRESHOLD2) { //センサーが黒のとき左に旋回
	OnFwd(OUT_C);
	Off(OUT_A);
	} else { //センサーが白のとき右に旋回
	OnFwd(OUT_C);
	Off(OUT_A);
        }
   }

	OnFwd(OUT_C); //回転
	OnRev(OUT_A);
	Wait(20);

	OnFwd(OUT_A+OUT_C); //黒まで前進
	until(SENSOR_2 < THRESHOLD2);

	OnFwd(OUT_A+OUT_C); //白まで前進
	until(SENSOR_2 > THRESHOLD2);

	OnFwd(OUT_A+OUT_C); //前進
	Wait(20);

	light(); //ゴール探知

	ball_shot(); //発射
	
	OnFwd(OUT_A); //位置をずらす
	OnRev(OUT_C);
	Wait(2);

	ball_shot(); //発射
	
	OnFwd(OUT_C); //位置をずらす
	OnRev(OUT_A);
	Wait(4);

	ball_shot(); //発射
	
	OnFwd(OUT_A); //位置をずらす
	OnRev(OUT_C);
	Wait(2);

	ball_shot(); //発射
	
	OnFwd(OUT_A); //位置をずらす
	OnRev(OUT_C);
	Wait(2);

	Off(OUT_A+OUT_C); //停止
}

2号

task main()
{
OnRev(OUT_A+OUT_C);      //ラインまでさがる
Wait(150);
OnFwd(OUT_C);      //回転する
Wait(66);
OnRev(OUT_C);            //ボールの元へいく
Wait(215);
OnFwd(OUT_C);            //ボールを囲む壁の間に二号機のアームが入るようにする
Wait(62);
OnFwd(OUT_A);
Wait(30);
OnRev(OUT_A);
Wait(115);
OnFwd(OUT_A);
Wait(180);
Off(OUT_A+OUT_C);
Wait(100);
OnFwd(OUT_B);      //アームを出し一号機にボールを搭載させる
Wait(100);
Off(OUT_B);
}

 

ロボコンマップ

ロボコンマップ

コメント欄



添付ファイル: filerobocon-map.png 146件 [詳細] filerobo2-3.jpg 155件 [詳細] filerobo2-2.jpg 156件 [詳細] filerobo2-1.jpg 160件 [詳細] filerobo1-5.jpg 142件 [詳細] filerobo1-4.jpg 162件 [詳細] filerobo1-3.jpg 148件 [詳細] filerobo1-2.jpg 158件 [詳細] filerobo1-1.jpg 159件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-08-14 (日) 11:37:18