目次 #contents * 目次 [#n529f29b] * 課題の内容 [#m199bc80] 課題1 書道ロボットの作成 各自の名前の中の一文字をA4用紙の中に書きなさい。 ただし7画以上の文字を選ぶこと。もし7画以上の文字がない場合には合計7画以上になるように複数の文字を書きなさい。以下の点に注意すること。 今回は「津」を書くプログラミングを課題とした。 • マクロや関数、サブルーチンなどを使い、main関数がなるべく単純になるようにプログラムを作ること。 ̺ 定数名やマクロなどは分かりやすい名前を用いること • 余裕をもってA4の紙の中に収まる大きさにすること。読める範囲ならばいくら小さくてもよい。 • ペン以外はキットの部品を使うこと • 輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりすぎないようにすること。 ** 外観 [#m6d30868] ロボットの外観はシンプルなものである。 一つのモーターだけで、ロボット本体の運動および先端に取り付けたペンの上下運動を行えるものである。 #ref http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&pcmd=open&file=IMG_3037.JPG&refer=2015a%2FMember%2Ffami%2FMission1 * ロボットの問題点および工夫した点 [#oa9f6eeb] **アームの横回転に対する弱さおよび変更点 [#kb052068] 当初、ロボットの先端に取り付けていた字を書くための筆を固定するアームは横回転するよう取り付けていた。 しかし、当初の付け方ではアームが本体の移動中に重力に負けて、筆が地面に落ちてしまうという問題点があった。 さらに横回転で字を書いた場合、毎回微妙に中央からずれて筆が固定されてしまうため字が安定しなかった。 そこで我々はアームを縦回転に動く様装着することとした。 縦回転のメリットとしては、一番アームに負担の掛かる本体の回転時にアームがずれない点と、横回転の様に筆の位置がずれないので字が安定する点が挙げられる。更に、横回転の時は筆を中心に持っていくため、筆の移動時間に細心の注意を払う必要があったが、縦回転時は筆の降りる点が固定されているため、基本的には「筆を挙げる」「筆を下げる」の2パターンのプログラミングだけでよいという点も挙げられる。 **アームの固定 [#l68a49cd] 当初、アームを固定するために輪ゴムを使っていたが、写真の様にゴムを取り付けることで、取り外しの面で非常に便利になった。 #ref http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&pcmd=open&file=IMG_5080.JPG&refer=2015a%2FMember%2Ffami%2FMission1 *プログラミングの説明 [#m9f03e17] **「津」を書くプログラミングの説明 [#h9095963] ''今回の字を書くに当たってプログラミングの説明に○角目とあるが、それはロボットで書く場合においての画数であり、本来の画数とは異なります。'' #define go(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC); //「進む」 筆の移動と字を書くために使用 #define kaiten_migi(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_AC); //右旋回 #define kaiten_hidari(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_AC); //左旋回 #define pen_ageru OnFwd(OUT_B);Wait(7);Off(OUT_B); //「筆あげる」 #define pen_sageru OnRev(OUT_B);Wait(7);Off(OUT_B); //「筆下げる」 task main () { go(45); //1 一画目 pen_ageru; //2「筆上げる」 kaiten_migi(30); //3 筆の移動 go(50); //4 同上 kaiten_migi(120); //5 同上 pen_sageru; //6「筆下げる」 go(45); //7 二画目 pen_ageru; //8 「筆上げる」 kaiten_hidari(120); //9 筆の移動 pen_sageru; //10 「筆下げる」 go(70); //11 三画目 ここまでで「サンズイ」を書く ここから↓で右半分を書く pen_ageru; //12「筆上げる」 kaiten_hidari(120); //13 筆の移動 go(70); //14 同上 pen_sageru; //15 「筆下げる」 go(75); //16 四画目 pen_ageru; //17 「筆上げる」 kaiten_migi(30); //18 筆の移動 pen_sageru; //19 「筆下げる」 go(85); //20 五角目 pen_ageru; //21 「筆上げる」 kaiten_migi(90); //22 筆の移動 pen_sageru; //23 「筆下げる」 go(50); //24 六角目 pen_ageru; //25 「筆上げる」 kaiten_migi(90); //26 筆の移動 pen_sageru; //27 「筆下げる」 go(85); //28 七角目 pen_ageru; //29 「筆上げる」 kaiten_hidari(90); //30 筆の移動 go(25); //31 同上 kaiten_hidari(90); //32 同上 pen_sageru; //33 「筆下げる」 go(75); //34 八角目 pen_ageru; //35 「筆上げる」 kaiten_migi(90); //36 筆の移動 go(25); //37 同上 kaiten_migi(90); //38 同上 pen_sageru; //39 「筆下げる」 go(85); //40 九角目 pen_ageru; //41 「筆上げる」 kaiten_migi(90); //42 筆の移動 go(125); //43 同上 kaiten_migi(90); //44 同上 go(25); //45 同上 kaiten_migi(90); //46 同上 pen_sageru; //47 「筆下げる」 go(150); //48 十角目 } *今回の作成時間 [#bf6ab146] プログラミング4時間 ロボットの製作2時間 ホームページの作成6時間 *感想 [#f5f66740] 自分で作ったプログラミングによってロボットが動き字を書いている姿を見たときは本当に感動した。 ただ、一つ悔しい点を挙げるとするならば、ロボットの書いた字の写真を紛失してしまい提出できなかったことである。