2005/C4

机のまわりをまわるプログラム

task main()
{
	SetSensor(SENSOR_1,SENSOR_TOUCH);    //常に壁に触れている方のセンサー
	SetSensor(SENSOR_3,SENSOR_TOUCH);    //方向転換するときに使用するセンサー
	
       OnFwd(OUT_A+OUT_C);
	until((SENSOR_1 == 0) && (SENSOR_3 == 0));
	Off(OUT_A);
	
       while (true)
	{
		if ((SENSOR_1 == 0) && (SENSOR_3 == 0))   //どちらのセンサーも壁に触れていない場合
		{
		  Off(OUT_A);   //センサーが壁に触れるまで壁に近づく
		  OnFwd(OUT_C);
		  until((SENSOR_1 == 1) && (SENSOR_3 == 0));   
		}
		if ((SENSOR_1 == 1) && (SENSOR_3 == 0))   //常に壁に触れている方のセンサーだけが壁に触れている場合
		{
		  OnFwd(OUT_A+OUT_C);   //直進する
		}
		if ((SENSOR_1 == 1) && (SENSOR_3 == 1))  //両方のセンサーが壁に触れた場合(方向転換)
		{  
		  OnRev(OUT_A+OUT_C);   //後ろに下がって、
		  Wait(70);
		  Off(OUT_C);
		  OnFwd(OUT_A);   //方向転換
		  Wait(220);
		}
	}
}

もう一つのプログラム

もう一つのプログラム

ロボットの説明

説明書に載っているダブルバンパーを作ってそれに高さと幅を加えただけの簡単なロボット。

このプログラムについて

このプログラムは壁に片方のセンサーが触れているときは直進し続けるように作ったため、方向転換のときに微調整が難しくて壁に突っ込んでばかりだった。少しずつ時間を調整していって、何とか完成した。

感想

片方のセンサーが壁に当たっているときにそのまま直進するプログラムと当たったら壁からはなれて離れすぎると戻るプログラムを作った。直進する方のプログラムは方向転換する時の時間の調整が大変だったが、もう一つのプログラムよりも速く机のまわりを一周するものができた。

  • もう少し説明が欲しいですね。 -- まいける(TA) 2005-12-02 (金) 18:59:59
  • 同上ですね。 -- かとりーぬ(TA)? 2005-12-02 (金) 19:22:46
  • 欲をいえば、ロボットの写真などがあるとよいかな?説明書を持っていないので、どんなロボか分からないです。 -- かとりーぬ(TA)? 2005-12-09 (金) 18:29:28


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-09 (金) 18:29:28 (4999d)