#contents *ロボット紹介 [#reb15e7c] &ref(./IMG_3598.jpg,50%); &ref(./IMG_3603.JPG,50%); &ref(./IMG_3600.jpg,50%); &ref(./IMG_3601.jpg,50%); &ref(./IMG_3602.JPG,50%); &ref(./IMG_3599.jpg,50%); 車は前進と後退の前後運動のみを行う。 横の動きはレールを使い、ペンの上下運動はペンをタイヤに挟み込み、タイヤを回すことで行った。 車の前方にレールとペンの上下装置を組み込むとどうしても重心が前に行ってしまい不安定だった為、後方とレール側面におもりとしてタイヤを取り付けることで対応した。レールの可動域の問題から横幅は10センチほどしか動かないため大きな文字を書くことが困難な事とRISは速度調整ができないため斜め方向の動きに弱いことが欠点である。 *作戦 [#de2c6501] ペンについては先が軽く当たっただけでインクの出る名前ペンを使用する。今回私が挑戦する漢字は「岳」である。ここで問題となるのは前述したように1画目の斜めである。斜め棒にトライした結果うまい斜めにならなかった。斜め棒を縦棒で書いてみてもたいして違和感は感じなかったため短めの縦棒で代用することにする。ロボットだと漢字の中にある四角、今回の場合だと「丘」のなかにある四角があるせいでペンを何度も上げたり下げたりしなければ線が2重3重となってしまうため、ペンの上下をしっかりと正確にこなしていきたい。 *プログラム [#w0a71d13] #define DOWN OnRev(OUT_C); Wait(5); Off(OUT_C); Wait(20); #define UP OnFwd(OUT_C); Wait(5); Off(OUT_C); Wait(20); #define BACK(BACK_TIME) OnFwd(OUT_A); Wait(BACK_TIME); Off(OUT_A); Wait(20); #define GO(GO_TIME) OnRev(OUT_A); Wait(GO_TIME); Off(OUT_A); Wait(20); #define MIGI(MIGI_TIME) OnFwd(OUT_B); Wait(MIGI_TIME); Off(OUT_B); Wait(20); #define HIDARI(HIDARI_TIME) OnRev(OUT_B); Wait(HIDARI_TIME); Off(OUT_B); Wait(20); 上から順に +ペンを下げる +ペンを上げる +車が後退する +車が前進する +レールを使いペンを右に動かす +レールを使いペンを左に動かす と定義する task main() { BACK(18); //「岳」一角目の短い縦棒 BACK(45); //「丘」左の長い縦棒 UP; GO(28); DOWN; MIGI(50); //「丘」上の横棒 UP; HIDARI(10); DOWN; BACK(38); //「丘」右の縦棒 MIGI(13); HIDARI(70); //「丘」下の横棒 UP; MIGI(35); DOWN; BACK(43); //「山」真ん中縦棒 UP; MIGI(25); DOWN; GO(30); //「山」右縦棒 UP; BACK(25); DOWN; HIDARI(65); //「山」下横棒 GO(30); //「山」左縦棒 } 今回使用する動きをすべて初めに定義することができたためプログラムがスムーズ、簡単にかけたと思う。しかし同じ時間でも床との摩擦などによって毎回ペンの移動距離が変わるので、狙って正確な距離が出せないところがつらかった。 *結果と反省 [#i384a9a3] &ref(./IMG_3604.JPG,50%); 車が前進、後退したあとも慣性によりゆっくりと車が進み続けるためうまく線と線がかみ合わない部分が出てきてしまった。目標の1つであったペンの上下は、はじめの方を除けば比較的うまくいった。1,2画目について線が途切れてしまったのは車が後退する際にペンが斜めになってしまい、ペン先が紙まで届かなくなってしまったことが主な原因と思われる。何度もレールが動きすぎてペンが上下マシンと共に外れてしまうアクシデントが起こったが書く文字を小さくすることで対処した。不格好な形ではあるが最初に比べれば読めなくはないレベルにまでは引き上げられたと思う。次はNXCでやってみたい。