2014b/Member/mori/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2014b/Member]]
#Contents
*課題内容 [#gbee99b7]
[[課題1参照:http://yakushi.shinshu-u.ac.jp/robotics/?2014...
今回自分は「森」という字を選んだ。~
*ロボット [#f900d694]
#ref(./ロボ課題1.jpg,70%,書道ロボット)
今回はロボットは基本のロボットから筆を上下に動かす装置を...
写真手前のアームにペンを取り付け、本体ごと走りながら文字...
*方針とプログラム [#r2177751]
**方針 [#te9f1076]
考えた結果、今回のロボットでは「森」の字を書く方法として...
プログラムは、まずプログラムの簡易化と整備のし易さを兼ね...
#ref(./ロボティクス課題1画像(1).png,50%,予想図)
完成予想図。下の2つの木は同じ形となる。
**プログラム [#ie4adfaa]
#define SPEED 40
#define TIME 1000
SPEEDはモーターの回転させるスピード。速すぎると安定しない...
TIMEは各動作の間に設ける時間。1秒おきに動く。~
~
sub penup(){ //ペンを上げる動作
RotateMotor(OUT_A,SPEED,20);
Wait(TIME);
Off(OUT_A);
}
sub pendown(){ //ペンを下げる動作
RotateMotor(OUT_A,SPEED,-20);
Wait(TIME);
Off(OUT_A);
}
sub rotatem(int s){ //モーターを回転(前進・後退)させる...
RotateMotor(OUT_BC,SPEED,s);
Wait(TIME);
Off(OUT_BC);
}
基本となるペン上げ、ペン下げ、回転動作の3つの動作をサブル...
なお、ロボット自体を旋回させるプログラムは、RotateMotorEx...
※引数sの値は20毎に約1cm進む。~
~
sub writetree1(){
pendown();
rotatem(180); //一の線を引く
penup();
rotatem(-20); //中心の位置に移動するため少し戻る
RotateMotorEx(OUT_BC,SPEED,180,-100,true,true); //反...
Wait(TIME);
rotatem(-60);
pendown();
rotatem(-160); //木の縦棒を引く
penup();
rotatem(100); //戻る
RotateMotorEx(OUT_BC,SPEED,90,100,true,true); //時計回...
Wait(TIME);
rotatem(60);
pendown();
rotatem(-120); //ノの部分を引く
penup();
rotatem(180);
RotateMotorEx(OUT_BC,SPEED,180,-100,true,true); //反時...
Wait(TIME);
rotatem(60);
pendown();
rotatem(-120); //払いの部分を引く
penup();
rotatem(180);
RotateMotorEx(OUT_BC,SPEED,90,100,true,true); //時計回...
Wait(TIME);
}
次のサブルーチンwritetree1は上の「木」を書くプログラムで...
~
sub downmove(){
rotatem(-160);
RotateMotorEx(OUT_BC,SPEED,180,100,true,true); //時計...
Wait(TIME);
rotatem(-220);
}
サブルーチンdownmoveは、上の木の終了地点から、左下の木の...
~
sub writetree2(){
rotatem(120); //一の線を引く
penup();
rotatem(60); //ちょっと進む
RotateMotorEx(OUT_BC,SPEED,180,-100,true,true); //反...
Wait(TIME);
rotatem(-60);
pendown();
rotatem(-180); //|を引く
penup();
rotatem(120); //戻る
RotateMotorEx(OUT_BC,SPEED,60,100,true,true); //時計回...
Wait(TIME);
rotatem(60);
pendown();
rotatem(-120); //ノを引く
penup();
rotatem(180);
RotateMotorEx(OUT_BC,SPEED,120,-100,true,true); //反時...
Wait(TIME);
rotatem(60);
pendown();
rotatem(-120); //払いを引く
penup();
rotatem(180);
RotateMotorEx(OUT_BC,SPEED,60,100,true,true); //時計回...
Wait(TIME);
}
以下のサブルーチンwritetree2は下の少し縦長の木1つを書くプ...
メインタスクではこれを位置替えを挟んで2回行う。~
~
sub sidemove(){
RotateMotorEx(OUT_BC,SPEED,180,-100,true,true); //反時...
Wait(TIME);
rotatem(150);
RotateMotorEx(OUT_BC,SPEED,180,100,true,true); //時計...
}
サブルーチンsidemoveは、右下の木の終了地点から左下の木を...
~
task main()
{
penup();
Wait(5000); //この時間中に開始地点にセットする
writetree1();
downmove();
writetree2();
sidemove();
writetree2();
}
メインタスク。上記のサブルーチンを組み合わせる。~
*結果と反省・感想 [#h4f7aed1]
**結果と反省 [#yba0b005]
結果としては満足のいく結果が得られず、字がかけたことは...
失敗の要因として、~
文字を大きく書くことにこだわりすぎた&ロボットのモーターを...
ロボット自体が不安定であり、まっすぐ進まない。~
等があると思われるが、
その他にも今回はプログラムの不具合が多く、またスケジュー...
上手い事ロボットを動かすプログラムを組むことが出来なかっ...
反省として挙げられるのは、ロボット制作の適当さがあった...
左右不安定な位置に電池ボックスを置くと、重心が偏り、まっ...
前後にも適切な位置に置かないと、後ろのモーターに繋がって...
適切な回転が行われないといった事態が発生する原因にもなる...
電池ボックスの配置場所は考慮する必要があるのだと今回の課...
**感想 [#tf71e27b]
ロボットとプログラムを同時に製作することは今回が初めて...
正直ロボット作りの細かさ、繊細さを少しみくびっていた所が...
授業時間中はもちろんの事、授業時間外にも同じ班の人と協力...
期間中にきちんとしたロボットは作れないんだという事を強く...
終了行:
[[2014b/Member]]
#Contents
*課題内容 [#gbee99b7]
[[課題1参照:http://yakushi.shinshu-u.ac.jp/robotics/?2014...
今回自分は「森」という字を選んだ。~
*ロボット [#f900d694]
#ref(./ロボ課題1.jpg,70%,書道ロボット)
今回はロボットは基本のロボットから筆を上下に動かす装置を...
写真手前のアームにペンを取り付け、本体ごと走りながら文字...
*方針とプログラム [#r2177751]
**方針 [#te9f1076]
考えた結果、今回のロボットでは「森」の字を書く方法として...
プログラムは、まずプログラムの簡易化と整備のし易さを兼ね...
#ref(./ロボティクス課題1画像(1).png,50%,予想図)
完成予想図。下の2つの木は同じ形となる。
**プログラム [#ie4adfaa]
#define SPEED 40
#define TIME 1000
SPEEDはモーターの回転させるスピード。速すぎると安定しない...
TIMEは各動作の間に設ける時間。1秒おきに動く。~
~
sub penup(){ //ペンを上げる動作
RotateMotor(OUT_A,SPEED,20);
Wait(TIME);
Off(OUT_A);
}
sub pendown(){ //ペンを下げる動作
RotateMotor(OUT_A,SPEED,-20);
Wait(TIME);
Off(OUT_A);
}
sub rotatem(int s){ //モーターを回転(前進・後退)させる...
RotateMotor(OUT_BC,SPEED,s);
Wait(TIME);
Off(OUT_BC);
}
基本となるペン上げ、ペン下げ、回転動作の3つの動作をサブル...
なお、ロボット自体を旋回させるプログラムは、RotateMotorEx...
※引数sの値は20毎に約1cm進む。~
~
sub writetree1(){
pendown();
rotatem(180); //一の線を引く
penup();
rotatem(-20); //中心の位置に移動するため少し戻る
RotateMotorEx(OUT_BC,SPEED,180,-100,true,true); //反...
Wait(TIME);
rotatem(-60);
pendown();
rotatem(-160); //木の縦棒を引く
penup();
rotatem(100); //戻る
RotateMotorEx(OUT_BC,SPEED,90,100,true,true); //時計回...
Wait(TIME);
rotatem(60);
pendown();
rotatem(-120); //ノの部分を引く
penup();
rotatem(180);
RotateMotorEx(OUT_BC,SPEED,180,-100,true,true); //反時...
Wait(TIME);
rotatem(60);
pendown();
rotatem(-120); //払いの部分を引く
penup();
rotatem(180);
RotateMotorEx(OUT_BC,SPEED,90,100,true,true); //時計回...
Wait(TIME);
}
次のサブルーチンwritetree1は上の「木」を書くプログラムで...
~
sub downmove(){
rotatem(-160);
RotateMotorEx(OUT_BC,SPEED,180,100,true,true); //時計...
Wait(TIME);
rotatem(-220);
}
サブルーチンdownmoveは、上の木の終了地点から、左下の木の...
~
sub writetree2(){
rotatem(120); //一の線を引く
penup();
rotatem(60); //ちょっと進む
RotateMotorEx(OUT_BC,SPEED,180,-100,true,true); //反...
Wait(TIME);
rotatem(-60);
pendown();
rotatem(-180); //|を引く
penup();
rotatem(120); //戻る
RotateMotorEx(OUT_BC,SPEED,60,100,true,true); //時計回...
Wait(TIME);
rotatem(60);
pendown();
rotatem(-120); //ノを引く
penup();
rotatem(180);
RotateMotorEx(OUT_BC,SPEED,120,-100,true,true); //反時...
Wait(TIME);
rotatem(60);
pendown();
rotatem(-120); //払いを引く
penup();
rotatem(180);
RotateMotorEx(OUT_BC,SPEED,60,100,true,true); //時計回...
Wait(TIME);
}
以下のサブルーチンwritetree2は下の少し縦長の木1つを書くプ...
メインタスクではこれを位置替えを挟んで2回行う。~
~
sub sidemove(){
RotateMotorEx(OUT_BC,SPEED,180,-100,true,true); //反時...
Wait(TIME);
rotatem(150);
RotateMotorEx(OUT_BC,SPEED,180,100,true,true); //時計...
}
サブルーチンsidemoveは、右下の木の終了地点から左下の木を...
~
task main()
{
penup();
Wait(5000); //この時間中に開始地点にセットする
writetree1();
downmove();
writetree2();
sidemove();
writetree2();
}
メインタスク。上記のサブルーチンを組み合わせる。~
*結果と反省・感想 [#h4f7aed1]
**結果と反省 [#yba0b005]
結果としては満足のいく結果が得られず、字がかけたことは...
失敗の要因として、~
文字を大きく書くことにこだわりすぎた&ロボットのモーターを...
ロボット自体が不安定であり、まっすぐ進まない。~
等があると思われるが、
その他にも今回はプログラムの不具合が多く、またスケジュー...
上手い事ロボットを動かすプログラムを組むことが出来なかっ...
反省として挙げられるのは、ロボット制作の適当さがあった...
左右不安定な位置に電池ボックスを置くと、重心が偏り、まっ...
前後にも適切な位置に置かないと、後ろのモーターに繋がって...
適切な回転が行われないといった事態が発生する原因にもなる...
電池ボックスの配置場所は考慮する必要があるのだと今回の課...
**感想 [#tf71e27b]
ロボットとプログラムを同時に製作することは今回が初めて...
正直ロボット作りの細かさ、繊細さを少しみくびっていた所が...
授業時間中はもちろんの事、授業時間外にも同じ班の人と協力...
期間中にきちんとしたロボットは作れないんだという事を強く...
ページ名: