目次

課題1

 書道ロボットの製作

ロボの説明

 今回のロボットはX軸・Y軸・Z軸ををそれぞれ前後・左右・ペンの上下と決めて車体を製作した。

X軸について

 車体のメインになる場所なので、「より頑丈により安定的に」を目指した。

 四角い形に作っていき、モータを囲うことで重心を中心に置くことで安定させることができた。

 後にY軸と組み合わせたところ、Y軸が重く、重心がずれ車体が倒れてしまったので、RIS本体をX軸の上に乗せることでバランスを取り、倒れないように作り変えた。

XとY2.jpg

Y軸について

 Z軸を動かす機構なので、「安定」を目指した。

 Z軸全体を乗せてスライドさせるために、平たく長い形にした。キャタピラを使うことでベルトコンベアのようにスムーズに横移動ができた。また、キャタピラを裏返して使うことで、Z軸が滑ってしまうなどの不要な動きを無くすことができた。

Z軸について

 Y軸の上に乗るので、「小さく軽く」をめざした。

 RISならではの平らなギアを使ってペンを上下に動くようにした。

 今回ペンは筆ペンを使った。これにより筆圧やペンを下す位置を細かく決める必要がなくなった。ペンはゴムで留めたが、ある程度自由が効くように緩めに留めた。さらに写真を見るとわかるが、ペンの上に隙間をあけた。これによって、筆圧がかかり過ぎてもペンが力を逃がすようになっている。

 Y軸の可動範囲を広くするために、Z軸の中に入れることにした。しかしペンが長く、車体に収まらなかった。なのでペンを切り半分以下の長さ(7cm)に加工した。

Zjiku.jpg

プログラムの説明

 今回は地名というお題だったので「佐久」という字を書くことにした。

 この字は左ハライが多いので、軸の方向を工夫した。これにより左ハライをdefineで置くことができた。

キャプチャ.PNG

define の説明

#define X_MAE OnFwd(OUT_A);                          //X軸を正の向きに動かす
#define Y_MAE OnFwd(OUT_B);                //Y軸を正の向きに動かす
#define Z_SITA OnFwd(OUT_C);Wait(7);Off(OUT_C);      //ペンを下ろす
#define XY_MAE OnFwd(OUT_AB);                        //XとY軸を正の向きに動かす
#define X_USI OnRev(OUT_A);                          //X軸を負の向きに動かす
#define Y_USI OnRev(OUT_B);                          //Y軸を負の向きに動かす
#define Z_UE OnRev(OUT_C);Wait(7);Off(OUT_C);        //ペンを上げる
#define W_TIME Wait(100);                            //1秒待つ

佐を書くプログラム

