- 追加された行はこの色です。
- 削除された行はこの色です。
[[2015a/Member]]
*書道ロボットの概観 [#gdffac07]
3つのモーターを
-車体の前後左右の移動(モーターA,C)
-ペンの上下(モーターB)
に用いて書道ロボットを製作した。
#ref(./DSC_0003 (2).JPG,20%)
ペンと車体は一体化しており車体を動かすことで文字を書くようにした。
*製作上の問題点と苦労した点 [#s210a81e]
**車体とペンのずれ [#a7fae28f]
上記のようにペンと車体を一体化したため、車体を大きく動かさなければならなくなった。
そのため車体の動きや、ペンと地面との摩擦などで少しずつずれが生じてしまい
書くたびに文字が変化するという事態が起こってしまった。
**車体のサイズ [#x5fea495]
ペンが車体の前についているので車体の向きを変更するたびにペンの位置がずれてしまうため
プログラミングの段階で、車体の大きさを考慮しなければならなかった。
**動力の力の差 [#t80d1772]
車体を動かすモーターに力の差が生じたため、直線のつもりが左に寄っていってしまい
方向転換の際に、まっすぐ進まないことを考慮しプログラミングしなければならなかった。
*プログラム [#of0af850]
**「聡」を書くプログラム [#caa0642e]
#define go OnFwd(OUT_AC);
#define up OnRev(OUT_B);Wait(10);Off(OUT_B);
#define down OnFwd(OUT_B);Wait(10);Off(OUT_B);
#define left OnFwd(OUT_C);OnRev(OUT_A);
#define right OnFwd(OUT_A);OnRev(OUT_C);
#define back OnRev(OUT_AC);
task main()
{
down
go
Wait(45);
up
back
Wait(40);
right
Wait(90);Off(OUT_AC);
go
Wait(15);
left
Wait(90);Off(OUT_AC);
down
go
Wait(15);
up
back
Wait(30);
right
Wait(90);Off(OUT_AC);
go
Wait(15);
left
Wait(90);Off(OUT_AC);
down
go
Wait(15);
up
back
Wait(45);
right
Wait(90);Off(OUT_AC);
go
Wait(15);
left
Wait(90);Off(OUT_AC);
down
go
Wait(30);Off(OUT_AC);
up
go
Wait(70);
left
Wait(95);Off(OUT_AC);
back
Wait(60);
down
back
Wait(70);
up
go
Wait(30);
left
Wait(90);Off(OUT_AC);
go
Wait(15);
right
Wait(90);Off(OUT_AC);
down
go
Wait(50);
up
right
Wait(50);
go
Wait(25);
left
Wait(20);
down
back
Wait(25);
up
right
Wait(90);Off(OUT_AC);
go
Wait(15);
left
Wait(90);Off(OUT_AC);
down
go
Wait(20);
up
go
Wait(60);
right
Wait(55);Off(OUT_AC);
back
Wait(35);
down
back
Wait(25);
up
go
Wait(75);
right
Wait(52);Off(OUT_AC);
back
Wait(20);
down
back
Wait(15);
up
left
Wait(90);Off(OUT_AC);
go
Wait(25);
right
Wait(90);Off(OUT_AC);
go
Wait(15);
down
go
Wait(30);
left
Wait(10);Off(OUT_AC);
up
right
Wait(10);Off(OUT_AC);
back
Wait(20);
left
Wait(90);Off(OUT_AC);
go
Wait(15);
right
Wait(90);Off(OUT_AC);
down
go
Wait(15);Off(OUT_AC);
up
left
Wait(90);Off(OUT_AC);
go
Wait(25);
right
Wait(90);Off(OUT_AC);
down
back
Wait(15);
up
back
Wait(10);
down
back
Wait(15);
up
left
Wait(90);Off(OUT_AC);
go
Wait(25);
right
Wait(90);Off(OUT_AC);
down
go
Wait(25);
Off(OUT_AC);
}
*書道ロボットによる作品 [#n88cb7d6]
#ref(./DSC_0005 (3).JPG,20%)