A4の紙に自分にゆかりのある地名(2文字)をロボットを作成した。
今回は自分の苗字でもある地名の小諸市の地である"森山"を選んだ。
構造は基本的なものを用いx,y,z型とした紙の長編をX軸、短編をY軸、高さ(ペン)をZ軸とした。
x軸はタイヤを用いて移動するようにした。ギアが余らずギア比をうまく調節できなかったため少し速度が出すぎてしまった。
y軸はベルトコンベア型にした。上に乗っけたペンを下げる機構が滑ってしまうためラバーを裏返しにして使い本来ならタイヤに引っかかる凹凸のある裏面を表にして使った(画像参照)。しかしコンベアが伸びていたためうまく平らにならなく、引っかかりやすくやすくなってしまった。そのため下にテンションをかけるためのタイヤをつけてコンベアが張るようにした。
z軸はrisの特徴である平らなギアを用いた。y軸制御のコンベアに乗っける機構のため小型化が求められたがパーツの関係上少し大きくなりすぎた。縦に伸ばすことによって可能な限り可動域を確保し小型化した。
#define A 8 //X軸 Aのモータ係数 #define B 8 //Y軸 Bのモータ係数 #define C 3 //Z軸 Cのモータ係数 #define DPD 2//ペンを下ろす距離(時間)はDPD*Cで決まる //初期位置は下記順通りから始まるyを真ん中 xは任意 zは上がった状態で task main(){ SetPower(OUT_A,3); SetPower(OUT_B,3); SetPower(OUT_C,2); tree(); //森 Ym(7); Xm(1); tree(); Yp(1); Xp(3); tree(); Ym(6); Xm(4); //山 Zp(DPD); Xm(8); Zm(DPD); Ym(5); Xp(3); Zp(DPD); Xm(3);Yp(10); Zm(DPD); Xp(3); Zp(DPD); Xm(4); Zm(DPD); } void tree(){ //木 Zp(DPD); Yp(6); Zm(DPD); Ym(3); Xp(1); Zp(DPD); Xm(6); Zm(DPD); Xp(5); Zp(DPD); naname1(30); Zm(DPD); Yp(3); Xp(3); Zp(DPD); naname2(30); Zm(DPD); } void naname1(int time){ OnRev(OUT_AB); Wait(time); Off(OUT_AB); Wait(1); //動作安定のためのWait } void naname2(int time){ OnRev(OUT_A); OnFwd(OUT_B); Wait(time); Off(OUT_AB); Wait(1); }
void Xp(int time){ OnFwd(OUT_A); Wait(time*A); Off(OUT_A); Wait(1); }
void Xm(int time){ OnRev(OUT_A); Wait(time*A); Off(OUT_A); Wait(1); }
void Yp(int time){ OnFwd(OUT_B); Wait(time*B); Off(OUT_B); Wait(1); }
void Ym(int time){ OnRev(OUT_B); Wait(time*B); Off(OUT_B); Wait(1); }
void Zp(int time){ OnFwd(OUT_C); Wait(time*C); Off(OUT_C); Wait(1); }
void Zm(int time){ OnRev(OUT_C); Wait(time*C); Off(OUT_C); Wait(1); }