課題1のプログラムのページ

このページは課題1の「プログラムの説明」と「個人的な感想」のページです。

プログラム

使用したプログラム

#define MOVE_T1 5		//モーターを動かす単位時間の設定

  //sub関数の定義
void up(){      	 	//up() == アームを上げる。
	OnFwd(OUT_B);
	Wait(75);	
	Off(OUT_B);}

void down(){      		//down() == アームを下げる。
	OnRev(OUT_B);
	Wait(75);	
	Off(OUT_B);}

void go_f(int i){    		//go_f( 整数値 ) == 整数値×MOVE_T1[時間]だけ前進する。
	OnFwd(OUT_A+OUT_C);
	Wait(i*MOVE_T1);
	Off(OUT_A+OUT_C);}

void go_r(int i){    	 	//go_f( 整数値 ) == 整数値×MOVE_T1[時間]だけ後進する。
	OnRev(OUT_A+OUT_C);
	Wait(i*MOVE_T1);
	Off(OUT_A+OUT_C);}
 
void turn_r(int i){    	//turn_r( 整数値 ) == 整数値×MOVE_T1[時間]だけ筆先を中心に右回転する。
	go_r(14);
	OnFwd(OUT_A);
	OnRev(OUT_C);
	Wait(i*MOVE_T1);
	Off(OUT_A+OUT_C);
	go_f(14);}

void turn_l(int i){       	//turn_l( 整数値 ) == 整数値×MOVE_T1[時間]だけ筆先を中心に左回転する。
	go_r(14);
	OnFwd(OUT_C);
	OnRev(OUT_A);
	Wait(i*MOVE_T1);
	Off(OUT_A+OUT_C);
	go_f(14);}
 
   //メイン関数
task main(){
	down();     		 //1画目
	go_f(6);
	up();

	turn_l(33);
	go_r(5);

	down();			 //2画目
	go_f(11);
	up();
 
	turn_l(22);

	down();	  		 //3画目
	OnRev(OUT_A+OUT_C);
	Float(OUT_A);
	Wait(18*MOVE_T1);
	On(OUT_A);
	Off(OUT_A+OUT_C);
	up();
	
	OnFwd(OUT_A+OUT_C);
	Float(OUT_A);
	Wait(7*MOVE_T1);
	On(OUT_A);
	Off(OUT_A+OUT_C);
	turn_l(16);
	
	down();        		 //4画目
	go_r(13);
	up();

	turn_r(4);
	go_f(17);
	turn_l(14);

	down();        		//5画目
	go_r(5);
	up();}

プログラムの説明

苦労した点

  1. 筆先の位置にロボットの回転中心が来るように前進する。
  2. ロボットが回転する。
  3. もとの位置に筆先が来るよう後進する。
    の3つの動作をセットにすることで「ロボットの動き」と「筆先の動き」を同じものにすることができました。

工夫した点

反省点

感想

リンク

ロボットの説明のページ
2006b/A4/課題1右

このページの制作者のページ
2006b/A4/a4r


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-11-24 (金) 00:59:11