*ロボット本体の説明 [#wd6069c0]

#ref(./_25740.jpg,50%)

このロボットはA端子でアームの上げ下げ運動、B端子でアームの土台の左右運動、C端子で本体の前後運動の制御をする。
**タイヤ [#hc64aa93]
このロボットのタイヤは一番大きいものをコンピュータの前後それぞれ二輪ずつ、計四輪取り付けてある。ただし、モーターによって直接制御されるのは後ろの二輪であり、前二輪は後ろ二輪の動きに合わせて動くようになっている。
**アームの土台 [#ib887a8d]
#ref(./_25744.jpg,50%)
アームの土台はモーターによって左右に動くようにするため、写真の部品を使い回転運動から左右運動へと変換した。また土台にはアームの振り下ろしや振り上げの力に耐えられるように固定されている。
**アーム [#idb6db5d]
アームはモーターとの間に歯車を一つも挟まず接続されている。アームはモーターを回転させると、ものすごいスピードで振り下ろしや振り上げを行うために制御が少し難しくなるが、ロボット全体の重さが軽くなり本体の前後運動の正確さを向上されている。
*プログラムの説明 [#r52081a3]
今回は「野」(11画)を書く。また筆順は特に変えない。

#ref(./_25750.jpg,50%)

上の写真のような「野」を書けたときのプログラムは下に示す。

 #define waiting Wait(100);
 #define down OnFwd(OUT_A);Wait(010);Off(OUT_A);waiting; // ペンを振り下ろす。
 #define up OnRev(OUT_A);Wait(011);Off(OUT_A);waiting; // ペンを振り上げる。
 #define migi(t) OnRev(OUT_C);Wait(t);Off(OUT_C);waiting; // 文字を前にして右に動く。
 #define hidari(t) OnFwd(OUT_C);Wait(t);Off(OUT_C);waiting; // 左に動く。
 #define shita(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);waiting; // 下に動く。
 #define ue(t) OnRev(OUT_B);Wait(t);Off(OUT_B);waiting; // 上に動く。
 #define hidarishita(t) OnFwd(OUT_BC);Wait(t);Off(OUT_BC);waiting; // 左下に動く。
 #define migishita(t) OnRev(OUT_C);OnFwd(OUT_B);Wait(t);Off(OUT_BC);waiting; // 右下に動く。
 #define hidariue(t) OnFwd(OUT_C);OnRev(OUT_B);Wait(t);Off(OUT_BC);waiting; // 左上に動く。
 task main()
 {
 down;shita(010);up; // 一画目
 ue(010);
 down;migi(015);shita(010);up; // 二画目
 ue(005);hidari(011);
 down;migi(015);up; // 三画目
 shita(005);hidari(011);
 down;migi(015);up; // 四画目
 ue(010);hidari(007);
 down;shita(020);up; // 五画目
 ue(005);hidari(007);
 down;migi(010);up; // 六画目
 shita(005);hidari(011);
 down;migi(015);up; // 七画目
 migi(015);ue(020);
 down;migi(015);hidarishita(007);up; // 八画目
 hidariue(003);
 down;migishita(006);up; // 九画目
 hidari(010);
 down;migi(015);up; // 十画目 
 hidari(007);
 down;shita(010);up; // 十一画目
 }

今回は「野」を|(縦棒)と━(横棒)、/(右上から左下への斜め棒)、\(左上から右下への斜め棒)の四種類の棒を組み合わせて書いた。

**プログラムを書くときにおける問題点 [#w3e6d70c]
課題期間中に理由を特定できなかったが、文字を前にして右に移動するのと、左に移動するのでは速さが異なってしまった。今回その問題は、右と左に同じ距離移動したいときは、左に進む時間を右に進む時間の0.7倍にすることで解決した。

この問題はタイヤの大きさが大きすぎて移動したときにうまく止まれないことが原因であると考えている。
*反省 [#fa95726c]
今回はロボットの動きに正確さがなく、同じプログラムであっても少しずれることがあった。次回の課題ではロボット本体の構造をしっかり考え、動きの正確さを向上させたい。

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