目次

課題1

ロボットの説明

ロボットの概要

ロボットの移動

ペンの上げ下げ

プログラムの説明

RotateMotor(OUT_モーター名,パワー,角度)
指定したモーターを指定した角度分前転させる
今回のロボットにおいてB,Cどちらか片方を指定すると左右どちらかを向く
B,C両方を指定すると前進する
RotateMotorEx(OUT_モーター名1,モーター名2,パワー,角度,true,false)
指定した2種のモーターを指定した角度分反転して回転させる
今回のロボットにおいてB,Cを指定すると旋回する
int X=0
for(X=0;X<Y;X++){プログラム}
{}内のプログラムを規定回数繰り返す(Xは任意のアルファベット、Yは繰り返したい回数の数字)
#define pen_up RotateMotor(OUT_A,30,15);Off(OUT_A)
ペンを持ち上げる動作を行う
#define pen_down RotateMotor(OUT_A,30,-15);Off(OUT_A)
ペンを下げる動作を行う
#define turn RotateMotor(OUT_B,30,180);RotateMotor(OUT_C,-30,155);Off(OUT_BC)
90度左を向く
#define n_turn RotateMotor(OUT_B,-30,165);RotateMotor(OUT_C,30,180);Off(OUT_BC)
90度右を向く
#define stp Off(OUT_BC)
モーターの回転を止める(動作後の角度のズレを抑制するため1動作が終了するごとに回転を止める)

ロボットによる字の書き順

矢印の方向に番号順に描いていく
またロボットで描きやすくするために実際の書き順や方向、向きを変更した

I_W.jpeg

字を描くプログラム

上記の通りズレ抑制のため1動作完了ごとにモーターを止めている
ペンを上げている状態での移動は旋回によるズレを修正するためである
最初はペンを下した状態で始める

「田」を描くプログラム

真っ直ぐ進み90度左を向く動作を4回繰り返すことで描く(プログラムの構成上、ただ4回繰り返すと最後に無意味にペンを下す動作が入るので、最後の一回だけ別枠に取った)

「の」を描くプログラム

「神」を描くプログラム

実際にロボットで描いた「田の神」

R_W.jpeg

「田」はそこそこ判別できる程度だと思うが、「神」の{申}部分が判別しにくいほど崩れてしまった。
「の」の曲線部分はうまくできたと思う。

感想・反省点

字を描くロボットを作成するのに思いのほか手間取り、あまり字を書くのに適していないロボットで課題に臨んでしまったように感じる。特に旋回によるペンの終点、始点のズレや、A4サイズの紙に収める大きさで描くのが大変だった。それでもプログラミングを頑張ったおかげか、何とか位置を修正、是正して形にすることができたのはよかったと思う。

字をロボットで描く中で、同じプログラムを使用しても同じように動作してくれないことがあり、変数の指定に難儀した。理由としては、自由駆動の後輪のようなロボットの機体が外的要因により何らかの変性を起こし、不変性が乱されていると考えられるので、今度作るロボットではあまり外的要因に左右されないような部品で作っていきたいと思う。

ロボット作成からレポートの完成まで時間がかかり、発表の時間に間に合わなかったり、妥協点や改善点が多くできてしまったので、次回からは適切にこなしていきたい。

参考


添付ファイル: fileR_W.jpeg 184件 [詳細] fileI_W.jpeg 205件 [詳細] fileA_f.jpeg 169件 [詳細] filerb_atach.jpeg 154件 [詳細] fileA_s.jpeg 187件 [詳細] filerb_bt.jpeg 146件 [詳細] filerb_f.jpeg 187件 [詳細] filerb_b.jpeg 94件 [詳細] filerb_f.png 111件 [詳細]

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