目次

ロボット本体の説明

全体図

プログラムを簡単するためにロボットの動きをアームの上げ下げ、前後(y軸)の動き、アームの左右(x軸)の動きの3つの動作に分けた。

アームの動き

アーム

アームはペンをブロックにゴムでつけ、それをモータで上下させるシンプルなものにした。

前後(y軸)の動き

前後の動き

後輪を回転させることで前後の動きをさせた。

アームの左右(x軸)の動き

レール
x軸

x軸の動きが今回の課題で最も苦労した点だった。ブロックを組み合わせることで写真のレールのようなものを作り、その上をアームが滑るようにした。

プログラムの説明

#define go(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);Wait(100); 
#define back(t) OnRev(OUT_B);Wait(t);Off(OUT_B);Wait(100);
#define UP OnFwd(OUT_A);Wait(20);Off(OUT_A);Wait(100);
#define DOWN OnRev(OUT_A);Wait(20);Off(OUT_A);Wait(100);
#define go_left(t) OnFwd(OUT_C);Wait(t);Off(OUT_C);Wait(100);
#define go_right(t) OnRev(OUT_C);Wait(t);Off(OUT_C);Wait(100);
task main()
{
     UP;
     go_left(8);
     DOWN;
     go_left(16);
     UP;
     go_right(8);
     DOWN;
     go(24);
     go_right(8);
     back(16);
     go_left(16);
     go(16);
     go_right(8);
     UP;
     back(8);
     go_right(8);
     DOWN;
     go_left(16);
     UP;
     go_right(24);
     DOWN;
     go(16);
     go_left(32);
     back(16);
     UP;
}
    

定義について

#define go(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);Wait(100); 
#define back(t) OnRev(OUT_B);Wait(t);Off(OUT_B);Wait(100);
#define UP OnFwd(OUT_A);Wait(20);Off(OUT_A);Wait(100);
#define DOWN OnRev(OUT_A);Wait(20);Off(OUT_A);Wait(100);
#define go_left(t) OnFwd(OUT_C);Wait(t);Off(OUT_C);Wait(100);
#define go_right(t) OnRev(OUT_C);Wait(t);Off(OUT_C);Wait(100);

今回の課題では6つの動作を定義した。定義した内容は以下の通りである。

各動作の間に止まる時間を入れなければ文字の角がきれいに書けなかったのですべての動作に1秒間止まる動作を付けた。これらの動作を定義したことでメイン動作のプログラムを簡略化できた。

動作について

動作を少なくするために書き順などは無視した。横線を書く際、左から右へ書いたほうが上手く書けたため、なるべく左から右へ書くように工夫した。また、ペンの上げ下げを減らすためにつなげられる部分は一筆書きのように書いた。

まとめ

文字

上が本番で書い文字である。文字をきれいに書くことができたので、苦労して作業した甲斐があった。今回の課題では、アームを左右に動かすこと(x軸)が難しかった。ロボットを作ることに時間をかけたため、プログラミングを単純なものにできた。また、動作を3つに分けたことできれいな文字を書くことができた。文字を5cm四方程度の大きさにしたことも上手く書けた要因だと考えられる。改善点としては、動作をゆっくりにするためにギアの使い方を工夫することがあげられる。ロボットを動かしても最初は読める文字を書けなかったが、失敗を繰り返して上達できて楽しかった。


添付ファイル: fileロボ6.jpeg 225件 [詳細] fileロボ5.jpeg 214件 [詳細] fileロボ4.jpeg 239件 [詳細] fileロボ3.jpeg 197件 [詳細] fileロボ2.jpeg 232件 [詳細] fileロボ1.jpeg 278件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-11-10 (木) 21:29:41