下の写真は本体全体の写真.xyz軸を使って文字を書いた.
見た目はがっちりしていて複雑そうだが,分解すると下の写真のように3つに簡単に分解できる.そして,一番左の部品がY軸(縦の動き)を担当して,真ん中と一番右の部品でX軸(横の動き)そして一番右の部品だけでZ軸(上下の動き)を担当している.
ペンの上げ下げについて,ペンを下すときや書いているときペンの支えが弱かったためにぶれが生じていたので,ペンを機械に短く持たせれるように下の写真の左から右にした.こうすることで書きたい文字の成功率が非常に上がった.
縦移動について,xyz軸を作ろうと考えると左右の車輪を1つのモータで動かさなければいけならない.その問題について,1つの参考文献を引用して解決した.http://yakushi.shinshu-u.ac.jp/robotics/?2006a%2FD7%2F%B2%DD%C2%EA%A3%B1%B1%A6
だが,左右の車輪だけではバランスが悪くて走れないので,下の写真の上の部分のように1つの車輪を取り付けてバランスを取った.
横移動はRIS専用の部品である白いギザギザのブロックと車輪を組み合をせて作った.横移動の部品を作るとき,歯車の回るスピードが速すぎてギザギザブロックと接触不良を起こしたり,そもそもギザギザブロックと歯車がうまくかみ合わないというようなことが起こった.これに対してまず歯車を複数くっつけてモータの回転数を間接的に減らした.そして歯車の大きさをギザギザブロックとうまくかみ合うように選んだ.
#define fudeage OnFwd(OUT_A);Wait(10);Off(OUT_A); #define fudesage OnRev(OUT_A);Wait(10);Off(OUT_A); #define yokoR OnFwd(OUT_B);Wait(60);Off(OUT_B); #define yokoL OnRev(OUT_B);Wait(60);Off(OUT_B); #define yokoL2 OnRev(OUT_B);Wait(30);Off(OUT_B); #define tateUP OnRev(OUT_C);Wait(20);Off(OUT_C); #define tateDO OnFwd(OUT_C);Wait(20);Off(OUT_C); task main () { fudesage; yokoR; //三の1画目 fudeage; tateDO;tateDO; fudesage; yokoL; //三の2画目 fudeage; tateDO;tateDO; fudesage; yokoR; //三の3画目 fudeage; //三の完成 tateDO;tateDO;tateDO; fudesage; yokoL; //重の横棒1 int a=0; for(a=0;a<3;a++){ fudeage; tateDO; fudesage; yokoR; //重の横棒2,4,6 fudeage; tateDO; fudesage; yokoL; //重の横棒3,5,7 } fudeage; tateUP;tateUP;tateUP;tateUP; fudesage; tateDO;tateDO; //重の縦棒1(左端) fudeage; yokoR; tateUP;tateUP; fudesage; tateDO;tateDO; //重の縦棒2(右端) fudeage; yokoL2; tateUP;tateUP;tateUP;tateUP; fudesage; tateDO;tateDO;tateDO;tateDO;tateDO;tateDO; //重の縦棒3(真ん中) fudeage; //重の完成 }
プログラムについて,自分はできるだけ短くしようと努力した.なぜならそうすることで問題点がわかりやすく修正しやすいと考えたからだ.工夫としては#defineの部分で短い動きを定義して移動のプログラムを簡略化した.だが,短すぎると書く時ぶれを生じさせやすいので適度なWaitに調整した.またロボの設計上,下から上に線を引くことができないのでそこに注意してプログラムを書いた.
完成した文字を見てもわかるように筆を下すときのぶれが消せなかった.これについて筆の上げ下げの部品とモータの間に1枚の一番大きい歯車を取り付けれる設計にすればよかったと思う.また,斜めを書くことにもチャレンジしたが横移動での接触不良が発生しやすかったので断念した.
プログラミングの作業はxyz軸のロボ作ったのと文字が直線のみで作れたことから苦労せずに完成させることができたが,そのプログラムを実行するロボットが実行中に壊れたり接触不良で動かなかったりして苦労した.次は接触俘虜を少しでも減らせるようにブロックの高さなどに注意して組み立てていきたい.