[[2019a/Member]]

目次
#contents

*課題について [#f142bb49]
課題1については,[[2019a/Mission1]]を参照してください.
**選んだ文字 [#n30a0157]
「香川」という県名を選びました.

*ロボット本体について [#da645b95]
#ref(ロボティクス入門2.jpeg)
上の写真は,ロボット全体を撮影したものである.ロボット全体を四輪のタイヤで動かし,モーターの回転を使ってペンを回転させて,ペン先を紙に当てたり,紙から離したりする,コンパクトで単純な構造にした.

*プログラムについて [#ybdf1330]
前後の移動,右回転,左回転,ペンの上げ下げをあらかじめ定義した.

f,b,r,lはそれぞれの稼働時間である.
 #define pen_up OnRev(OUT_B);Wait(10);//ペンを上げる
 #define pen_down OnFwd(OUT_B);Wait(10);//ペンを下げる
 #define mae(f) OnFwd(OUT_AC);Wait(f);Off(OUT_AC);//前進
 #define ushiro(b) OnRev(OUT_AC);Wait(b);Off(OUT_AC);//後退
 #define migikaiten(r) OnFwd(OUT_A);OnRev(OUT_C);Wait(r);Off(OUT_AC);//右回転
 #define hidarikaiten(l) OnFwd(OUT_C);OnRev(OUT_A);Wait(l);Off(OUT_AC);//左回転

すべてをサブルーチンでプログラムした.

サブルーチンが8つ超えると,超えた分の定義ができないため,全12画を8つのまとまりに分けた.
 sub ichinikaku()//1,2画目
 {
     pen_down;
     ushiro(70);
    pen_up;
     migikaiten(20);
     mae(100);
     pen_down;
     ushiro(120);
     pen_up;
 }
 sub sankaku()//3画目
 {
     mae(150);
     migikaiten(120);
     ushiro(50)
     pen_down;
     ushiro(80);
     pen_up;
 }
 sub yongokaku()//4,5画目
 {
     mae(40);
     pen_down;
     OnFwd(OUT_A);
     Wait(120);
     Off(OUT_A);
     pen_up;
     OnRev(OUT_A);
     Wait(120);
     Off(OUT_A);
     pen_down;
     OnFwd(OUT_C);
     Wait(120);
     Off(OUT_C);
     pen_up;
     OnRev(OUT_C);
     Wait(120);
     Off(OUT_C);
 }
 sub rokkaku()//6画目
 {
     mae(230);
     migikaiten(120);
     mae(40);
     migikaiten(120);
     pen_down;
     ushiro(80);
     pen_up;
 }
 sub nanakaku()//7画目
 {
     mae(170);
     migikaiten(140);
     ushiro(80);
     pen_down;
     mae(100);
     pen_up;
     mae(80);
     migikaiten(120);
     ushiro(100);
     pen_down;
     mae(80);
     pen_up;
     mae(40);
 }
 sub hachikaku()//8画目
 {
     mae(15);
     hidarikaiten(120);
     ushiro(120);
     pen_down;
     ushiro(100);
     pen_up;
 }
 sub kyukaku()//9画目
 {
     hidarikaiten(120);
     ushiro(30);
     hidarikaiten(135);
     ushiro(220);
     pen_down;
     ushiro(100);
     pen_up;
 }
 sub jujuichijunikaku()//10,11,12画目
 {
     mae(200);
     hidarikaiten(120);
     pen_down;
     mae(100);
     pen_up;
     hidarikaiten(120);
     mae(50);
     migikaiten(120);
     ushiro(30);
     pen_down;
     ushiro(70);
     pen_up;
     migikaiten(120);
     ushiro(50);
     hidarikaiten(120);
     ushiro(40);
     pen_down;
     mae(120);
     pen_up;
 }
 task main()
 {
     ichinikaku();
     sankaku();
     yongokaku();
     rokkaku();
     nanakaku();
     hachikaku();
     kyukaku();
     jujuichijunikaku();
 }

*まとめ [#de0aa76a]
**書けた文字 [#kcd6458a]
#ref(ロボティクス入門.jpeg)
**感想 [#b12e1a44]
動作の確認をするたびに,紙との摩擦の影響で,少し動きが変わったので,数値の調整が難しかった.今回は,簡易的な構造のロボットを用い,プログラムを凝ったが,複雑な機械を用いて,簡単なプログラムで済むようなものも作ってみたい.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS