目次
A4の紙に松本の大学生活を表す漢字一文字を書く。 課題1
大学に入ってからジャグリングと軟式テニスを始めたので、「球」にした。
今回のロボットは、ペンを前後左右に動かすことで字を書く駆動である。 モーターは3つ使用しており、 ロボット本体の前後、ペンの左右、ペンの上下に動かしている。 初めはロボット本体を動かし字を書くロボットとプログラムを作っていたが、 プログラムが難しく途中でこのロボットに変更した。 また、持ち運びがしやすいように簡単に分解できるようにした。
ロボットを前後させるためのモーターを本体の内側にいれ、外側から見えないようにした。 また、タイヤを3つ使いロボットを安定させている。
ペンを左右させるためのレールに摩擦が少なくなるように丸い部品を使った。 また、固定されていない棒を使い、レールの振動を軽減させることと、スライドし過ぎてレールから外れないようにした。
モーターを回転しペンを上げる。しかし、ペンを下げるのはモーターを止めることでやっているため、モーターには良くない仕様になってしまった。
今回、正しい書き順ではなく、プログラムが簡単になるように書き順を変更した。
点の線と横線をサブルーチンでプログラムした。ペンを下したあとの振動がおさまるのをまつため、止まっている時間をつくった。また、ペンでレールでスライドさせたあと左右によりすぎるとスライドできなくなるので、再び動かせるように元の位置に戻すプログラムを追加した。
sub yoko() { Off(OUT_B); Wait(100); OnRev(OUT_A); Wait(20); Off(OUT_A); OnRev(OUT_B); //球の横線を書く } sub ten() { Off(OUT_B); Wait(150); OnRev(OUT_C); Wait(13); Off(OUT_C); OnRev(OUT_B); //求の点の部分を書く } task main() { yoko(); //1画目 OnFwd(OUT_A); Wait(25); Off(OUT_A); OnFwd(OUT_C); //移動 Wait(17); Off(OUT_C); yoko(); //2画目 OnFwd(OUT_A); Off(OUT_A); OnFwd(OUT_C); //移動 Wait(17); Off(OUT_C); yoko(); //3画目 OnFwd(OUT_A); Wait(15); Off(OUT_A); Off(OUT_B); //4画目 Wait(100); OnRev(OUT_C); Wait(33); Off(OUT_C); Wait(50); OnRev(OUT_AB); Wait(25); Off(OUT_AB); //5画目 Wait(100); OnFwd(OUT_C); Wait(45); Off(OUT_C); OnRev(OUT_C); //移動 Wait(15); Off(OUT_C); Wait(100); OnFwd(OUT_A); Wait(9); Off(OUT_A); Wait(100); yoko(); //6画目 OnFwd(OUT_C); //移動 Wait(15); Off(OUT_C); OnRev(OUT_B); ten(); //7画目 OnRev(OUT_C); //移動 Wait(8); Off(OUT_C); Wait(20); ten(); //8画目 OnRev(OUT_C); //移動 Wait(8); Off(OUT_C); Wait(20); ten(); //9画目 OnFwd(OUT_A); //移動 Wait(20); Off(OUT_A); OnFwd(OUT_C); Wait(20); Off(OUT_C); ten(); //10画目 OnRev(OUT_C); //移動 Wait(10); Off(OUT_C); Wait(20); ten(); //11画目 Off(OUT_B); }
「求」の点が斜めではなく、縦にした。
私はロボットを組み立てるのがうまくなく、相方にたくさん助けてもらいロボットを作った。 また、プログラムが長々となってしまったので、今度はサブルーチンを使うなどで、できるだけ短くかきたい。漢字を書くとき、突き抜けてはいけない線が突き抜けると違う漢字になっていしまうところも難しく、毎回漢字を書くと変わってしまい何度もプログラムを変更するのが大変だった。しかし、思った通りに書けたときは何度でもうれしかった。このロボットでは斜めの線、曲線を書くことが難しく断念してしまった。次回はプログラムをきれいに書きたい。