- 追加された行はこの色です。
- 削除された行はこの色です。
[[2014b/Member]]
#contents
*ロボットの紹介 [#p4b9127d]
当初は何も思いつかず、最初に作った前後左右に動くロボットの脇からアームを伸ばし、ペンを取り付けるだけの単純なロボットを組み立てました。
**機能 [#v6be992d]
紙の上をロボットが動き、そこにペンの上げ下げの動作を加えることにより、文字を書くことを可能にしました。
***ペン [#jd7dcb42]
ペンをどのようにしてロボット本体に取り付けようか悩んだ結果、長いブロックに輪ゴムで固定して、それを本体の脇から伸ばしたアームに取り付けました。
またアームを下げた際にペンが上にスライドしてしまい、もう一度アームを下げるときにペン先が紙に接地しなくなってしまったので、そうならないようにペンが上下しないようにも、もう一か所輪ゴムで固定しました。
***モーター [#p5618ab5]
モーター2つを両側のタイヤに、1つをペンの上げ下げに用いました。
*プログラム [#t2e1dae2]
float GetAngle(float d)
{
const float diameter = 5.45;
const float pi=3.1415;
float ang =d/(diameter*pi)*360.0;
return ang;
}
#define SPEED 50
#define Ninety GetAngle(16.5)
#define ten GetAngle(10)
#define Five GetAngle(5)
#define Eight GetAngle(8)
#define HalfNinety GetAngle(8.25)
#define NineRight RotateMotor(OUT_C,SPEED,Ninety); RotateMotor(OUT_BC,-SPEED,Ten);
#define NineLeft RotateMotor(OUT_B,SPEED,Ninety); RotateMotor(OUT_BC,-SPEED,Ten);
#define HalfNineLeft RotateMotor(OUT_BC,SPEED,Five); RotateMotor(OUT_B,SPEED,HalfNinety); RotateMotor(OUT_BC,-SPEED,Eight);
#define HalfNineRight RotateMotor(OUT_BC,SPEED,Five); RotateMotor(OUT_C,SPEED,HalfNinety); RotateMotor(OUT_BC,-SPEED,Eight);
#define PenUp RotateMotor(OUT_A,SPEED,-50);
#define PenDown RotateMotor(OUT_A,SPEED,50);
#define GoGo RotateMotor(OUT_BC,SPEED ,angle);
#define BackBack RotateMotor(OUT_BC,SPEED ,-angle);
#define GoUp GoGo;PenUp;
#define NineLeftGoGo2NineLeftDown NineLeft;GoGo;NineLeft;GoGo;NineLeft;PenDown;
#define NineLeftDownBackUp HalfNineLeft;PenDown;BackBack;PenUp;
#define Plus(t) angle += GetAngle(t);
#define Minus(s) angle -= GetAngle(s);
task main()
{
Wait(2000);
Int angle = GetAngle(7);
GoUp;
Minus(3.5);//3.5cm進む
NineLeftGoGo2NineLeftDown;
Plus(11.5);//15
GoUp;
Minus(2);//13
BackBack;HalfNineRight;PenDown;
Minus(9);//4
GoUp;BackBack;NineLeft;PenDown;GoUp;BackBack;HalfNineLeft;GoGo;PenDown;
Plus(3);//7
GoUp;
Minus(3.5);//3.5
NineLeftGoGo2NineLeftDown;
Plus(2.5);//6
GoUp;
Plus(5.3137);//11.3137
HalfLeftDownBackUp;HalfNineLeft;
Minus(5.3137);//6
GoGo;
Plus(3.3137);//9.3137
HalfLeftDownBackUp;
}