2014b/Member/akebono/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2014b/Member]]
目次
#contents
*課題の内容 [#s0bc14d7]
自分の名前の漢字一字から7画以上の文字を選び、A4用紙に...
私は「沢」の字を選ぶことにした。
*ロボット本体について [#bb6993a0]
**コンセプト [#x723b98a]
-出来るだけ簡単な作りになるように、元となる車の形のロボッ...
-筆圧の調整が要らないように本体に工夫をする
**組上がり [#g3022d05]
希望通りの動きができるようになり、かつ簡単な機構で出来上...
ペンは保持する部分の真ん中に取り付け、その昇降はリンク機...
ペンを中央に取り付けることでプログラムの調整がしやすくな...
&ref(./IMAG0667.jpg,100%);&ref(./IMAG0669.jpg,100%);
*プログラムについて [#j9018366]
**コンセプト [#a54764a4]
-電池残量などの要因に左右されないように、サーボモーターの...
-制御が見やすく簡単になるように、旋回角度・移動距離の指定...
**完成プログラム [#zc7706ba]
はじめに、多く使い調整のいる関数の定義とサブルーチンを定...
#define SPEED 35 //遅めの出力35%に設定
#define pen_dis 7.5 //下ろした時のペン先と本体の旋回の...
float GetAngle_turn(float a) //求める本体の回転角から...
{
const float diameter = 5.9;
const float distance = 11.7;
float ang = (a*distance)/diameter;
return ang;
}
float GetAngle_go(float a) //求める移動距離からタイヤ...
{
const float diameter = 5.9;
const float pi = 3.1415;
float ang = a/(diameter*pi)*360.0;
return ang;
}
sub turn_L(float t) //左にt度回転
{
int angle_turn_L = GetAngle_turn(t);
RotateMotorEx(OUT_BC,SPEED,angle_turn_L,-100,true,true);...
Off(OUT_BC);
}
sub turn_R(float t) //右にt度回転
{
int angle_turn_R = GetAngle_turn(t);
RotateMotorEx(OUT_BC,SPEED,angle_turn_R,100,true,true);/...
Off(OUT_BC);
}
sub go_F(float t) //前にtセンチ進む
{
int angle_go_F = GetAngle_go(t);
RotateMotorEx(OUT_BC,SPEED,angle_go_F,0,true,true);
Off(OUT_BC);
}
sub go_R(float t) //後ろにtセンチ進む
{
int angle_go_R = GetAngle_go(t);
RotateMotorEx(OUT_BC,-SPEED,angle_go_R,0,true,true);
Off(OUT_BC);
}
sub pen_UP() //ペンを上げる
{
RotateMotor(OUT_A,-SPEED,180);
Off(OUT_A);
}
sub pen_DW() //ペンを下げる
{
RotateMotor(OUT_A,SPEED,180);
Off(OUT_A);
}
ここまでの定義で、何?前進・後退と、何°右旋回・左旋回と、...
次からはそれらを使って「沢」の字をかくプログラムである
task main()
{
Wait(1000); //スイッチを押してから間を置く
go_F(6.0);
turn_L(90.0);
go_F(2.0);
turn_R(105.0);
go_R(pen_dis);
pen_DW();
go_F(12.5);//中央の長い画
pen_UP();
go_F(pen_dis);
turn_L(15.0);
go_R(3.5);
turn_L(45.0);
go_R(3.0);
pen_DW();
go_F(3.0);//さんずいの1番上
pen_UP();
turn_R(45.0);
go_R(3.0);
turn_L(45.0);
go_R(3.0);
pen_DW();
go_F(3.0);//さんずいの2番目
pen_UP();
turn_L(90.0);
go_R(3.0);
pen_DW();
go_F(3.0);//さんずいの3番目
pen_UP();
turn_R(135.0);
go_F(6.0);
turn_R(90.0);
go_R(pen_dis);
pen_DW();
go_F(6.0);//一番上のよこぼう
pen_UP();
go_F(pen_dis);
turn_R(90.0);
go_R(pen_dis);
pen_DW();
go_F(3.0);//右の縦棒
pen_UP();
go_F(pen_dis);
turn_R(90.0);
go_R(pen_dis);
pen_DW();
go_F(6.5);//二番目の横棒
pen_UP();
go_F(5.5);
turn_L(120.0);
go_R(pen_dis);
pen_DW();
go_F(10.0);//右下の斜め棒
pen_UP();
go_F(pen_dis);
turn_L(60.0);
go_R(pen_dis);
pen_DW();
go_F(1.2);//払い
pen_UP();
}
#ref(./IMAG0676.jpg,100%)
*反省・感想 [#j6c3eb52]
-本体の製作では考えた通りのロボットが出来上がったので良か...
-欲を言えば、ペン先と本体の旋回の回転中心との距離をもっと...
-プログラムは角度と距離を指定するだけにしたので直感的にわ...
-計算ですべての動作を決めているので、元になる関数に誤差が...
-小さなミスやエラーに気づけず、期限に少し遅れてしまった。...
#ref(./IMAG0665.jpg,100%)
終了行:
[[2014b/Member]]
目次
#contents
*課題の内容 [#s0bc14d7]
自分の名前の漢字一字から7画以上の文字を選び、A4用紙に...
私は「沢」の字を選ぶことにした。
*ロボット本体について [#bb6993a0]
**コンセプト [#x723b98a]
-出来るだけ簡単な作りになるように、元となる車の形のロボッ...
-筆圧の調整が要らないように本体に工夫をする
**組上がり [#g3022d05]
希望通りの動きができるようになり、かつ簡単な機構で出来上...
ペンは保持する部分の真ん中に取り付け、その昇降はリンク機...
ペンを中央に取り付けることでプログラムの調整がしやすくな...
&ref(./IMAG0667.jpg,100%);&ref(./IMAG0669.jpg,100%);
*プログラムについて [#j9018366]
**コンセプト [#a54764a4]
-電池残量などの要因に左右されないように、サーボモーターの...
-制御が見やすく簡単になるように、旋回角度・移動距離の指定...
**完成プログラム [#zc7706ba]
はじめに、多く使い調整のいる関数の定義とサブルーチンを定...
#define SPEED 35 //遅めの出力35%に設定
#define pen_dis 7.5 //下ろした時のペン先と本体の旋回の...
float GetAngle_turn(float a) //求める本体の回転角から...
{
const float diameter = 5.9;
const float distance = 11.7;
float ang = (a*distance)/diameter;
return ang;
}
float GetAngle_go(float a) //求める移動距離からタイヤ...
{
const float diameter = 5.9;
const float pi = 3.1415;
float ang = a/(diameter*pi)*360.0;
return ang;
}
sub turn_L(float t) //左にt度回転
{
int angle_turn_L = GetAngle_turn(t);
RotateMotorEx(OUT_BC,SPEED,angle_turn_L,-100,true,true);...
Off(OUT_BC);
}
sub turn_R(float t) //右にt度回転
{
int angle_turn_R = GetAngle_turn(t);
RotateMotorEx(OUT_BC,SPEED,angle_turn_R,100,true,true);/...
Off(OUT_BC);
}
sub go_F(float t) //前にtセンチ進む
{
int angle_go_F = GetAngle_go(t);
RotateMotorEx(OUT_BC,SPEED,angle_go_F,0,true,true);
Off(OUT_BC);
}
sub go_R(float t) //後ろにtセンチ進む
{
int angle_go_R = GetAngle_go(t);
RotateMotorEx(OUT_BC,-SPEED,angle_go_R,0,true,true);
Off(OUT_BC);
}
sub pen_UP() //ペンを上げる
{
RotateMotor(OUT_A,-SPEED,180);
Off(OUT_A);
}
sub pen_DW() //ペンを下げる
{
RotateMotor(OUT_A,SPEED,180);
Off(OUT_A);
}
ここまでの定義で、何?前進・後退と、何°右旋回・左旋回と、...
次からはそれらを使って「沢」の字をかくプログラムである
task main()
{
Wait(1000); //スイッチを押してから間を置く
go_F(6.0);
turn_L(90.0);
go_F(2.0);
turn_R(105.0);
go_R(pen_dis);
pen_DW();
go_F(12.5);//中央の長い画
pen_UP();
go_F(pen_dis);
turn_L(15.0);
go_R(3.5);
turn_L(45.0);
go_R(3.0);
pen_DW();
go_F(3.0);//さんずいの1番上
pen_UP();
turn_R(45.0);
go_R(3.0);
turn_L(45.0);
go_R(3.0);
pen_DW();
go_F(3.0);//さんずいの2番目
pen_UP();
turn_L(90.0);
go_R(3.0);
pen_DW();
go_F(3.0);//さんずいの3番目
pen_UP();
turn_R(135.0);
go_F(6.0);
turn_R(90.0);
go_R(pen_dis);
pen_DW();
go_F(6.0);//一番上のよこぼう
pen_UP();
go_F(pen_dis);
turn_R(90.0);
go_R(pen_dis);
pen_DW();
go_F(3.0);//右の縦棒
pen_UP();
go_F(pen_dis);
turn_R(90.0);
go_R(pen_dis);
pen_DW();
go_F(6.5);//二番目の横棒
pen_UP();
go_F(5.5);
turn_L(120.0);
go_R(pen_dis);
pen_DW();
go_F(10.0);//右下の斜め棒
pen_UP();
go_F(pen_dis);
turn_L(60.0);
go_R(pen_dis);
pen_DW();
go_F(1.2);//払い
pen_UP();
}
#ref(./IMAG0676.jpg,100%)
*反省・感想 [#j6c3eb52]
-本体の製作では考えた通りのロボットが出来上がったので良か...
-欲を言えば、ペン先と本体の旋回の回転中心との距離をもっと...
-プログラムは角度と距離を指定するだけにしたので直感的にわ...
-計算ですべての動作を決めているので、元になる関数に誤差が...
-小さなミスやエラーに気づけず、期限に少し遅れてしまった。...
#ref(./IMAG0665.jpg,100%)
ページ名: