2015a/Member

はじめに

構想を決めるのに、そのロボットの調整に多くの時間を費やした。
チーム内で完全に意見が分かれ、始めは、シンプルさを追求して、
走行に、二つのモーターをそれぞれの車輪に使用し、一つの筆ペンをつける構想が思い浮かんだが、
プログラム上、何度も、走る方向を定めるというのは多大な労力を要する上に、プログラムが長くなってしまうという理由で、モーターを一つだけ、固定された車輪に使用し、残りの二つはペンに使用するという方式に決定した。

Robotitself.jpg

上の写真はロボットの最終的なフォルム

苦労話

二本のアームを使用するということで、その両者のプログラム的な微調整に、かなりの試行錯誤を要求された。
何度もプログラムの数値のみを書き直して、それぞれのアームが、しっかりと紙にくっついているのか、それとも離れているのか、また、横の画数を書くときには、その距離をアームだけのパワーバランスだけで、調整するので、横から眺めながら、慎重に位置を調整した。
途中、どうしても、パワー調整だけでは、どうしようもなくなったので、アームの位置自体を変えたり、また、その重量的なバランスの不安定さから、本体との重さをブロックの位置を調整するなどして、再配置した。
また、ペン自体も書くときに不安定になりがちだったので、筆の柔軟性を保つということに重点をおいて、部品を継ぎ足すなどをして固定を試みた。

プログラミング

モーターの制御には、調整が数値でしやすいように、RotateMotor関数を使用し、回転数を指定することで、ペンを操作した。
また、マクロをあらかじめたくさん設定して、できるだけ、task main()内が短い行数になるように、努力した。また、そのマクロの名前は比較的わかりやすさを追求した結果、その画数を使用した。

#define ikkaku() RotateMoter(OUT_A,30,100);Off(OUT_A);OnFwd(OUT_C,30);Wait(200);Off(OUT_C);

