課題目的

今回の課題の目的はこれまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙の中1に書くロボットを製作する。

わたしは大学に入る前の1年半の間、東京で日本語を勉強していたので「東京」の文字を選んだ。

ロボットについて

ロボットを作る前にグループの中で様々なことを考えた。例えば、各自の文字の書く方法、過去のロボット、などである。結局、プログラムを簡単に書けるためx-y軸するロボットを作ることに決定した。

本体ロボット

ロボットでは、図のように3つのモータを使った。(A)x軸移動のモータ(右左)、(B)y軸移動のモータ(上下)(C)アームのモータ(ペンの上げ下げ)。

x軸移動ロボット

x軸移動ロボット

図より、x軸移動ロボットではローバー部分と高架部分である。

y軸移動とアームロボット

y軸移動とアームロボット

プログラムについて

文字を書く前に方向による1センチの線を書くためにモータのスピード(speed)と動く時間(Wait)を測定した。また、アームロボットではペンの上げ下げのためのモータのスピード(speed)と動く時間(Wait)も測定した。結果は以下のものである;

方向スピード(speed)動く時間(Wait)
leftとright20200
upとdown20300
liftpen23200
putpen15250

また、斜め線の場合はx軸移動とy軸移動を両方使った。1センチの線を書くためにモータのスピード(speed)と動く時間(Wait)の測定結果は以下のものである;

方向xのスピード(x-speed)yのスピード(y-speed)動く時間(Wait)
leftup1715250
leftdown1515250
rightup1314250
rightdown1517250

同じ1センチを書くだが方向が違うと動くロボットが違う。それは、x軸移動ロボットの移動がy軸移動ロボットよりいどうが遅い。

文字の書く方法

東京の書く方法

文字については、できるだけロボットを移動しないように図のように書き順を決めた。ただし、オレンジ色はペンを上げること、また、灰色はペンを上げ下げること。番号のように文字を書くことを行った。

プログラムの説明

東京を書くためのプログラム以下のようになる。

マクロの説明

定義(define)は実験からの値を扱う

#define left(t) OnFwd(OUT_A,20);Wait(t);Off(OUT_A);   //leftの移動
#define right(t) OnRev(OUT_A,20);Wait(t);Off(OUT_A);   //rightの移動
#define up(t) OnFwd(OUT_B,20);Wait(t);Off(OUT_B);    //upの移動
#define down(t) OnRev(OUT_B,20);Wait(t);Off(OUT_B);   //downの移動
#define liftpen OnRev(OUT_C,23);Wait(200);Off(OUT_C);   //ペンを上げる
#define putpen OnFwd(OUT_C,15);Wait(250);Off(OUT_C);   //ペンを下げる
#define leftdown(t) OnFwd(OUT_A,15);OnRev(OUT_B,15);Wait(t);Off(OUT_AB); //leftdownの移動
#define rightdown(t) OnRev(OUT_A,17);OnRev(OUT_B,15);Wait(t);Off(OUT_AB);  //rightdownの移動
#define leftup(t) OnFwd(OUT_A,15);OnFwd(OUT_B,17);Wait(t);Off(OUT_AB);  //leftupの移動
#define rightup(t) OnRev(OUT_A,13);OnFwd(OUT_B,14);Wait(t);Off(OUT_AB);  //rightupの移動

main内で実行しているの説明

文字「東」と「京」をそれぞれ説明するが、さっきほどの文字の書く方法(1ー12までの順番): 文字の書く方法に沿って説明したいと思う。ただし、ロボットを安定するや脱輪しないのため時々ロボットを止める(Waitを使って実行する)

文字「東」

task main()
{
    putpen;
    right(1800);   //ここから「東」を書く。(Pendown1)
    Wait(400);   //ロボットを安定するや脱輪しないのため時々ロボットを止める
    liftpen;   //Penup2
    left(1800);   
    down(1400); 
    putpen;   //Pendown3
    Wait(400);
    right(2000);
    Wait(400);
    up(600);
    Wait(400);
    left(2000);
    Wait(400);
    down(1200);
    Wait(400);
    right(2100);
    Wait(400);
    up(600);
    liftpen;
    left(1000);
    up(2000);
    putpen   //Pendown4
    down(1200);
    Wait(400);
    down(1200);
    Wait(400);
    down(1200);
    liftpen;
    up(1000);
    putpen;   //Pendown5    
    Wait(400);
    leftdown(1400);
    liftpen;
    rightup(1500);
    putpen;   //Pendown6      
    Wait(400);     
    rightdown(1400);
    liftpen;   //「東」を書き終わった。
    leftup(1500);   //ここはロボットを文字「東」 から 「京」に移動する命令
    up(2200);
    right(2800);    

文字「京」

    putpen;   // ここから「京」を書く。(Pendown7)
    Wait(400);
    down(500);
    liftpen;
    left(1000);
    putpen;   //Penup8
    Wait(400);
    right(2000);
    liftpen;   //Pendown9
    down(1100);
    putpen;   //Penup10
    Wait(400);
    up(600);
    Wait(400);
    left(2000);
    Wait(400);
    down(1200);
    Wait(400);
    right(2100);
    Wait(400);
    up(600);
    Wait(400);
    liftpen;   //Pendown11
    left(1000);
    down(800);
    putpen;   //Penup11
    Wait(400);
    down(1100);
    liftpen;        
    up(1000);
    leftdown(400);
    putpen;   //Pendown12
    Wait(400);
    leftdown(1100);
    liftpen;
    up(640);
    right(1000);
    putpen;
    rightdown(1100);
    liftpen;   //「京」を書き終わった。(Finish)
}

最初では実験の結果とおりプログラムを書いたが、実際にやってみると文字はうまく書けない。そのため、モータのスピード(speed)と動く時間(Wait)を少し変えた。

結果

結果

図のように発表準備したときロボットは4回連続「東京」の文字は書けたが、発表したときロボットがうまく文字を書けなかった。特にペンの上げ下げが問題であった。それは電源が原因だと考えた。

まとめ

ロボットではいろいろな工夫点であったが、まだ欠点がある。例えば、発表したときのペンの上げ下げが問題である。先生より、ペンの運動が円運動であり、ロボットがバランスとることが難しい事が指摘された。また、部品をたくさん使ったが無駄な部品が多かった。次回の課題はそのことを考えなければならない。 今回の課題ではロボットを作ったこととプログラムを書くことは初めてである。また、留学生の立場で日本人とグループワークすることも初めてであったがみんなが優しくしてくれた。今回の課題により、さらにコミュニケーションをすることができたと思う。


添付ファイル: filerobot5.jpg 222件 [詳細] filerobot4.jpg 245件 [詳細] filerobot3.jpg 215件 [詳細] filerobot1.jpg 249件 [詳細] filerobot2.jpg 217件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-12-23 (土) 14:06:54