#contents *はじめに [#x2c223dd] ロボティクス入門ゼミの一回目の課題として、「書道ロボット」の組み立て・プログラム作成をしました。 一つ断っておきたいことがあります。 後の'課題について'に載せました指示の中に『各自の名前の7画以上の漢字を選ぶ』とあり私の名前に該当する漢字がありましたが、細々しており私達が組み立てたロボットでは書くことが困難であったため、急遽姓に変更いたしました。 *課題について [#had03f72] 以下のような指定のありました。 各自の名前の中の一文字をA4用紙の中に書きなさい。 ただし7画以上の文字を選ぶこと。もし7画以上の文字がない場合には合計7画以上になるように複数の文字を書きなさい。以下の点に注意すること。 -マクロや関数、サブルーチンなどを使い、main関数がなるべく単純になるようにプログラムを作ること。 -定数名やマクロなどは分かりやすい名前を用いること -余裕をもってA4の紙の中に収まる大きさにすること。読める範囲ならばいくら小さくてもよい。 -ペン以外はキットの部品を使うこと -輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりすぎないようにすること。 *ロボットについて [#ud82a3e4] ロボットにもう一つモーターを接続してアームを作り、そこに輪ゴムで筆ペンを取り付けました。 *プログラム [#d64f9ae9] ***書き順 [#sa3fb22c] ***定義 [#rf590ca1] 全部で以下6つの定義を作った。 #define PENUP OnFwd(OUT_A,50);Wait(100);Off(OUT,A);Wait(800); //ペンを持ち上げる #define PENDOWN OnFwd(OUT_A,-50);Wait(100);Off(OUT,A);Wait(800); //ペンを降ろす #define TURNRIGHT OnFwd(OUT_B,50);OnFwd(OUT_C,-50)Wait(100);Off(OUT,A);Wait(800); //右に曲がる #define TURNLEFT OnFwd(OUT_B,-50);OnFwd(OUT_C,50)Wait(100);Off(OUT,A);Wait(800); //左に曲がる #define ZENSIN(s) OnFwd(OUT_BC,50);Wait(s);Off(OUT,BC);Wait(800); //前進する #define KOUTAI(t) OnFwd(OUT_BC,-50);Wait(t);Off(OUT,BC);Wait(800); //後退する *完成 [#td53f748] *感想・反省 [#x18d7251] プログラミングをしてロボットを動かすのはこのゼミが初めてでしたので苦戦しましたが、何とか作成することができました。 まず思うことは、思い通りにロボットがなかなか動かないことです。時間や長さをきっちり測ってプログラムを組んだわけではないので当り前かもしれませんが、直角に曲がっているように見えておそらく直角ではなかったのではないかと思います。 困ったことは、プログラミングとは関係ないのですが、ロボットの電池が満タンではなかったときに初めにプログラムを組んでいたので、電池交換したら動きが活発になりA4からはみ出してしまったということです。 *次回に向けて [#aed30bd9] まず、次回はロボットの構造をもっと考えたいと思いました。今回書道ロボットには向いていない