[[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;
 }



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