目次

はじめに

課題はお絵かきロボットの作成である。
詳しい内容は
自分またはチームメイトの似顔絵を描くロボットを製作しなさい。
以下の点に注意すること。
・マクロや関数、サブルーチンなどを使い、main関数がなるべく単純になるようにプログラムを作ること。
・定数名やマクロなどは分かりやすい名前を用いること。・余裕をもってA4の紙の中に収まる大きさにすること。いくら小さくてもよい。
・ペン以外はキットの部品を使うこと。
・輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりすぎないようにすること。
(>2016年度前期/課題1)より
今回は、自分の顔を少し美化して描いてみることにした。

ロボット本体の説明

image2.JPG

ロボット本体の右側に、
車輪の回転に使用している部品と同じものを装着し、
ペンのUP、DOWNに利用した。
ペンの固定方法は、
タイヤを使用し両側からペンを挟んだ。
加えて、進んだときに、ペンが前に倒れてしまわぬよう
ほかのパーツを用い前方を固定した。

image1.JPG

ペンが上下にずれてしまわぬよう、
ペンに輪ゴムを巻き付け滑り止め代わりとした。

プログラミングの説明

定義文

#define circle OnFwd(OUT_B,75);Wait(3200);Off(OUT_B);
#define go_f(t) OnFwd(OUT_BC,75);Wait(t);Off(OUT_BC);
#define go_r(t) OnRev(OUT_BC,75);Wait(t);Off(OUT_BC);
#define turn_r OnFwd(OUT_C,75);OnRev(OUT_B,75);Wait(300);Off(OUT_BC);
#define turn_l OnFwd(OUT_B,75);OnRev(OUT_C,75);Wait(300);Off(OUT_BC);
#define pen_down OnFwd(OUT_A,75);Wait(100);Off(OUT_A);
#define pen_up OnRev(OUT_A,75);Wait(100);Off(OUT_A);
image3.jpg

最初、NXTが紙の中心にある状態からスタートする。
書き順は写真の通りである。

task_main()
{
 circle;//輪郭
 define go_r(800);//顔と髪の境目
 pen_up;
 turn_r;
 go_f(200);
 turn_l;
 go_f(250);
 pen_down;
 go_f(250);//目
 pen_up;
 go_f(250);
 pen_down;
 go_f(250);//目
 pen_up;
 turn_r;
 go_f(250);
 turn_r;
 go_f(200);
 pen_down;
 go_f(350);//口
 pen_up;
}

プログラミングをスマートにまとめるため、
定義式を多く使用した。

感想

初めてのプログラミングだったが、
チームの仲間や先生から教えてもらい、
なんとか完成させることができた。
今回の反省点は、ロボットにペンを持たせるために
数多くのパーツを使用し、まるで戦車のような
たたずまいになってしまったことだ。
次回はもっと工夫し、シンプルにまとめたいと思う。
一方、似顔絵はかなりシンプルに仕上がった。
当初の、自分の顔を美化するという目的は
達成できたが、もう少し複雑な似顔絵も
書いてみたいと思った。
プログラミングにも慣れてきたので、
課題2では、今回の反省を生かしたい。


添付ファイル: fileimage3.jpg 132件 [詳細] fileimage1 (1).JPG 76件 [詳細] fileimage1.JPG 152件 [詳細] fileimage2.JPG 165件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-06-06 (月) 01:24:20 (1174d)