SetPower(OUT_A,3);
   SetPower(OUT_B,3);
   SetPower(OUT_C,3); //一画目
   Y_MAE;             //書き始めの位置へ
     Wait(18);        //移動
     Off(OUT_B);      //x軸止める
   W_TIME;            //1秒待つ
   Z_SITA;            //ペンを下ろす、移動、止める
   W_TIME;            //1秒待つ
   XY_MAE;            //モータxyを前転
     Wait(18);        //書く
     Off(OUT_AB);     //モータxyを止める
   W_TIME;            //1秒待つ
   Z_UE;              //ペンを上げる、待つ、止める
   W_TIME;
   X_USI;             //二画目
     Wait(6);
     Off(OUT_A);
   W_TIME;            //1秒待つ
   Y_USI;             //Y軸移動
     Wait(6);
     Off(OUT_B);
   W_TIME;            //一秒待つ
   Z_SITA;            //ペンヲ下す
   W_TIME;            //一秒待つ
   X_MAE;             //x軸移動
     Wait(18);
     Off(OUT_A);
   W_TIME;            //一秒待つ
   Z_UE;              //ペンを上げる
   W_TIME;            //一秒待つ
   X_USI;             //三画目
     Wait(18);
     Off(OUT_A);
   W_TIME;            //一秒待つ
   Y_USI;             //Y軸移動
     Wait(5);
     Off(OUT_B);
   W_TIME;            //一秒待つ
   Z_SITA;            //ペンを下げる
   W_TIME;            //一秒待つ
   Y_USI;             //Y軸移動
     Wait(18);
     Off(OUT_B);
   W_TIME;            //一秒待つ
   Z_UE;              //ペンを上げる
   W_TIME;            //一秒待つ
   X_USI;             //四画目
     Wait(5);   
     Off(OUT_A);
   W_TIME;            //一秒待つ
   Y_MAE;             //Y軸移動
     Wait(5);
     Off(OUT_B);
   W_TIME;            //一秒待つ
   Z_SITA;            //ペンを下げる
   W_TIME;            //一秒待つ
   XY_MAE;            //XY軸移動
     Wait(13);
     Off(OUT_AB);
   W_TIME;            //一秒待つ
   Y_USI;             //五画目
     Wait(18);
     Off(OUT_B);
   W_TIME;            //一秒待つ
   Z_UE;              //ペンを上げる
   W_TIME;            //一秒待つ
   Y_MAE;             //六画目
     Wait(9);
     Off(OUT_B);
   W_TIME;            //一秒待つ
   Z_SITA;            //ペンを下げる
   W_TIME;            //一秒待つ
   X_MAE;             //X軸移動
     Wait(9);
     Off(OUT_A);
   W_TIME;            //一秒待つ
   Z_UE;              //ペンを上げる
   W_TIME;            //一秒待つ
   Y_MAE;             //七画目
     Wait(9);
     Off(OUT_B);
   W_TIME;            //一秒待つ
   Z_SITA;            //ペンを下げる
   W_TIME;            //一秒待つ
   Y_USI;             //Y軸移動
     Wait(18);
     Off(OUT_B);
   W_TIME;            //一秒待つ
   Z_UE;              //ペンを上げる
   W_TIME;            //一秒待つ

久を書くプログラム

XY_MAE;                  //一画目
     Wait(5);
     Off(OUT_AB);
   W_TIME;               //一秒待つ
   Z_SITA;               //ペンを下げる
   W_TIME;               //一秒待つ
   XY_MAE;               //XY軸移動
     Wait(13);
     Off(OUT_AB);
   W_TIME;               //一秒待つ
   Z_UE;                 //ペンを上げる
   W_TIME;               //一秒待つ
   X_USI;               //二画目(1)
     Wait(9);
     Off(OUT_A);
   W_TIME;              //一秒待つ
   Y_USI;               //Y軸移動
     Wait(9);
     Off(OUT_B);
   W_TIME;              //一秒待つ
   Z_SITA;              //ペンを下げる
   W_TIME;              //一秒待つ
   Y_USI;               //Y軸移動
     Wait(13);
     Off(OUT_B);
   W_TIME;              //一秒待つ
   XY_MAE;              //二画目(2)
     Wait(20);
     Off(OUT_AB);
   W_TIME;              //一秒待つ
   Z_UE;                //ペンを上げる
   W_TIME;              //一秒待つ
   X_USI;               //三画目
     Wait(13);
     Off(OUT_A);
   W_TIME;              //一秒待つ
   Y_USI;               //Y軸移動
     Wait(13);
     Off(OUT_B);
   W_TIME;              //一秒待つ
   Z_SITA;              //ペンを下げる
   W_TIME;              //一秒待つ
   X_MAE;               //x軸移動
     Wait(13);
   Y_USI;               //Y軸移動
     Wait(13);
     Off(OUT_AB);
   W_TIME;              //一秒待つ
   Z_UE;                //ペンを上げる

メインプログラム

