文字書きロボット(西条)

課題内容

A4用紙に自身に関係のある漢字2文字以上の地名を書く。

本体の構造

本体は、NXTの組み立て例をベースにし前輪2つ、後輪1つの3輪である。

前輪は左右それぞれが独立し動く。

本体上.gif
本体横.gif

アーム部分

アームはモータの回転を利用しペン先を上下させている。

ペンの固定には、セット付属の輪ゴムを使用している。

アーム上.gif
アーム横.gif

プログラム

移動(前進・後退)

前進・後退はサブルーチンにし、進む距離(cm)を入力できるようにし,

自由に調節できるようにした。

前進

sub zen(int i)
{
	int t;
	t=i*100;
	OnFwd(OUT_B,29); OnFwd(OUT_C,25);
	Wait(t);
	Off(OUT_BC);
}

後退

sub kou(int i)
{
	int t;
	t=i*100;
	OnRev(OUT_B,29);OnRev(OUT_C,25);
	Wait(t);
	Off(OUT_BC);
}

回転

本体の回転は、左右、45度・90度で4通りを#difineで設定した。

右45度
#define kaiten45r OnFwd(OUT_C,50);OnRev(OUT_B,50);Wait(200);Off(OUT_BC);

右90度
#define kaiten90r OnFwd(OUT_C,50);OnRev(OUT_B,50);Wait(400);Off(OUT_BC);

左45度
#define kaiten45l OnFwd(OUT_B,50);OnRev(OUT_C,50);Wait(200);Off(OUT_BC);

左90度
#define kaiten90l OnFwd(OUT_B,50);OnRev(OUT_C,50);Wait(400);Off(OUT_BC);

アームの上下

アームの動きは#difineで設定した。

Waitの時間が違うのは上げるときと下げるときにモータの回転時間が変わったから。

下げ
#define down OnFwd(OUT_A,22); Wait(260); Off(OUT_A);

上げ
#define up Wait(100); OnRev(OUT_A,19); Wait(300); Off(OUT_A);

考察

回転や直進だけで書けるようにしたが電源の強さによって変わってしまう。

そのずれを解消できるようにしたい。

制作物

結果.gif

添付ファイル: file結果.gif 156件 [詳細] file本体上.gif 163件 [詳細] file本体横.gif 160件 [詳細] fileアーム上.gif 52件 [詳細] fileアーム横.gif 180件 [詳細]

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