課題3

半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作する。
ただしロボット本体が懐中電灯に接触しない限りどこからピンポン玉を放ってもよい。

ロボット

外観

1437722621344.jpg
1437722682817.jpg

ロボットの説明

本体の動きは冊子に乗っているロボットのを使用している。
ピンポン玉をつかんだり、放す動作をするために前の部分を改良した。
Bでタイヤを手前に回転し続けて、ピンポン玉に衝突すると内側に入るようになっている。
はなすときは、タイヤを逆回転させる。

プログラム

メイン

task main()
{
 SetSensor(SENSOR_2, SENSOR_LIGHT);
 int lightmax=0;  //明るさの最大値
 int tmax=0;   //一回転をした後、光源の位置に戻るために使用する
 ClearTimer(0);   //
 
 OnFwd (OUT_B);  //ボールをつかむ
 while (FastTimer(0)<=360) //最初に一回転するあいだ
 {
	 OnFwd(OUT_A);
	 OnRev(OUT_C);
	 if(lightmax<=SENSOR_2)//明るさの最大値がセンサーより低いとき
	 {
		 ClearTimer(1);//タイマー1をリセットし時間を計る
		 lightmax=SENSOR_2; //明るさの最大値を光センサーと同じにする
	 }	
	
 }
 tmax=FastTimer(1); //tmaxの値をタイマー1と同じにする
 ClearTimer(0);     //
 while (FastTimer(0)<=tmax)  //明るさが最大値の地点に戻る
 {
	 OnRev(OUT_A);
	 OnFwd(OUT_C);
 }
 Off(OUT_A);  //これより、停止しピンポン玉をうつ
 Off(OUT_C);
 OnRev(OUT_B);
 Wait(200);
 Off(OUT_B);
 }

説明

まず本体を一回転させる。その間に明るさの最大値があがるごとに、明るさの最大値を更新しそこからの時間を計る。
一回転が終わったら計った時間の分だけ逆回転し、ピンポン玉をはなす。

反省、感想

前のロボットと構造はあまり変わらないので今までと比べると苦労はしなかった。
プログラムは他のメンバーは音を鳴らしたりして工夫をしていたので、自分ももっと応用できるようになりたい。
今までの知識をいかしてロボコンを頑張りたい。


添付ファイル: file1437722682817.jpg 194件 [詳細] file1437722621344.jpg 159件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-08 (土) 13:25:35