2015a/Member

課題1

目標

名前の中の一文字「青」をA4用紙の中に書く、 ただし7画以上の文字を選ぶ。

機体説明

アームを一つ使って文字を書く。車体を自在に動けるようにすることで、いろんな文字に対応できようにした。また、ペンの取り付けを簡単にするために、固定の方法を輪ゴムを使用せず、物に挟んで固定する方法をとった。

IMG_3165.JPG

プログラム

//////////////////サブルーチン///////////////////

//前進させる
sub Foward(int Fdist){
	RotateMotor(OUT_BC,70,Fdist);
}

//後退させる
sub Back(int Bdist){
	RotateMotor(OUT_BC,-70,Bdist);
}

//超信地旋回
void Turn(){
	RotateMotorEx(OUT_BC,70,356,100,true,true);
}

//改行させる(縦)
void NextLine(){
	RotateMotorEx(OUT_BC,70,356,-100,true,true);
	RotateMotor(OUT_BC,70,60);
	RotateMotorEx(OUT_BC,70,356,100,true,true);
}

//改行させる(横)
void NextLine2(){
	RotateMotorEx(OUT_BC,70,356,100,true,true);
	RotateMotor(OUT_BC,70,60);
	RotateMotorEx(OUT_BC,70,356,-100,true,true);
}

//線を引く
sub WriteLine(int Wdist){
	RotateMotor(OUT_A,20,154);
	RotateMotor(OUT_BC,-70,Wdist);
	RotateMotor(OUT_A,-50,150);
}


/////////////////   メイン   ////////////////////


task main() {

//水平方向の一番上の段から書いていく

	WriteLine(500);
	NextLine();
	Foward(400);
	WriteLine(300);
	NextLine();
	Foward(500);
	WriteLine(1000);
	NextLine();
	Foward(550);
	WriteLine(400);
	NextLine();
	Foward(400);
	WriteLine(400);

//垂直方向の一番左から書く

	Foward(1350);
	PlayTone(1320,30);
	Turn();
	Foward(152);
	WriteLine(400);
	NextLine2();
	Foward(764);
	WriteLine(205);
	NextLine2();
	Back(53);
	WriteLine(400);

}
  • サブルーチンを多用することでメインプログラムの改変を簡単にし、視覚的にも見やすくした
  • OnFwdの命令を極力控え、RotateMotorの命令を多用することで、電池の残量にとらわれずに、安定して毎回同じ動作が出来るようにした。
  • 文字で同じ向きの部分を一気に書くことで、無駄な動作を省いた。

感想・反省

はじめはアームをもっと複雑にして、モーターを2つ使おうとしていたが、うまくいかなかった。無駄にごてごてするよりも、シンプルな方が動作が軽くて精度もあがり良いと思った。


添付ファイル: fileIMG_3165.JPG 120件 [詳細]

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