†ロボットの全体像EV3ガイドに乗っている基本ロボットにペンを上げ下げする機構を追加してある。ペン先はプログラムを作りやすいようにロボットの中心になるようにした。比較的簡単にモーターに直接アームをつけて、そこにペンをテープで止めるだけの構造にした。この機構は横についている赤いピン4本を抜くだけで取り外せるので改造するのも簡単というメリットがある。†ロボットに顔を描かせるために必要な動作をまとめると・ペンを上げ下げする・ロボット本体が前後する・ロボット本体が回転するなどの動作の組み合わせによって顔を描かせる。これからのプログラムを簡単にするためにモーターなどを定義する。今回のプログラムではモーターA(左タイヤ)=mlモーターB(右タイヤ)=mrモーターC(ペンの上げ下げ)=mfとして以下の文を用いて定義した。//ペンの上げ下げ~また、簡単にロボットを動かすために以下の文によって「ロボットの前後」、「ペンの上げ下げ」を簡単に呼び出せるようにする。=「pen」で定義している。†テスト用のプログラムを書いて、何回かの試行を経て、左右の車輪にどのような回転をさせればどの程度ロボットが回転するのかを調べた。用いたプログラムは以下のとおりである。mr.stop()・30度回転させたいときgo(1000,15,-15)go(1000,-15,15)・45度回転させたいときgo(1000,20,-20)go(1000,-20,20)・60度回転させたいときgo(1000,24,-24)go(1000,-24,24)であることを調べた。この値を用いることで描写が前よりは簡単に行えるようになる。ちなみにこの時のバッテリー状態はほぼ充電完了状態である。よって、この値を適応させるにはできるだけ充電を完了した状態で試行するのが好ましい。前項と同じプログラムを用いてある一定秒数ごとにどの程度ロボットが前進するのかを計測した。すると、以下のようなデータが得られた。両方の車輪のパワー30で1秒間前進させると、約5cm進む。これによって顔を描写するときの大きさの大体の見当がつけられた。顔を描く本番のプログラムを書き始める。プログラムの流れとしては1.線の最初の点に移動する2.筆をつける3.ロボット本体を動かして描く4.筆を離すこれらの繰り返しで顔を描写していく。試しに以下のプログラムで輪郭を描かせてみた。pen(1000,-50)すると、ペンの上げ下げの点をもっと細かく調べないと線が一本で書けないということが分かった。その後の試行錯誤で、つけ、止めの点をそろえるのがとても大変だということが分かった。†ロボットに顔を書かせるためには、ペンを上げる点と、描き始める点がそろわなければならず、かつそれがとても難しいということが分かった。今回は時間がなくて、一回一回ごとに点をそろえるように実験していったら、最後まで顔を描くことができなかった。今回の反省より次回に気を付けることをリスト化すると・初めに方眼紙のような紙の上で、座標を用いてロボットを動かすと、計測もやりやすい。・モーターのstopのコマンドを用いて、正確に自分が止まってほっしい点で止まるプログラムを用いる。・できるだけ計算を簡単にするためにペンなど、ロボットに何かをさせる部分はある一点に集中させるとよい。今回は、タイヤとペンの先が大きく離れていたために、絵を描かせるために余計なプログラムを練らなければならなかった。これがタイヤの中心にペン先が来ていたら、その場での回転とペンの上げ下げのみで、つける点と上げる点をそろえることができる。点に気を付けて、次回のプログラムではロボットを作りたい。