2015b/Member/rmsun/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
* 書道ロボット [#kc6aef55]
「各自の出身地または氏名の中の一文字(7画以上)をA4用紙の中...
完成した字
(左:練習時、紙を固定したとき) (右:発表時、紙を軽く押さえ...
&ref(2015b/Member/rmsun/Mission1/IMG_1057.JPG,270*360,高(...
&ref(2015b/Member/rmsun/Mission1/IMG_1171.JPG,270*360,高(...
* ロボット本体 [#cec79a4d]
初期ロボットの後ろにペンをつけた構造。ペンは輪ゴムで固定...
モータAはペンを持つアームに、モータBは右のタイヤに、モー...
ペンの位置は、モータBCの中間と一直線上にある。これが後々...
#ref(2015b/Member/rmsun/Mission1/IMG_1060.JPG,360*270,書...
*プログラム [#m32e30bc]
サーボモータと、回転数を計算する関数を使って、「移動距離...
**メイン関数以外のプログラム [#wb572dc0]
***マクロの定義 [#ca3c85e6]
方向変換時のスピードは、タイヤの摩擦を減らすことばかり考...
#define SPEED 30 //前転後転時のスピード
#define WRITE_SPEED 20 //字を書くときのスピード
#define TURN_SPEED 100 //方向変換時のスピード
#define PUT_ANGLE 91 //ペンを上げ下げする時、モータが...
ペンの上げ下げを行うマクロ「down」と「up」。ペンを二段階...
#define down1() RotateMotor(OUT_A,-30,PUT_ANGLE-20)
//ペンを素早く下げる(地面にはつけない)
#define down2() RotateMotor(OUT_A,-5,20)
//ペンをゆっくり地面につける
#define up() RotateMotor(OUT_A,70,PUT_ANGLE);
//ペンを上げる
***文字の倍率を設定するための変数「magni」 [#y2c1419e]
「magni×移動距離」移動する、とプログラムすることで、好き...
移動にはサブルーチンを使っているため、magniをあちこちにつ...
float magni=1.0; //倍率を設定 例:magni=2.0 → ...
&ref(2015b/Member/rmsun/Mission1/IMG_1056.JPG,270*360,文...
←文字の倍率を0.5→1.0→1.5→2.0→2.5にした時の大きさの比較
***タイヤの回転数を計算する関数「GetAngle_d」「GetAngle_s...
タイヤの回転数を計算するために使う変数
float pen_to_center=17.0; //回転の中心(左右のタイヤの中...
float diameter=5.45; //タイヤの直径(cm)
float pi=3.1415; //円周率
float tire_ang; //タイヤの回転する角度(返り値用)
「GetAngle_d」... 進みたい距離(cm)から、タイヤの回転数を...
float GetAngle_d(float distance) {
//進みたい距離(cm)「distance」から、タイヤの回転...
tire_ang=(distance)/(diameter*pi)*360.0; //角度を計算...
return tire_ang; //角度を返す(floa...
}
「GetAngle_s」... 方向変換したい角度から、タイヤの回転数...
float GetAngle_s(float spin_ang) {
//方向変換したい角度「spin_ang」から、タイヤの回転数を...
const float spin_dia=11.4;
//ロボットがその場で1周回転した時に、タイヤが地面に描く...
//spin_dia...左右のタイヤの間隔
tire_ang=(spin_dia*spin_ang)/(diameter);
//方向変換したい角度から、タイヤの回転する角度を計算する
//約分前の式は tire_ang=(spin_dia*pi*(spin_ang/3...
return tire_ang; //角度を返す(float型)
}
***ロボットを前後に動かすサブルーチン「forward」「reverse...
・サブルーチン「forward」...指定した距離(cm)だけ前転する
sub forward(float fwd){
RotateMotorEx(OUT_BC,SPEED,GetAngle_d(fwd)*magni,0,true...
//fwd(cm)*magni(倍率)前転
}
・サブルーチン「reverse」...指定した距離(cm)だけ後転する
sub reverse(float rev) {
RotateMotorEx(OUT_BC,-SPEED,GetAngle_d(rev)*magni,0,tru...
//rev(cm)*magni(倍率)後転
}
GetAngle_dを用いることで、サブルーチン「forward」「revers...
使用例:3.0cm進みたいとき → forward(3.0)
5.0cm下がりたいとき → reverse(5.0)
***ロボットを回転させるサブルーチン「turn」 [#q2d85e44]
・サブルーチン「turn」...指定した角度ロボットが回転する
sub turn(float tn,int pl_mi) {
//tn(度)方向変換
引数pl_miは、ロボットが右回転するか左回転するかを決める。
/*pl_mi=1 → 右まわりに回転
pl_mi=-1 → 左まわりに回転*/
左右のタイヤを逆向きに回すことで、その場で回転する。
RotateMotorEx(OUT_BC,TURN_SPEED,GetAngle_s(tn),100*pl_m...
//左右のタイヤの逆向きに回すことで方向変換
Off(OUT_BC);
Wait(100);
}
GetAngle_sを用いることで、サブルーチン「turn」は「回転す...
使用例:90度右回転させたいとき → turn(90,1);
***ペンの位置を変えずに方向変換するサブルーチン「spin_re...
サブルーチン「spin_re」... ロボットの向きを変えるが、ペン...
引数pl_miは、ロボットが右回転するか左回転するかを決める。
引数spin_angは、方向変換したい角度を決める。
sub spin_re(float spin_ang,int pl_mi) {
//「ペンを中心に、spin_ang度回転する」(ときと同じ結果に...
/*右に回転するとき...pl_mi=1
左に回転するとき...pl_mi=-1*/
「ロボットが回転する時に生じる誤差」を修正するための「gos...
float gosa1=0; //右に回転するときの誤差「gosa1」
float gosa2=0; //左に回転するときの誤差「gosa2」
if (pl_mi>0) { //pl_mi>0(右への方向変換のとき)
gosa1=0.5; //右へ回転するときの誤差を修正する
}
else { //左への方向変換のとき
gosa2=0.5; //左へ回転するときの誤差を修正する
}
実際に方向変換する動作
RotateMotorEx(OUT_BC,-50,GetAngle_d(pen_to_center...
//pen_to_center-gosa1(cm)後転(gosaは回転の時のズレを調...
turn(spin_ang,pl_mi); //spin_ang(度)回転
RotateMotorEx(OUT_BC,20,GetAngle_d(pen_to_center-gosa2-...
//pen_to_center-gosa2-gosa1(cm)前転
}
・方向変換のとき、ロボットはその場で回転するので、左右の...
・回転の中心では、いくら回転しても位置が変わらない。
→ペンを動かさずにロボットの向きを変えたいならば
?「回転の中心(今回は左右のタイヤの中間)」を「ペンの位置」...
?ロボットを指定の角度回転させる
?ペンを、?の「ペンの位置」まで移動させる
とすればよい
?〜?を行うと、「ペンを中心に指定の角度回転させた」ときと...
使用例:ペンを中心に右に90度方向変換 → spin_re(90,1);
「spin_re」の説明は、少し分かりづらいと思われる。なので「...
***字を書くときに使うサブルーチン「write」 [#x81c3f00]
サブルーチン「write」... ペンが地面についた状態で、ロボッ...
ペンを二段階に分けて下ろすのが特徴。一段階目(down1)では「...
ペン接地後、指定された距離だけ進む(このとき字を書く)。そ...
sub write(float kaku) //ペンで線を引く
{
down1(); //ペンを素早く下げる(地面にはつけない)
Wait(100);
down2(); //ペンをゆっくり地面につける
Wait(10);
RotateMotorEx(OUT_BC,WRITE_SPEED,GetAngle_d(kaku)*magni...
//WRITE_SPEEDの速さでkaku(cm)進む → kaku(cm)の線を書く
up(); //ペンを上げる
}
使用例:6.0cmの線を引きたいとき → write(6.0);
***「口」を書くためのサブルーチン「kuti」 [#k0ad77bc]
「高」では「口」を2回書くので、一応サブルーチンにした。
sub kuti(float tate, float yoko) //口の字を書く
//口の縦の長さ(tate)と、横の長さ(yoko)を引数にとる
{
write(tate); //tate(cm)書く
spin_re(90.0,-1); //ペンを中心に90度左回転
write(yoko); //yoko(cm)書く
spin_re(90.0,-1); //ペンを中心に90度左回転
write(tate); // ↓ここから上の繰り返し(repeatを...
spin_re(90.0,-1);
write(yoko);
spin_re(90.0,-1);
}
使用例:縦の長さ5.0cm、横の長さ10.0cmの「口」を書きたいと...
**方向変換の動作を詳しく [#f0fe2ef5]
サブルーチン「spin_re」を使ったとき、ロボットが実際にどの...
今回は「90度左回転の方向変換をする」ときを例に説明する。
「spin_re」は、ロボットを回転させつつ、ペンの位置を最初と...
(左写真:回転の中心の位置、モータBとモータCの間にある)
(右写真:ペンの初期位置)
&ref(2015b/Member/rmsun/Mission1/IMG_1078.JPG,360*480,回...
&ref(2015b/Member/rmsun/Mission1/IMG_1082.JPG,360*480,ペ...
***?「回転の中心」と「ペンの位置」の距離分だけ後転する [#...
回転の中心を、最初ペンのあった位置まで持っていく。
このとき実行されたプログラム↓↓
RotateMotorEx(OUT_BC,-50,GetAngle_d(pen_to_center-gosa1...
//pen_to_center-gosa1(cm)後転(gosaは回転の時のズレを修...
#ref(2015b/Member/rmsun/Mission1/IMG_1085.JPG,360*480,後退)
***?ロボットを指定の角度回転させる [#b0a71654]
実際に方向変換したい角度分、回転させる。
このとき実行されたプログラム↓↓
turn(spin_ang,pl_mi); //spin_ang(度)回転
&ref(2015b/Member/rmsun/Mission1/IMG_1086.JPG,360*480,後...
回転→→
&ref(2015b/Member/rmsun/Mission1/IMG_1089.JPG,360*480,回...
***?「回転の中心」と「ペンの位置」の距離分だけ前転する [#...
ペンを元の位置に戻すため、?で下がった分の距離を進む。
このときのペンの位置は、最初のペンの位置と同じ。
このとき実行されたプログラム↓↓
RotateMotorEx(OUT_BC,20,GetAngle_d(pen_to_center-gosa2-...
//pen_to_center-gosa2-gosa1(cm)前転(gosaは回転の時のズ...
***?結果 [#h5e0c8c4]
「ペンを中心にして、指定の角度回転させたとき」と同じ結果...
#ref(2015b/Member/rmsun/Mission1/IMG_1095.JPG,270*360,結果)
**メイン関数(実際に字を書くプログラム) [#m0a26da1]
task main()
{
up(); //ペンを地面につけたままスタート
write(1.0); //1画目(「亠」の「|」の部分)
//2画目の位置(「亠」の「―」の部分)まで移動
spin_re(90.0,-1); //ペンを中心に90度左回転
reverse(2.0); //2.0(cm)後転
write(4.0); //2画目(「亠」の「―」の部分)
//3画目(口の部分)まで移動
reverse(3.0); //3.0(cm)後転
spin_re(90.0,1); //ペンを中心に90度右回転
forward(0.5); //0.5(cm)前転
kuti(1.0, 2.25); //「口」の字を書く(4,5,6画目)
//7画目(「高」の左下の「|」の部分)まで移動
forward(1.5); //1.5(cm)前転
spin_re(90.0,-1); //ペンを中心に90度左回転
reverse(1.25); //1.25(cm)後転
spin_re(90.0,1); //ペンを中心に90度右回転
write(3.0); //7画目(「高」の左下の「|」の部分)
//8画目(真ん中を通る「一」の部分)まで移動
reverse(3.0); //3.0(cm)後転
spin_re(90.0,-1); //ペンを中心に90度左回転
write(4.75); //8画目(真ん中を通る「一」の部分)
//9画目(右下の「|」の部分)まで移動
spin_re(90.0,1); //ペンを中心に90度右回転
write(3.0); //9画目(右下の「|」の部分)
spin_re(90.0,1); //ロボットの向きを7画目の「ー」と平...
//最後の「口」の部分まで移動
forward(3.5); //3.5(cm)前転
spin_re(90.0,-1); //ペンを中心に90度左回転
reverse(2.5); //2.5(cm)後転
kuti(1.0, 2.25); //最後の「口」を書く
}
*工夫点 [#k7ba3fac]
・サーボモータや、回転角度を計算する関数を使ったことで、...
・文字の倍率を設定できるようにした。そのおかげで、文字が...
*反省点 [#y108e50d]
・紙をおさえないと字が書けなくなってしまった。タイヤの摩...
・プログラムがかなり長くなってしまった。必要以上にサブル...
・ロボット製作では全く貢献できなかったので、次回からは貢...
終了行:
目次
#contents
* 書道ロボット [#kc6aef55]
「各自の出身地または氏名の中の一文字(7画以上)をA4用紙の中...
完成した字
(左:練習時、紙を固定したとき) (右:発表時、紙を軽く押さえ...
&ref(2015b/Member/rmsun/Mission1/IMG_1057.JPG,270*360,高(...
&ref(2015b/Member/rmsun/Mission1/IMG_1171.JPG,270*360,高(...
* ロボット本体 [#cec79a4d]
初期ロボットの後ろにペンをつけた構造。ペンは輪ゴムで固定...
モータAはペンを持つアームに、モータBは右のタイヤに、モー...
ペンの位置は、モータBCの中間と一直線上にある。これが後々...
#ref(2015b/Member/rmsun/Mission1/IMG_1060.JPG,360*270,書...
*プログラム [#m32e30bc]
サーボモータと、回転数を計算する関数を使って、「移動距離...
**メイン関数以外のプログラム [#wb572dc0]
***マクロの定義 [#ca3c85e6]
方向変換時のスピードは、タイヤの摩擦を減らすことばかり考...
#define SPEED 30 //前転後転時のスピード
#define WRITE_SPEED 20 //字を書くときのスピード
#define TURN_SPEED 100 //方向変換時のスピード
#define PUT_ANGLE 91 //ペンを上げ下げする時、モータが...
ペンの上げ下げを行うマクロ「down」と「up」。ペンを二段階...
#define down1() RotateMotor(OUT_A,-30,PUT_ANGLE-20)
//ペンを素早く下げる(地面にはつけない)
#define down2() RotateMotor(OUT_A,-5,20)
//ペンをゆっくり地面につける
#define up() RotateMotor(OUT_A,70,PUT_ANGLE);
//ペンを上げる
***文字の倍率を設定するための変数「magni」 [#y2c1419e]
「magni×移動距離」移動する、とプログラムすることで、好き...
移動にはサブルーチンを使っているため、magniをあちこちにつ...
float magni=1.0; //倍率を設定 例:magni=2.0 → ...
&ref(2015b/Member/rmsun/Mission1/IMG_1056.JPG,270*360,文...
←文字の倍率を0.5→1.0→1.5→2.0→2.5にした時の大きさの比較
***タイヤの回転数を計算する関数「GetAngle_d」「GetAngle_s...
タイヤの回転数を計算するために使う変数
float pen_to_center=17.0; //回転の中心(左右のタイヤの中...
float diameter=5.45; //タイヤの直径(cm)
float pi=3.1415; //円周率
float tire_ang; //タイヤの回転する角度(返り値用)
「GetAngle_d」... 進みたい距離(cm)から、タイヤの回転数を...
float GetAngle_d(float distance) {
//進みたい距離(cm)「distance」から、タイヤの回転...
tire_ang=(distance)/(diameter*pi)*360.0; //角度を計算...
return tire_ang; //角度を返す(floa...
}
「GetAngle_s」... 方向変換したい角度から、タイヤの回転数...
float GetAngle_s(float spin_ang) {
//方向変換したい角度「spin_ang」から、タイヤの回転数を...
const float spin_dia=11.4;
//ロボットがその場で1周回転した時に、タイヤが地面に描く...
//spin_dia...左右のタイヤの間隔
tire_ang=(spin_dia*spin_ang)/(diameter);
//方向変換したい角度から、タイヤの回転する角度を計算する
//約分前の式は tire_ang=(spin_dia*pi*(spin_ang/3...
return tire_ang; //角度を返す(float型)
}
***ロボットを前後に動かすサブルーチン「forward」「reverse...
・サブルーチン「forward」...指定した距離(cm)だけ前転する
sub forward(float fwd){
RotateMotorEx(OUT_BC,SPEED,GetAngle_d(fwd)*magni,0,true...
//fwd(cm)*magni(倍率)前転
}
・サブルーチン「reverse」...指定した距離(cm)だけ後転する
sub reverse(float rev) {
RotateMotorEx(OUT_BC,-SPEED,GetAngle_d(rev)*magni,0,tru...
//rev(cm)*magni(倍率)後転
}
GetAngle_dを用いることで、サブルーチン「forward」「revers...
使用例:3.0cm進みたいとき → forward(3.0)
5.0cm下がりたいとき → reverse(5.0)
***ロボットを回転させるサブルーチン「turn」 [#q2d85e44]
・サブルーチン「turn」...指定した角度ロボットが回転する
sub turn(float tn,int pl_mi) {
//tn(度)方向変換
引数pl_miは、ロボットが右回転するか左回転するかを決める。
/*pl_mi=1 → 右まわりに回転
pl_mi=-1 → 左まわりに回転*/
左右のタイヤを逆向きに回すことで、その場で回転する。
RotateMotorEx(OUT_BC,TURN_SPEED,GetAngle_s(tn),100*pl_m...
//左右のタイヤの逆向きに回すことで方向変換
Off(OUT_BC);
Wait(100);
}
GetAngle_sを用いることで、サブルーチン「turn」は「回転す...
使用例:90度右回転させたいとき → turn(90,1);
***ペンの位置を変えずに方向変換するサブルーチン「spin_re...
サブルーチン「spin_re」... ロボットの向きを変えるが、ペン...
引数pl_miは、ロボットが右回転するか左回転するかを決める。
引数spin_angは、方向変換したい角度を決める。
sub spin_re(float spin_ang,int pl_mi) {
//「ペンを中心に、spin_ang度回転する」(ときと同じ結果に...
/*右に回転するとき...pl_mi=1
左に回転するとき...pl_mi=-1*/
「ロボットが回転する時に生じる誤差」を修正するための「gos...
float gosa1=0; //右に回転するときの誤差「gosa1」
float gosa2=0; //左に回転するときの誤差「gosa2」
if (pl_mi>0) { //pl_mi>0(右への方向変換のとき)
gosa1=0.5; //右へ回転するときの誤差を修正する
}
else { //左への方向変換のとき
gosa2=0.5; //左へ回転するときの誤差を修正する
}
実際に方向変換する動作
RotateMotorEx(OUT_BC,-50,GetAngle_d(pen_to_center...
//pen_to_center-gosa1(cm)後転(gosaは回転の時のズレを調...
turn(spin_ang,pl_mi); //spin_ang(度)回転
RotateMotorEx(OUT_BC,20,GetAngle_d(pen_to_center-gosa2-...
//pen_to_center-gosa2-gosa1(cm)前転
}
・方向変換のとき、ロボットはその場で回転するので、左右の...
・回転の中心では、いくら回転しても位置が変わらない。
→ペンを動かさずにロボットの向きを変えたいならば
?「回転の中心(今回は左右のタイヤの中間)」を「ペンの位置」...
?ロボットを指定の角度回転させる
?ペンを、?の「ペンの位置」まで移動させる
とすればよい
?〜?を行うと、「ペンを中心に指定の角度回転させた」ときと...
使用例:ペンを中心に右に90度方向変換 → spin_re(90,1);
「spin_re」の説明は、少し分かりづらいと思われる。なので「...
***字を書くときに使うサブルーチン「write」 [#x81c3f00]
サブルーチン「write」... ペンが地面についた状態で、ロボッ...
ペンを二段階に分けて下ろすのが特徴。一段階目(down1)では「...
ペン接地後、指定された距離だけ進む(このとき字を書く)。そ...
sub write(float kaku) //ペンで線を引く
{
down1(); //ペンを素早く下げる(地面にはつけない)
Wait(100);
down2(); //ペンをゆっくり地面につける
Wait(10);
RotateMotorEx(OUT_BC,WRITE_SPEED,GetAngle_d(kaku)*magni...
//WRITE_SPEEDの速さでkaku(cm)進む → kaku(cm)の線を書く
up(); //ペンを上げる
}
使用例:6.0cmの線を引きたいとき → write(6.0);
***「口」を書くためのサブルーチン「kuti」 [#k0ad77bc]
「高」では「口」を2回書くので、一応サブルーチンにした。
sub kuti(float tate, float yoko) //口の字を書く
//口の縦の長さ(tate)と、横の長さ(yoko)を引数にとる
{
write(tate); //tate(cm)書く
spin_re(90.0,-1); //ペンを中心に90度左回転
write(yoko); //yoko(cm)書く
spin_re(90.0,-1); //ペンを中心に90度左回転
write(tate); // ↓ここから上の繰り返し(repeatを...
spin_re(90.0,-1);
write(yoko);
spin_re(90.0,-1);
}
使用例:縦の長さ5.0cm、横の長さ10.0cmの「口」を書きたいと...
**方向変換の動作を詳しく [#f0fe2ef5]
サブルーチン「spin_re」を使ったとき、ロボットが実際にどの...
今回は「90度左回転の方向変換をする」ときを例に説明する。
「spin_re」は、ロボットを回転させつつ、ペンの位置を最初と...
(左写真:回転の中心の位置、モータBとモータCの間にある)
(右写真:ペンの初期位置)
&ref(2015b/Member/rmsun/Mission1/IMG_1078.JPG,360*480,回...
&ref(2015b/Member/rmsun/Mission1/IMG_1082.JPG,360*480,ペ...
***?「回転の中心」と「ペンの位置」の距離分だけ後転する [#...
回転の中心を、最初ペンのあった位置まで持っていく。
このとき実行されたプログラム↓↓
RotateMotorEx(OUT_BC,-50,GetAngle_d(pen_to_center-gosa1...
//pen_to_center-gosa1(cm)後転(gosaは回転の時のズレを修...
#ref(2015b/Member/rmsun/Mission1/IMG_1085.JPG,360*480,後退)
***?ロボットを指定の角度回転させる [#b0a71654]
実際に方向変換したい角度分、回転させる。
このとき実行されたプログラム↓↓
turn(spin_ang,pl_mi); //spin_ang(度)回転
&ref(2015b/Member/rmsun/Mission1/IMG_1086.JPG,360*480,後...
回転→→
&ref(2015b/Member/rmsun/Mission1/IMG_1089.JPG,360*480,回...
***?「回転の中心」と「ペンの位置」の距離分だけ前転する [#...
ペンを元の位置に戻すため、?で下がった分の距離を進む。
このときのペンの位置は、最初のペンの位置と同じ。
このとき実行されたプログラム↓↓
RotateMotorEx(OUT_BC,20,GetAngle_d(pen_to_center-gosa2-...
//pen_to_center-gosa2-gosa1(cm)前転(gosaは回転の時のズ...
***?結果 [#h5e0c8c4]
「ペンを中心にして、指定の角度回転させたとき」と同じ結果...
#ref(2015b/Member/rmsun/Mission1/IMG_1095.JPG,270*360,結果)
**メイン関数(実際に字を書くプログラム) [#m0a26da1]
task main()
{
up(); //ペンを地面につけたままスタート
write(1.0); //1画目(「亠」の「|」の部分)
//2画目の位置(「亠」の「―」の部分)まで移動
spin_re(90.0,-1); //ペンを中心に90度左回転
reverse(2.0); //2.0(cm)後転
write(4.0); //2画目(「亠」の「―」の部分)
//3画目(口の部分)まで移動
reverse(3.0); //3.0(cm)後転
spin_re(90.0,1); //ペンを中心に90度右回転
forward(0.5); //0.5(cm)前転
kuti(1.0, 2.25); //「口」の字を書く(4,5,6画目)
//7画目(「高」の左下の「|」の部分)まで移動
forward(1.5); //1.5(cm)前転
spin_re(90.0,-1); //ペンを中心に90度左回転
reverse(1.25); //1.25(cm)後転
spin_re(90.0,1); //ペンを中心に90度右回転
write(3.0); //7画目(「高」の左下の「|」の部分)
//8画目(真ん中を通る「一」の部分)まで移動
reverse(3.0); //3.0(cm)後転
spin_re(90.0,-1); //ペンを中心に90度左回転
write(4.75); //8画目(真ん中を通る「一」の部分)
//9画目(右下の「|」の部分)まで移動
spin_re(90.0,1); //ペンを中心に90度右回転
write(3.0); //9画目(右下の「|」の部分)
spin_re(90.0,1); //ロボットの向きを7画目の「ー」と平...
//最後の「口」の部分まで移動
forward(3.5); //3.5(cm)前転
spin_re(90.0,-1); //ペンを中心に90度左回転
reverse(2.5); //2.5(cm)後転
kuti(1.0, 2.25); //最後の「口」を書く
}
*工夫点 [#k7ba3fac]
・サーボモータや、回転角度を計算する関数を使ったことで、...
・文字の倍率を設定できるようにした。そのおかげで、文字が...
*反省点 [#y108e50d]
・紙をおさえないと字が書けなくなってしまった。タイヤの摩...
・プログラムがかなり長くなってしまった。必要以上にサブル...
・ロボット製作では全く貢献できなかったので、次回からは貢...
ページ名: