今回の課題

書道ロボを制作して、自分の名前の中から七画以上の文字を選びます。
そしてプログラミングを書き書道ロボに選んだ文字を書かせます。
私は「明」の文字を書きました。

ロボット本体の説明

このロボットはA端子で筆の上下、B端子で前後、C端子で左右を動くことができる。

1434022680969.jpg

前後

edo_3.jpg
1434022664944.jpg

モータが回転すると前後に動く、これを滑り止めとつなぐと上の部分が動く

左右

edo_2.jpg

edo_1.jpg

これを回転することによって筆の上げ下げをする、また回転しすぎないようとめ具がある

滑り止め

edo_4.jpg

これを置くことによって滑らないようにする、これがないと本体が動いてもじがまともに書けなくなる

プログラミングの説明

定義、サブルーチン

sub syoki()//初期位置に移動(左上)、モーターのパワーの調節
{
 SetPower(OUT_A,1);
 SetPower(OUT_B,3);
 SetPower(OUT_C,3);
 OnRev(OUT_A);
 Wait(5);
 Off(OUT_A);
 OnFwd(OUT_B);
 OnRev(OUT_C);
 Wait(100);
 Off(OUT_BC);
}
#define downpen OnFwd(OUT_A);Wait(20);//ペンをおろす
#define uppen   OnRev(OUT_A);Wait(20);//ペンを上げる
#define migi    OnFwd(OUT_C);Wait(20);Off(OUT_C);//右に動く
#degine hidari  OnRev(OUT_C);Wait(20);Off(OUT_C);//左に動く
#define ue      OnFwd(OUT_B);Wait(20);Off(OUT_B);//上に動く(平面上)
#define sita    OnRev(OUT_B);Wait(20);Off(OUT_B);//下に動く(平面上)
#define end     OnRev(OUT_A);Wait(5);Off(OUT_A);//筆をもとに戻す

メイン

task main()
{
 syoki();//日
 downpen;
 migi;
 sita;
 sita;
 hidari;
 ue;
 ue;
 uppen;
 sita;
 downpen;
 migi;
 uppen;
 ue;
 migi;
 downpen;//月
 sita;
 sita;
 sita;
 uppen;
 migi;
 downpen;
 ue;
 ue;
 ue;
 hidari;
 uppen;
 sita;
 downpen;
 migi;
 uppen;
 sita;
 downpen;
 hidari;
 uppen;
 end;
}

工夫

一番最初にやるsyokiで筆の回転の強さを調節したりした。またsyokiは長いのでサブルーチンを使ってみた。ロボットは前後左右を限られた範囲で動くのでそれに合わせて四方向の定義を作った。

完成した文字

1434033663277[1].jpg

反省 感想

今回のロボットはメンバーの一人がかなり頑張ってくれたので次からはレゴのことをもっと理解して手伝えるようになりたいです。またプログラミングは後で気づいたが、定義だけでなく関数を使えば同じプログラムを二度書かないで簡潔にすることができたので次回では気を付けていく。
また筆の先がつぶれたりし、日によって字の上手さが変わってしまった。自分の書いた字は書くのが速すぎて大きくはみだしてしまった。「明」の字のはらいの部分を直線にすることによって少し手を抜いてしまった気がする。

今回が初めて自分たちでロボットを製作したりプログラムがかけたので楽しかった。しかしまだまだ未熟なので次の課題ではもっと頑張れたらいいなと思いました。


添付ファイル: file1434022664944.jpg 87件 [詳細] file1434033663277[1].jpg 104件 [詳細] file1434022680969.jpg 88件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-06-11 (木) 23:59:36 (1531d)