2015a/Member/nori/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015a/Member]
* 課題内容 [#r7252e96]
** 書道ロボット [#c49fa0f3]
各自の名前の中の一文字(7画以上)をA4用紙に書く.私は「垣」...
*** 注意点 [#qc1c573f]
-マクロや関数,サブルーチンなどを使い,main関数がなるべく...
-定数名やマクロなどは分かりやすい名前を用いること.
-余裕をもってA4の紙の中に収まる大きさにすること.読める範...
-ペン以外はキットの部品を使うこと.
-輪ゴムは切れやすく高価なので慎重に扱い,張力がかかりすぎ...
[[課題1>2015a/Mission1]]参照
* 目次 [#u1067348]
#contents
* ロボット本体 [#gcfb165d]
** 全体 [#r341cea1]
モーターを3つ使い,縦の動き(青矢印),横の動き(黄矢印),ペ...
#ref(./DSC_0104_001 (2).jpg,20%)
** 縦の動き [#de8dde34]
一つのモーターで左右のタイヤを動かすため,写真のようにギ...
また,曲がる必要がないから前輪を二つ取り付け本体を安定さ...
#ref(./DSC_0131 (2).JPG,10%)
** 横の動き [#f16a8b61]
このロボットの仕組みでは,ペンの取り付け部が地面と平行に...
#ref(./DSC_0110 (2).JPG,10%)
本体に取り付けることができないから,実際に文字を書くとき...
そこで,土台を作りその上を滑らせてみることにした.
土台にはブロックが引っかからない部品を使った.
#ref(./DSC_0123 (2).JPG,10%)
組み合わせると次のようになる.
&ref(./DSC_0126 (2).JPG,10%);
&ref(./DSC_0124 (2).JPG,10%);
** ペンの上下 [#ue11fe42]
写真のように.ペンをギアの回転で地面からペンを離したり,...
#ref(./DSC_0113 (2).JPG,10%)
* プログラム [#g10520a3]
** 定数 [#u9bdca39]
PEN_TIMEでペンを上げ下げする時間を定義し,WAIT_TIMEでロボ...
#define PEN_TIME 3
#define WAIT_TIME 20
** マクロ [#te698e20]
side_go(t),side_back(t)で横の動き,length_go(t),length_...
#define side_go(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);Wait(...
#define side_back(t) OnRev(OUT_B);Wait(t);Off(OUT_B);Wai...
#define length_go(t) OnFwd(OUT_C);Wait(t);Off(OUT_C);Wai...
#define length_back(t) OnRev(OUT_C);Wait(t);Off(OUT_C);W...
** サブルーチン [#g1fd70ad]
ペンの上げ下げのプログラムは多く使用するためサブルーチン...
sub down_pen()
{
OnRev(OUT_A);Wait(PEN_TIME);Off(OUT_A); //ペンを上げる
Wait(WAIT_TIME);
}
sub up_pen()
{
OnFwd(OUT_A);Wait(PEN_TIME);Off(OUT_A); //ペンを下げる
Wait(WAIT_TIME);
}
また,プログラムの中で一番苦労したのは3画目の斜めの線だ.
最初は斜めを書くには,ペンを置いて縦と横を同時に動かせば...
そこでペンを置かずに縦と横を同時に動かして勢いをつけてか...
プログラムが複雑になってしまったが,このプログラムで斜め...
sub naname()
{
OnFwd(OUT_C);OnFwd(OUT_B);Wait(8); //斜めに勢いをつける
OnRev(OUT_A);Wait(PEN_TIME);Off(OUT_A); //斜め...
Wait(3);Off(OUT_BC); //斜めを描く
OnFwd(OUT_A);Wait(PEN_TIME);Off(OUT_A);
}
** 書き順 [#k3dad481]
このロボットでは横線を右から左に書くのと,左から右に書く...
今回の課題では書き順は指定されていないが,書き順通りにプ...
書き順通りにすれば横線を左から右に統一でき,同じ線が引け...
** main関数 [#s7cf0e51]
task main()
{
down_pen();side_go(7);up_pen(); //一画目
length_go(5);side_back(3);
down_pen();length_back(13);up_pen(); //二画目
side_back(17);length_back(8);
naname(); //三画目
length_go(2);side_go(3);
down_pen();side_go(8);up_pen(); //四画目
side_back(8);length_back(6);
down_pen();length_back(10);up_pen(); //五画目
length_go(10);
down_pen();side_go(8);length_back(12);up_pen(); //六画目
side_back(8);length_go(7);
down_pen();side_go(8);up_pen(); //七画目
side_back(8);length_back(5);
down_pen();side_go(8);up_pen(); //八画目
side_back(9);length_back(5);
down_pen();side_go(11);up_pen(); //九画目
}
* 「垣」を書く [#g961c2c4]
まず文字を書く前にロボットの初期状態を確認しなければなら...
部品同士が摩擦を起こしすぎていないか,ペンの高さは低すぎ...
それと横の動きをする部品は少し出した状態から始めなければ...
確認を怠るとへんとつくりが合体してしまったりバランスの悪...
確認をしてから書いてみると右図のようになる.
&ref(./DSC_0134 (2).JPG,10%,right);
納得のいくバランスの良い文字が書けた.
* まとめと反省 [#yfdea09a]
ギア比を調節して速さを変えることをしていないから,それぞ...
今回はプログラムの方をロボットに合わせたが、細かくプログ...
終了行:
[[2015a/Member]
* 課題内容 [#r7252e96]
** 書道ロボット [#c49fa0f3]
各自の名前の中の一文字(7画以上)をA4用紙に書く.私は「垣」...
*** 注意点 [#qc1c573f]
-マクロや関数,サブルーチンなどを使い,main関数がなるべく...
-定数名やマクロなどは分かりやすい名前を用いること.
-余裕をもってA4の紙の中に収まる大きさにすること.読める範...
-ペン以外はキットの部品を使うこと.
-輪ゴムは切れやすく高価なので慎重に扱い,張力がかかりすぎ...
[[課題1>2015a/Mission1]]参照
* 目次 [#u1067348]
#contents
* ロボット本体 [#gcfb165d]
** 全体 [#r341cea1]
モーターを3つ使い,縦の動き(青矢印),横の動き(黄矢印),ペ...
#ref(./DSC_0104_001 (2).jpg,20%)
** 縦の動き [#de8dde34]
一つのモーターで左右のタイヤを動かすため,写真のようにギ...
また,曲がる必要がないから前輪を二つ取り付け本体を安定さ...
#ref(./DSC_0131 (2).JPG,10%)
** 横の動き [#f16a8b61]
このロボットの仕組みでは,ペンの取り付け部が地面と平行に...
#ref(./DSC_0110 (2).JPG,10%)
本体に取り付けることができないから,実際に文字を書くとき...
そこで,土台を作りその上を滑らせてみることにした.
土台にはブロックが引っかからない部品を使った.
#ref(./DSC_0123 (2).JPG,10%)
組み合わせると次のようになる.
&ref(./DSC_0126 (2).JPG,10%);
&ref(./DSC_0124 (2).JPG,10%);
** ペンの上下 [#ue11fe42]
写真のように.ペンをギアの回転で地面からペンを離したり,...
#ref(./DSC_0113 (2).JPG,10%)
* プログラム [#g10520a3]
** 定数 [#u9bdca39]
PEN_TIMEでペンを上げ下げする時間を定義し,WAIT_TIMEでロボ...
#define PEN_TIME 3
#define WAIT_TIME 20
** マクロ [#te698e20]
side_go(t),side_back(t)で横の動き,length_go(t),length_...
#define side_go(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);Wait(...
#define side_back(t) OnRev(OUT_B);Wait(t);Off(OUT_B);Wai...
#define length_go(t) OnFwd(OUT_C);Wait(t);Off(OUT_C);Wai...
#define length_back(t) OnRev(OUT_C);Wait(t);Off(OUT_C);W...
** サブルーチン [#g1fd70ad]
ペンの上げ下げのプログラムは多く使用するためサブルーチン...
sub down_pen()
{
OnRev(OUT_A);Wait(PEN_TIME);Off(OUT_A); //ペンを上げる
Wait(WAIT_TIME);
}
sub up_pen()
{
OnFwd(OUT_A);Wait(PEN_TIME);Off(OUT_A); //ペンを下げる
Wait(WAIT_TIME);
}
また,プログラムの中で一番苦労したのは3画目の斜めの線だ.
最初は斜めを書くには,ペンを置いて縦と横を同時に動かせば...
そこでペンを置かずに縦と横を同時に動かして勢いをつけてか...
プログラムが複雑になってしまったが,このプログラムで斜め...
sub naname()
{
OnFwd(OUT_C);OnFwd(OUT_B);Wait(8); //斜めに勢いをつける
OnRev(OUT_A);Wait(PEN_TIME);Off(OUT_A); //斜め...
Wait(3);Off(OUT_BC); //斜めを描く
OnFwd(OUT_A);Wait(PEN_TIME);Off(OUT_A);
}
** 書き順 [#k3dad481]
このロボットでは横線を右から左に書くのと,左から右に書く...
今回の課題では書き順は指定されていないが,書き順通りにプ...
書き順通りにすれば横線を左から右に統一でき,同じ線が引け...
** main関数 [#s7cf0e51]
task main()
{
down_pen();side_go(7);up_pen(); //一画目
length_go(5);side_back(3);
down_pen();length_back(13);up_pen(); //二画目
side_back(17);length_back(8);
naname(); //三画目
length_go(2);side_go(3);
down_pen();side_go(8);up_pen(); //四画目
side_back(8);length_back(6);
down_pen();length_back(10);up_pen(); //五画目
length_go(10);
down_pen();side_go(8);length_back(12);up_pen(); //六画目
side_back(8);length_go(7);
down_pen();side_go(8);up_pen(); //七画目
side_back(8);length_back(5);
down_pen();side_go(8);up_pen(); //八画目
side_back(9);length_back(5);
down_pen();side_go(11);up_pen(); //九画目
}
* 「垣」を書く [#g961c2c4]
まず文字を書く前にロボットの初期状態を確認しなければなら...
部品同士が摩擦を起こしすぎていないか,ペンの高さは低すぎ...
それと横の動きをする部品は少し出した状態から始めなければ...
確認を怠るとへんとつくりが合体してしまったりバランスの悪...
確認をしてから書いてみると右図のようになる.
&ref(./DSC_0134 (2).JPG,10%,right);
納得のいくバランスの良い文字が書けた.
* まとめと反省 [#yfdea09a]
ギア比を調節して速さを変えることをしていないから,それぞ...
今回はプログラムの方をロボットに合わせたが、細かくプログ...
ページ名: