*はじめに [#cbefb1e7]

今回の課題は半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作しなさい。 ただし、ピンポン玉を放つ距離は10〜30cmとする。 ロボット本体が懐中電灯に接触しない限りどこからピンポン玉を放ってもよい。
今回の課題は半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作しなさい。 ロボット本体が懐中電灯に接触しない限りどこからピンポン玉を放ってもよい。というものである。

*ロボットの説明 [#ze79dc49]

今回の課題で使ったロボットは、課題2で使用したロボットとだいたい同じものを使用した。

課題2で使用したロボットの赤外線センサーを前に向けた。

ボールを放つ部分も、課題2で使用したものと同じにした。

*プログラミングの説明 [#u00b7f05]

**定義 [#r831dfe9]
 
 #define turn_right OnFwd(OUT_A);OnRev(OUT_C);//右に曲がる
 #define turn_left OnFwd(OUT_C);OnRev(OUT_A);//左に曲がる
 #define runtime 360//本体が1回転する時間

**プログラミング [#j538e22c]

***ライトを捜しライトの方を向く [#wd29aaba]
 
 task main()
 {
  	 SetSensor(SENSOR_2,SENSOR_LIGHT);
	 int rightmax=0;
	 int timemax=0;
	 ClearTimer(0);
	 turn_left;//左に曲がる
	 while(FastTimer(0)<runtime){
	  if(SENSOR_2>rightmax){
	  rightmax=SENSOR_2;
	  timemax=FastTimer(0);
	  } 
	 } 

***ボールを放つ [#t8ac8d55]

	 Off(OUT_AC);
	 turn_right;右に曲がる
	 Wait(runtime-timemax);//1周の時間ーライトまでの時間
	 Off(OUT_AC);
	 OnRev(OUT_B);//つめを回す(ボールを放つ)
	 Wait(300);
	 Off(OUT_B);
 }

*感想・反省 [#r817ccee]

ロボット本体をつくるのは、課題2で使用したものの、赤外線センサーを前に向けただけだったので簡単だった。

ただ、プログラミングは難しくてよく分からなかった。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS