- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
*書道ロボットの概観 [#gdffac07]
3つのモーターを
-車体の前後左右の移動(モーターA,C)
-ペンの上下(モーターB)
に用いて書道ロボットを製作した。
#ref(./DSC_0003 (2).JPG,20%)
ペンと車体は一体化しており車体を動かすことで文字を書くようにした。
*製作上の問題点と苦労した点 [#s210a81e]
**車体とペンのずれ [#a7fae28f]
上記のようにペンと車体を一体化したため、車体を大きく動かさなければならなくなった。
そのため車体の動きや、ペンと地面との摩擦などで少しずつずれが生じてしまい
書くたびに文字が変化するという事態が起こってしまった。
**車体のサイズ [#x5fea495]
ペンが車体の前についているので車体の向きを変更するたびにペンの位置がずれてしまうため
プログラミングの段階で、車体の大きさを考慮しなければならなかった。
**動力の力の差 [#t80d1772]
車体を動かすモーターに力の差が生じたため、直線のつもりが左に寄っていってしまい
方向転換の際に、まっすぐ進まないことを考慮しプログラミングしなければならなかった。
方向転換の際に、まっすぐ進まないことを考慮し少し多めに回転させるなどの工夫した
プログラムを作らなければならなかった。
**文字を書く最中の移動 [#o9ee78e2]
前進をしながら文字を書こうとすると、うまくペンが地面と接触せずたくさんの点が並ぶという
事態が発生してしまったので、文字を書くときはなるべく後進を利用したり、筆圧を調整する
などの工夫をした。
**書き順の変更と字の設定 [#x5d45c21]
方向転換をなるべく少なくするために、「耳」は横向きで書ける部分は一度に書いてしまい、
「心」という字も、点の角度が不自然にならない程度に調節し統一した。
*プログラム [#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%)
*まとめと反省 [#pb160709]
車体とペンを一体化してしまったことで、プログラムが多くなってしまったり
方向転換が増えることで、ずれが大きくなってしまうので、ペンと車体は分離する
ことが好ましかった。
何度も、繰り返しのプログラミング言語を利用する場面はあったのだが、利用しなかったために
プログラムが長くなり見づらくなってしまった。