#define X_MAE OnFwd(OUT_A);
#define Y_MAE OnFwd(OUT_B);
#define Z_SITA OnFwd(OUT_C);Wait(7);Off(OUT_C);
#define XY_MAE OnFwd(OUT_AB);
#define X_USI OnRev(OUT_A);
#define Y_USI OnRev(OUT_B);
#define Z_UE OnRev(OUT_C);Wait(7);Off(OUT_C);
#define W_TIME Wait(100);
task main(){
   SetPower(OUT_A,3);
   SetPower(OUT_B,3);
   SetPower(OUT_C,3);
   Y_MAE;            //書き始めの位置へ
     Wait(18);        //移動
     Off(OUT_B);     //x軸止める
   W_TIME;
   Z_SITA;           //ペンを下ろす、移動、止める
   W_TIME;
   XY_MAE;           //モータxyを前転
     Wait(18);        //書く
     Off(OUT_AB);    //モータxyを止める
   W_TIME;
   Z_UE;             //ペンを上げる、待つ、止める
   W_TIME;
   X_USI;
     Wait(6);    //二画目
     Off(OUT_A);
   W_TIME;
   Y_USI;
     Wait(6);
     Off(OUT_B);
   W_TIME;
   Z_SITA;
   W_TIME;
   X_MAE;
     Wait(18);
     Off(OUT_A);
   W_TIME;
   Z_UE;
   W_TIME;
   X_USI;  //三画目
     Wait(18);
     Off(OUT_A);
   W_TIME;
   Y_USI;
     Wait(5);
     Off(OUT_B);
   W_TIME;
   Z_SITA;
   W_TIME;
   Y_USI;
     Wait(18);
     Off(OUT_B);
   W_TIME;
   Z_UE;
   W_TIME;
   X_USI;   //四画目
     Wait(5);
     Off(OUT_A);
   W_TIME;
   Y_MAE;
     Wait(5);
     Off(OUT_B);
   W_TIME;
   Z_SITA;
   W_TIME;
   XY_MAE;
     Wait(13);
     Off(OUT_AB);
   W_TIME;
   Y_USI;  //五画目
     Wait(18);
     Off(OUT_B);
   W_TIME;
   Z_UE;
   W_TIME;
   Y_MAE;  //六画目
     Wait(9);
     Off(OUT_B);
   W_TIME;
   Z_SITA;
   W_TIME;
   X_MAE;
     Wait(9);
     Off(OUT_A);
   W_TIME;
   Z_UE;
   W_TIME;
   Y_MAE;  //七画目
     Wait(9);
     Off(OUT_B);
   W_TIME;
   Z_SITA;
   W_TIME;
   Y_USI;
     Wait(18);
     Off(OUT_B);
   W_TIME;
   Z_UE;
   W_TIME;
   XY_MAE;  //一画目
     Wait(5);
     Off(OUT_AB);
   W_TIME;
   Z_SITA;
   W_TIME;
   XY_MAE;
     Wait(13);
     Off(OUT_AB);
   W_TIME;
   Z_UE;
   W_TIME;
   X_USI;  //二画目(1)
     Wait(9);
     Off(OUT_A);
   W_TIME;
   Y_USI;
     Wait(9);
     Off(OUT_B);
   W_TIME;
   Z_SITA;
   W_TIME;
   Y_USI;
     Wait(13);
     Off(OUT_B);
   W_TIME;
   XY_MAE;  //二画目(2)
     Wait(20);
     Off(OUT_AB);
   W_TIME;
   Z_UE;
   W_TIME;
   X_USI;  //三画目
     Wait(13);
     Off(OUT_A);
   W_TIME;
   Y_USI;
     Wait(13);
     Off(OUT_B);
   W_TIME;
   Z_SITA;
   W_TIME;
   X_MAE;
     Wait(13);
   Y_USI;
     Wait(13);
     Off(OUT_AB);
   W_TIME;
   Z_UE;
}

結果

結果.JPG

 文字を書くことはできたが、誰が見ても読めるようなクオリティの字を書くことはできなかった。

 原因として、X軸の製作時にパーツを多く使いすぎてしまい、別の場所でちょうど良い部品を使えず、あり合わせの部品での製作となり、安定性が欠けてしまった。 Y軸のギアに力がかかりすぎたことでギアが外れてしまうということが起きた。これによりY軸方向の動きが鈍くなり、うまく書くことができなかった。


添付ファイル: file結果.JPG 116件 [詳細] file_20180806_205551.JPG 61件 [詳細] filedefine.nqc 64件 [詳細] file佐.nqc 65件 [詳細] file久.nqc 57件 [詳細] filezjiku.nqc 62件 [詳細] filexyjiku.nqc 58件 [詳細] filesaku.nqc 58件 [詳細] fileXとY2.jpg 190件 [詳細] file全体.jpg 51件 [詳細] fileZjiku.jpg 166件 [詳細] fileキャプチャ.PNG 113件 [詳細] file1527858048240.jpg 78件 [詳細] file1527858043728.jpg 59件 [詳細] file1527858046072.jpg 60件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-08-08 (水) 22:21:55