[一画目]

  1. 筆をおろす
  2. 車体を後ろに少し移動する
     #define nikaku()     RotateMoter(OUT_B,30,50);Off(OUT_B);RotateMotor(OUT_A,30,50);Off(OUT_A);RotateMotor(OUT_B,30,-50);Off(OUT_B);RotateMotor(OUT_A,30,-60);Off(OUT_A);
    [二画目]
  3. 筆を上げる
  4. 筆の位置を奥に移動させる
  5. 筆をおろす
  6. 筆を手前に戻す
    #define  sankakuyonkaku() RotateMotor(OUT_B,30,50);Off(OUT_B);RotateMotor(OUT_A,30,30);Off(OUT_A);RotateMotor(OUT_B,30,-30);Off(OUT_B);OnFwd(OUT_C,35);Wait(200);Off(OUT_C);RotateMotor(OUT_B,30,30);Off(OUT_B);RotateMotor(OUT_A,30,-10);Off(OUT_A);RotateMotor(OUT_B,30,30);Off(OUT_B);OnRev(OUT_C,35);Wait(200);Off(OUT_C);RotateMotor(OUT_B,30,30);Off(OUT_B);
    [三画、四画目]
  7. 筆を上げる
  8. 筆の位置を少し、奥に移動させる
  9. 筆を下げる
  10. 車体を少し後ろに下げる
  11. 筆を上げる
  12. 筆を手前に移動させる
  13. 筆を下す
  14. 車体を前に戻す
  15. 筆を上げる
    #define gokaku() RotateMotor(OUT_A,30,50);Off(OUT_A);OnFwd(OUT_C,30);Wait(400);Off(OUT_C);RotateMotor(OUT_B,30,-30);Off(OUT_B);RotateMotor(OUT_A,30,50);Off(OUT_B);RotateMotor(OUT_B,30,30);Off(OUT_B);
    [五画目]
  16. 筆を手前に戻す
  17. 車体を奥に移動する
  18. 筆を下す
  19. 筆を奥に移動する
  20. 筆を上げる
    #define rokunanahakkaku() RotateMotor(OUT_A,30,-10);Off(OUT_A);OnFwd(OUT_C,30);Wait(300);Off(OUT_C);RotateMotor(OUT_B,30,-30);Off(OUT_B);OnFwd(OUT_C,30);Wait(500);Off(OUT_C);RotateMotor(OUT_B,30,30);Off(OUT_B);RotateMotor(OUT_A,30,-10);Off(OUT_A);RotateMotor(OUT_B,30,-30);Off(OUT_B);OnRev(OUT_C,30);Wait(500);Off(OUT_C);RotateMotor(OUT_B,30,30);Off(OUT_B);RotateMotor(OUT_A,30,-10);Off(OUT_A);RotateMotor(OUT_B,30,-30);Off(OUT_B);OnFwd(OUT_C,30);Wait(500);Off(OUT_C);
    [六、七、八画]
  21. 筆を手前に戻す
  22. 車体を奥に移動する
  23. 筆を下す
  24. 車体を奥に移動する
  25. 筆を上げる
  26. 筆を手前に戻す
  27. 筆を下す
  28. 車体を手前に戻す
  29. 筆を上げる
  30. 筆を手前に戻す
  31. 筆を下す
  32. 車体を奥に移動する
    #define kyujujuichikaku() RotateMotor(OUT_A,30,50);Off(OUT_A);RotateMotor(OUT_B,30,30);Off(OUT_B);OnFwd(OUT_C,30);Wait(500);Off(OUT_C);RotateMotor(OUT_B,30,-30);Off(OUT_B);RotateMotor(OUT_A,30,-50);Off(OUT_A);RotateMotor(OUT_B,30,30);Off(OUT_B);OnFwd(OUT_C,30);Wait(500);Off(OUT_C);RotateMotor(OUT_B,30,-30);Off(OUT_B);RotateMotor(OUT_A,30,50);Off(OUT_A);RotateMotor(OUT_B,30,30);Off(OUT_B);
    [九、十、十一]
  33. 筆を奥に移動する
  34. 筆を上げる
  35. 車体を奥に移動する
  36. 筆を下す
  37. 筆を手前に戻す
  38. 筆を上げる
  39. 車体を奥に移動する
  40. 筆を下す
  41. 筆を奥に移動する
  42. 筆を上げる
    #define junikaku() RotateMotor(OUT_A,30,-30);Off(OUT_A);OnFwd(OUT_C,30);Wait(500);Off(OUT_C);RotateMotor(OUT_B,30,-30);Off(OUT_B);OnFwd(OUT_C,30);Wait(1000);Off(OUT_C);
    [十二]
  43. 筆を手前に戻す
  44. 車体を奥に移動する
  45. 筆を下す
  46. 車体を奥に移動する
    #define jusankaku() RotateMotor(OUT_A,30,-80);Off(OUT_A);
    [十三]
  47. 筆を手前に戻す
    #define juyonkaku() OnRev(OUT_C,30);Wait(2000);Off(OUT_C);
    [十四]
  48. 車体を手前に戻す
task main() 
{ 
ikkaku()
nikaku()
sanyonkaku()
gokaku()
rokunanahakkaku()
kyujujuichikaku()
junikaku()
jusankaku()
juyonkaku()
}

まとめ

総じて、プログラムを書くのに思ったよりも、マシンが思い通りにうごかなかったので、時間がかかった。
最終的に、うまく字が書けなかったが、試行錯誤の上で(プログラムと、本体とのバランスを調整すること)、こういう風にすれば、うまくいく確率があがって、こういう風にしたら、失敗するということが、目に見えてわかったので、ロボットを製作するうえでの、直感力を培ったと自負できる。
理想としていた字とはかけ離れてしまったが、ロボットを動かすという技術に触れることができて、満足であった。

kanji.jpg

上の写真は理想としていた字(ロボットなので、かくかくしたものを理想とした)


添付ファイル: filekanji.jpg 107件 [詳細] fileRobotitself.jpg 135件 [詳細] filePhoto 2015-06-10 午後9 45 23.jpg 54件 [詳細] filePhoto 2015-06-10 午後9 44 34.jpg 45件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-07-22 (水) 20:26:22