#author("2020-02-15T20:34:16+09:00","shin","shin") #author("2020-02-15T20:36:29+09:00","shin","shin") 目次 #contents *課題 1[#g2515578] 相方の似顔絵を描くロボットを製作する。 *ロボットの説明 [#l57df98a] 今回、私たちが作ったロボットはこちら。 #ref(2019b/Member/shin/Mission1/robo2.jpeg,25%,正面から) x軸とy軸が別々で動くようにした。縦方向には車で、横方向はペンが取り付けられているアームが動くようになっている。 #ref(2019b/Member/shin/Mission1/robo4.jpeg,60%,上から) アームが出来るだけ滑らかに動くように、土台のところに継ぎ目が来ないようにした。 #ref(2019b/Member/shin/Mission1/robo3.jpeg,60%) しかし、ペンの上げ下げのためにモーターを使ったために重くなってしまい、途中で止まってしまうことがあった。 *プログラムの説明 [#wb36cec4] #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_b(-15); rmot_b(-15); //輪郭を描く pu(); rmot_b(5); rmot_a(10); pd(); rmot_b(5); pu(); rmot_b(5); pd(); rmot_b(5); rmot_b(5); //目を描く pu(); rmot_a(15); rmot_b(-7); pd(); rmot_a(30); rmot_b(5); rmot_b(5); //口を描く pu(); } ペンの上げ下げを関数として定義 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でどれだけ回転するかを決める。 *まとめ [#h13421e8] #ref(2019b/Member/shin/Mission1/nigaoe.jpeg,50%) 今まで、プログラミングなど全くやったことが無かったので何をしたらいいのか最初は本当に分からなかった。 今回、私たちは似顔絵を完成させることができなかった。自分がプログラムしたようにロボットがなかなかうまく動いてくれなかった。特にアームの部分がやはり重すぎたのかスムーズに動かず止まってしまった。何度かロボットを修正したがダメだった。今回は一つの形にこだわりすぎてしまったので、うまく動かないと思ったら別のものを考えたほうが良かったと思った。次の課題は、しっかりと完成させられるように頑張りたい。