2017b/Member/Yoshi/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
ホーム[[2017b/Member]]
*1課題 [#hfe78483]
これまで住んだことのある都道府県名、市町村名、地区名など...
これより私の出身地である「埼玉」を書くことにした
*2ロボットの紹介 [#hfe78483]
**ロボット制作にあたって[#afc62274]
私たちがろぼっとを作るにあたってまず、モーター1つにつき一...
参考にした画像
&ref(2016b/Member/ta.kashi/Mission1/Fig_001.JPG,50%,参考...
**ロボットの形 [#n402669d]
&ref(2017b/Member/Yoshi/Mission1/ko-zenntaizu.jpg,50%,子...
&ref(2017b/Member/Yoshi/Mission1/dodai-zenntai.jpg,87%,土...
&br;
右のロボットが土台となりX軸方向に自由に移動できる。
&br;
左のロボットが土台のレールにのり、レール上をY軸方向に移動...
&ref(2017b/Member/Yoshi/Mission1/robo-zenntai.jpg,90%,全...
&br;
完成形は上図のようになっています。
X方向には無制限に動けますがY方向にはレールの長さ分のみし...
*3ロボット作成で工夫した点 [#r3f47f32]
**土台部分(X軸) [#w709e2dc]
&ref(2017b/Member/Yoshi/Mission1/dodai-yokohaba.jpg,70%,...
ロボットの安定性を高めるためにタイヤの間隔をひろくとりま...
**上部(Y軸、ペンの上下) [#k25b8768]
&ref(2017b/Member/Yoshi/Mission1/ko-hukann.jpg,70%,全体像);
&ref(2017b/Member/Yoshi/Mission1/ko-pen.gif,43%,ペンの機...
参考サイトに習い、上部の安定性を向上するために、レールの...
また筆ペンの上下機構がレール上からずれていてバランスが悪...
2枚目の画像のようにペンを上下する機構はモーターの回転する...
*4プログラム [#t1f283c1]
**定義した定数 [#o1329b1a]
プログラムを簡略化し、開発しやすくするためにいくつか定数...
&br;
以下はその抜粋です
#define Apower 35
#define Bpower 34
#define Ytime 1624 //y軸で10cm進むのに必要なおおよそ...
#define gotime 1692 //x軸で10cm進むのに必要なおおよそ...
#define bai 0.8 //文字を書く倍率
解説が必要なのは少ないでしょうが、まず上二つが移動用モー...
&br;
次の二つはそれぞれの方向で定義した出力で動かした際に10cm...
&br;
最後の定数の「bai」は文字を書く際の倍率です。プログラム上...
**定義したサブ関数 [#m9587eea]
定数と同様にいくつかサブ関数を定義しました。これにより可...
&br;
以下はその抜粋です
sub go_forX(float t)
{
OnFwd(OUT_A,Apower);
Wait(t*gotime*bai);
Float(OUT_AB); //前進X(t×10)cm
Wait(1000);
}
sub go_backX(float t)
{
OnFwd(OUT_A,-Apower);
Wait(t*gotime*bai);
Float(OUT_AB); //後進X(t×10)cm
Wait(1000);
}
sub go_forY(float t)
{
OnFwd(OUT_B,-Bpower);
Wait(t*Ytime*bai);
Float(OUT_AB); //前進Y(t×10)cm
Wait(1000);
}
sub go_backY(float t)
{
OnFwd(OUT_B,Bpower);
Wait(t*Ytime*bai);
Float(OUT_AB); //後進Y(t×10)cm
Wait(1000);
}
sub penup()
{
RotateMotor(OUT_C, 10,50);
Wait(1500);
Off(OUT_C); //ペンを上げる
}
sub pendown()
{
RotateMotor(OUT_C, -10,50);
Wait(1500);
Off(OUT_C); //ペンを下げる
}
sub go_XY(float t)
{
OnFwd(OUT_B,-Bpower);
OnFwd(OUT_A,Apower);
Wait(t*Ytime*bai);
Float(OUT_AB); //斜めYは(t×10)cm
Wait(1000);
penup();
OnFwd(OUT_B,Bpower);
OnFwd(OUT_A,-Apower);
Wait(t*Ytime*bai);
Float(OUT_AB);
Wait(1000);
}
sub go_XY2(float t)
{
OnFwd(OUT_B,-Bpower);
OnFwd(OUT_A,-Apower);
Wait(t*Ytime*bai);
Float(OUT_AB); //斜めYは(t×10)cm
Wait(1000);
penup();
OnFwd(OUT_B,Bpower);
OnFwd(OUT_A,Apower);
Wait(t*Ytime*bai);
Float(OUT_AB);
Wait(1000);
}
定義したサブ関数は大きく分けてペンを所定の位置に動かすも...
&br;
まず所定の位置に動かすものは、すべて変数tがモーターの駆動...
&br;
またロボットが動いたとは機体が揺れることを考慮して1秒の待...
可
「go_XY、go_XY2」はペンが斜めに移動する用の関数です斜めに...
ペンを上下するものは単純です。モーターを特定の角度だけ回...
**実行するプログラム [#t144e1c4]
ここまでで定義したものを使って「埼玉」と書くために以下の...
task main ()
{
ResetTachoCount(OUT_C);
penup();
go_backY(0.9); //調整1
pendown();
go_backX(0.5); //よこ(土)
penup();
go_forY(0.3);
pendown();
go_forX(0.5); //よこ
penup();
go_backX(0.25); //よこ
pendown();
go_backY(0.5); //縦
penup();
go_backX(0.6);//移動to大
go_backY(0.4);
pendown();
go_forY(0.2); //たて()大
go_XY(0.25); //斜め1
pendown();
go_XY2(0.25); //斜め2
go_forX(0.25);
pendown();
go_backX(0.5); //横(大)
penup();
go_forY(0.5); //移動to可
go_forX(0.4);
pendown();
go_backX(0.5); //可はじめ
go_forY(0.5);
penup();
go_forX(0.4);
go_backY(0.1);
pendown();
go_backY(0.3); //口
go_backX(0.3);
go_forY(0.3);
go_forX(0.3);
penup();
go_backX(0.9); //移動to(玉)
go_forY(0.5);
go_backY(0.3);
pendown();
go_backY(1.2);// |
penup();
go_forX(0.3);
pendown();
go_backX(0.6);// --
penup();
go_forY(0.6);
pendown();
go_forX(0.6);// --
penup();
go_forY(1);
go_backY(0.3);
pendown();
go_backX(0.6);// --
penup();
go_forX(0.2);
go_backY(0.4);
pendown();
go_XY2(0.25);//斜め(玉)
penup();
}
特出して書くことはないと思いますが、「埼」から「玉」に移...
*5実行結果 [#yce51899]
こうして作ったロボットとプログラムを動かしてみた。まず倍...
&br;
その結果
&ref(2017b/Member/Yoshi/Mission1/kekka1.jpg,87%,埼玉1);
&br;
のように最後の一画が少しはみ出た。なので今度は倍率を0.5倍...
&br;
その結果
&ref(2017b/Member/Yoshi/Mission1/kekka2.jpg,87%,埼玉1);
&br;
となりはみ出ずに書くことができた。
終了行:
#contents
ホーム[[2017b/Member]]
*1課題 [#hfe78483]
これまで住んだことのある都道府県名、市町村名、地区名など...
これより私の出身地である「埼玉」を書くことにした
*2ロボットの紹介 [#hfe78483]
**ロボット制作にあたって[#afc62274]
私たちがろぼっとを作るにあたってまず、モーター1つにつき一...
参考にした画像
&ref(2016b/Member/ta.kashi/Mission1/Fig_001.JPG,50%,参考...
**ロボットの形 [#n402669d]
&ref(2017b/Member/Yoshi/Mission1/ko-zenntaizu.jpg,50%,子...
&ref(2017b/Member/Yoshi/Mission1/dodai-zenntai.jpg,87%,土...
&br;
右のロボットが土台となりX軸方向に自由に移動できる。
&br;
左のロボットが土台のレールにのり、レール上をY軸方向に移動...
&ref(2017b/Member/Yoshi/Mission1/robo-zenntai.jpg,90%,全...
&br;
完成形は上図のようになっています。
X方向には無制限に動けますがY方向にはレールの長さ分のみし...
*3ロボット作成で工夫した点 [#r3f47f32]
**土台部分(X軸) [#w709e2dc]
&ref(2017b/Member/Yoshi/Mission1/dodai-yokohaba.jpg,70%,...
ロボットの安定性を高めるためにタイヤの間隔をひろくとりま...
**上部(Y軸、ペンの上下) [#k25b8768]
&ref(2017b/Member/Yoshi/Mission1/ko-hukann.jpg,70%,全体像);
&ref(2017b/Member/Yoshi/Mission1/ko-pen.gif,43%,ペンの機...
参考サイトに習い、上部の安定性を向上するために、レールの...
また筆ペンの上下機構がレール上からずれていてバランスが悪...
2枚目の画像のようにペンを上下する機構はモーターの回転する...
*4プログラム [#t1f283c1]
**定義した定数 [#o1329b1a]
プログラムを簡略化し、開発しやすくするためにいくつか定数...
&br;
以下はその抜粋です
#define Apower 35
#define Bpower 34
#define Ytime 1624 //y軸で10cm進むのに必要なおおよそ...
#define gotime 1692 //x軸で10cm進むのに必要なおおよそ...
#define bai 0.8 //文字を書く倍率
解説が必要なのは少ないでしょうが、まず上二つが移動用モー...
&br;
次の二つはそれぞれの方向で定義した出力で動かした際に10cm...
&br;
最後の定数の「bai」は文字を書く際の倍率です。プログラム上...
**定義したサブ関数 [#m9587eea]
定数と同様にいくつかサブ関数を定義しました。これにより可...
&br;
以下はその抜粋です
sub go_forX(float t)
{
OnFwd(OUT_A,Apower);
Wait(t*gotime*bai);
Float(OUT_AB); //前進X(t×10)cm
Wait(1000);
}
sub go_backX(float t)
{
OnFwd(OUT_A,-Apower);
Wait(t*gotime*bai);
Float(OUT_AB); //後進X(t×10)cm
Wait(1000);
}
sub go_forY(float t)
{
OnFwd(OUT_B,-Bpower);
Wait(t*Ytime*bai);
Float(OUT_AB); //前進Y(t×10)cm
Wait(1000);
}
sub go_backY(float t)
{
OnFwd(OUT_B,Bpower);
Wait(t*Ytime*bai);
Float(OUT_AB); //後進Y(t×10)cm
Wait(1000);
}
sub penup()
{
RotateMotor(OUT_C, 10,50);
Wait(1500);
Off(OUT_C); //ペンを上げる
}
sub pendown()
{
RotateMotor(OUT_C, -10,50);
Wait(1500);
Off(OUT_C); //ペンを下げる
}
sub go_XY(float t)
{
OnFwd(OUT_B,-Bpower);
OnFwd(OUT_A,Apower);
Wait(t*Ytime*bai);
Float(OUT_AB); //斜めYは(t×10)cm
Wait(1000);
penup();
OnFwd(OUT_B,Bpower);
OnFwd(OUT_A,-Apower);
Wait(t*Ytime*bai);
Float(OUT_AB);
Wait(1000);
}
sub go_XY2(float t)
{
OnFwd(OUT_B,-Bpower);
OnFwd(OUT_A,-Apower);
Wait(t*Ytime*bai);
Float(OUT_AB); //斜めYは(t×10)cm
Wait(1000);
penup();
OnFwd(OUT_B,Bpower);
OnFwd(OUT_A,Apower);
Wait(t*Ytime*bai);
Float(OUT_AB);
Wait(1000);
}
定義したサブ関数は大きく分けてペンを所定の位置に動かすも...
&br;
まず所定の位置に動かすものは、すべて変数tがモーターの駆動...
&br;
またロボットが動いたとは機体が揺れることを考慮して1秒の待...
可
「go_XY、go_XY2」はペンが斜めに移動する用の関数です斜めに...
ペンを上下するものは単純です。モーターを特定の角度だけ回...
**実行するプログラム [#t144e1c4]
ここまでで定義したものを使って「埼玉」と書くために以下の...
task main ()
{
ResetTachoCount(OUT_C);
penup();
go_backY(0.9); //調整1
pendown();
go_backX(0.5); //よこ(土)
penup();
go_forY(0.3);
pendown();
go_forX(0.5); //よこ
penup();
go_backX(0.25); //よこ
pendown();
go_backY(0.5); //縦
penup();
go_backX(0.6);//移動to大
go_backY(0.4);
pendown();
go_forY(0.2); //たて()大
go_XY(0.25); //斜め1
pendown();
go_XY2(0.25); //斜め2
go_forX(0.25);
pendown();
go_backX(0.5); //横(大)
penup();
go_forY(0.5); //移動to可
go_forX(0.4);
pendown();
go_backX(0.5); //可はじめ
go_forY(0.5);
penup();
go_forX(0.4);
go_backY(0.1);
pendown();
go_backY(0.3); //口
go_backX(0.3);
go_forY(0.3);
go_forX(0.3);
penup();
go_backX(0.9); //移動to(玉)
go_forY(0.5);
go_backY(0.3);
pendown();
go_backY(1.2);// |
penup();
go_forX(0.3);
pendown();
go_backX(0.6);// --
penup();
go_forY(0.6);
pendown();
go_forX(0.6);// --
penup();
go_forY(1);
go_backY(0.3);
pendown();
go_backX(0.6);// --
penup();
go_forX(0.2);
go_backY(0.4);
pendown();
go_XY2(0.25);//斜め(玉)
penup();
}
特出して書くことはないと思いますが、「埼」から「玉」に移...
*5実行結果 [#yce51899]
こうして作ったロボットとプログラムを動かしてみた。まず倍...
&br;
その結果
&ref(2017b/Member/Yoshi/Mission1/kekka1.jpg,87%,埼玉1);
&br;
のように最後の一画が少しはみ出た。なので今度は倍率を0.5倍...
&br;
その結果
&ref(2017b/Member/Yoshi/Mission1/kekka2.jpg,87%,埼玉1);
&br;
となりはみ出ずに書くことができた。
ページ名: