#author("2019-11-21T11:52:40+09:00","takaki","takaki")
[[2019b/Member]]
#author("2019-11-21T13:06:59+09:00","takaki","takaki")
**目次 [#r53d533a]
#contents

*課題1 [#md26d522]
相方の似顔絵を描くロボットの作成
*ロボットの説明 [#aa666193]
私達は初めに、関節が3つあり、かなり関節の自由度の高いロボットを作成した。しかし、このロボットではx,y座標を垂直に描くことが非常に難しく、プログラムの面で挫折した。そこで、次のようなロボットを作成しなおした。

これが私たちが作ったロボットである。
#ref(2019b/Member/takaki/Mission1/IMG_1989.jpg,100%,ロボット全体)
前のロボットの欠点をふまえ、垂直な線が描けるよう、x,y座標を動かす部分を別にした。
#ref(2019b/Member/takaki/Mission1/IMG_1991.jpg,100%,ロボット前)
特徴として、縦方向には車の部分、横方向にはペンを取り付けたマジックアームが動くようになっている。
#ref(2019b/Member/takaki/Mission1/IMG_1990.jpg,100%,ロボット後)
このロボットを作るにあたって、いかにマジックアームが動く土台となる棒がなめらかであるかが問題になった。最初、土台の部分を長めのブロックで作ったが、移動部分が長いために、どうしても継ぎはぎにしなければならなかった。そこで、極力アームが動く部分に継ぎ目が来ないようにした。結果として、継ぎ目が多かった時よりも若干スムーズには動いた。しかし、プログラムで動作を連続で行わないようにするなどの工夫は必要となった。

*プログラムの説明 [#x8aae064]
 #define A_SPEED 20
 #define B_SPEED 17
 
 void pu()
 {
     RotateMotor(OUT_C,10,-15);
     Wait(1000);
 }
 
 void pd()
 {
     RotateMotor(OUT_C,10,15);
     Wait(1000);
 }
 
 void rmot_a(int k)
 {
     RotateMotor(OUT_A,A_SPEED,k);
     Wait(1000);
 }
 
 void rmot_b(int k)
 {
     RotateMotor(OUT_B,B_SPEED,k);
     Wait(1000);
 }
 
 task main()
 {
     Wait(1000);
     
     rmot_a(80);
     rmot_b(15);
     rmot_a(-80);
     rmot_a(-15);
 
     pu();
     rmot_b(5);
     rmot_a(10);
 
     pd();
     rmot_b(5);
     pu();
     rmot_b(5);
     pd();
     rmot_b(5);
 
     pu();
     rmot_a(15);
     rmot_b(-7);
     pd();
     rmot_a(30);
     rmot_a(5);
     pu();
 }

車の部分と、マジックアームの部分のモータの速さが違ったため、#defineで定義した。

モータAで車、Bでアーム、Cでペンを動かした。
 void pu()
 {
     RotateMotor(OUT_C,10,-15);
     Wait(1000);
 }
 
 void pd()
 {
     RotateMotor(OUT_C,10,15);
     Wait(1000);
 }
ペンの上げ下げを関数として定義した。また、
 void rmot_a(int k)
 {
     RotateMotor(OUT_A,A_SPEED,k);
     Wait(1000);
 }
 
 void rmot_b(int k)
 {
     RotateMotor(OUT_B,B_SPEED,k);
     Wait(1000);
 }
車の部分とアームの部分も関数にした。引数kによって、どれだけ回転させるかを決める。また、アームの部分は非常に繊細なので、動作をさせるときは1テンポ置くようにした。

*感想と反省 [#sc4824a3]
#ref(2019b/Member/takaki/Mission1/IMG_1992.jpg,100%,ロボット全体)
今回、うまく似顔絵をかくことができなかった。理由としては、マジックアームの不安定さにあると思う。マジックアームのモーターに、ペンをとりつけたモーターという、非常に重いものを移動させるには、トルクが足りないと感じた。また、アームが片方にしかついていないということもあり、非常にバランスが悪かった。マジックアームを作る部分は比較的簡単だったが、プログラムの面で挫折してしまった。今回のロボットから、ハードウェアを作成するうえで、非常に重要なことが分かった気がする。次の課題では、ハードウェアとソフトウェアの関連性や、ロボットに無理をさせないような作りにしたい。



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