*書道ロボットの作成 [#a9bd2f21]
#contents
*はじめに  [#kff36e8a]
 課題は書道ロボットの作成である。A4用紙に自分の名前を一文字書かせるというもの。我が班はNXTを使用した。
*ロボットの説明 [#k7f5a8c9]
 モーターを三つ使い、BとCはロボットの移動、Aはペンの上げ下げに使用した。
#ref(robottozenntai.jpg)
#ref(robottopen.jpg)
*工夫点と課題・反省点 [#f9677578]
   後輪の摩擦による影響を極力減らすため、モーターから距離を取った。
#ref(robottokourinn.jpg)
  ペンはもともと横倒しであったが、文字がうまく書けないのでパーツに遊びをつくって縦に動くようにした。(上図参照)NXTには縦向きのパーツが無かったので棒のパーツをうまく使う必要があった。
 また、プログラムは出力を変数で管理したことで、電池の消耗に対応しやすくした。
 課題や反省点としては、ペンの改造が遅れたことでなかなか作業が進まないことになってしまったり、班員が集まれずに授業直前に不具合を起こすことが多かった。
 ロボットのほうも、ロボット自体が紙の上を走るため、紙を巻き込んでしまうことが多くなってしまった。また、車体の大きさを考慮する必要があった。ただ、この点は車体を回転させるだけで次の画に移動できるというメリットもあった。しかし、細かい調整に向いていないことは否めない。
*プログラム [#h099f9cd]
 #define turn(t) OnFwd(OUT_B,30.4);OnRev(OUT_C,30.5);\
 
  Wait(t);
 
 #define uppen OnFwd(OUT_A,20);Wait(500);Off(OUT_A);
 
 #define downpen OnRev(OUT_A,20);Wait(500);Off(OUT_A);
 
 #define speed 50.4
 
 
 
 task main()
 
 {
 
     OnFwd(OUT_BC,speed);
 
     Wait(500);
 
     Off(OUT_BC);
 
     uppen;
 
     Wait(400);
 
     OnFwd(OUT_BC,speed);
 
     Wait(500);
 
     turn(1200);
 
     Off(OUT_BC);
 
     OnRev(OUT_BC,speed);
 
     Wait(300);
 
     Off(OUT_BC);
 
     downpen;
 
     OnRev(OUT_BC,speed);
 
     Wait(1000);
 
     uppen;
 
     OnFwd(OUT_BC,speed);
 
     Wait(1700);
 
     Off(OUT_BC);
 
     turn(1700);
 
     Off(OUT_BC);
 
     OnRev(OUT_BC,speed);
 
     Wait(200);
 
     downpen;
 
     OnFwd(OUT_BC,speed);
 
     Wait(500);
 
     Off(OUT_BC);
 
     uppen;
 
     OnFwd(OUT_BC,speed);
 
     Wait(200);
 
     turn(1200);
 
     OnRev(OUT_BC,speed);
 
     Wait(800);
 
     Off(OUT_BC);
 
     downpen;
 
     OnFwd(OUT_BC,speed);
 
     Wait(200);//木へん終わり
 
     uppen;
 
     turn(1200);
 
     Off(OUT_BC);
 
     downpen;
 
     OnRev(OUT_BC,speed);
 
     Wait(400);
 
     Off(OUT_BC);
 
     uppen;
 
     OnFwd(OUT_C,speed);
 
     Wait(1200);
 
     Off(OUT_C);
 
      OnFwd(OUT_B,speed);
 
     Wait(1500);
 
     OnRev(OUT_BC,speed);
 
     Wait(800);

     Off(OUT_BC);
 
     downpen;
 
     OnRev(OUT_BC,speed);
 
     Wait(400);
 
     Off(OUT_BC);
 
     uppen;
 
     turn(400);
 
     OnFwd(OUT_BC,speed);
 
     Wait(800);
 
     OnFwd(OUT_C,30);
 
     OnRev(OUT_B,30);
 
     Wait(500);
 
     Off(OUT_BC);
 
     downpen;
 
     OnRev(OUT_BC,speed);
 
     Wait(400);
 
     Off(OUT_BC);
 
 }
*かけた文字 [#iba40b63]
「杉」の一文字を書いた。
#ref(kannseisitaji.jpg)
書き順
#ref(kakijunn.jpg)
概ね人が書く時と変わらないが、右側の三本線は上から二番目と三番目を入れ替えた。これは後から調整したため。
*まとめ・感想 [#qdfbbb28]
 使うたびにマシンコンディションが変わるため、作業が非常に難航した。この点は上述したようにプログラムや車体の工夫で切り抜けることができた。また、班員全員が集まることに固執しすぎ、作業時間を確保できなかったのも作業が遅れた原因の一つだと思う。
 文字もきへんが完成した後に右側の作業を進める中でずれが生じ、ついにリカバリーできなかった点も悔やまれる。また、斜めに線を引くことに思っていた以上に苦労した。
 ただ、作業に苦労した分、完成した時の感動は一入だった。満足に線も引けない状態からよく文字の完成にこぎつけたものだと思う。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS