[[2016a/Member]] *はじめに [#gbc8eec7] ・今回の目的 NXTを用いて似顔絵を描くロボットとプログラムを作成する。 *ロボットの説明 [#o39fc1a7] ↓ロボットの画像↓ http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&refer=2016a%2FMember%2FEtu%2FMission1&openfile=IMG_0757.JPG ロボットの前方にアームをつけ、それにペンを取り付けた。 Cのモーターを使用して上下させてペンを上げたり下げたりさせる仕組みにした。 AとBのモーターでタイヤを動かしている。 *プログラムの説明 [#p1376446] 下に書くものは今回、似顔絵を作成するにあたって使った定義である。 ロボットの前方に取り付けたアームを上下させるための ペンアップとペンダウンである #define pen_up OnRev(OUT_C,10);Wait(500);Off(OUT_C) #define pen_down OnFwd(OUT_C,10);Wait(500);Off(OUT_C) また、反省の欄に書くが、今回の課題において 輪郭を書くためのプログラムで躓いてしまって 顔のパーツをつくるまでに至らなかったため ここでは輪郭を書こうとしたプログラムだけでも記すことにする task main () { repeat(6) { //輪郭 OnFwd(OUT_AB,25); Wait(1200); Off(OUT_AB); pen_up; OnFwd(OUT_AB,25); Wait(800); Off(OUT_AB); OnFwd(OUT_B,25); Wait(1917); Off(OUT_B); OnRev(OUT_AB,25); Wait(2000); Off(OUT_AB); pen_down; } これは六角形の輪郭をイメージして作ったものである。 前進→ペンアップ→前進→回転→後退→ペンダウン→前進 と動くようになっている *苦労した点 [#w1ca6e82] http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&refer=2016a%2FMember%2FEtu%2FMission1&openfile=IMG_0756.JPG 顔の輪郭を六角形にしようと考え、 前進→ペンアップ→前進→回転→後退→ペンダウン→前進 というプログラムで進めていこうと思ったが、 前進→ペンアップ→回転にしてしまうとペン先が合わなくなってしまうことに気づき その対策としてペンアップの後に前進を加えたが その調節が難しかった。 またロボットの後輪が回転の時に横に向いてしまって 後退しようとするとまっすぐに下がれなかったことが予想外だった。 *感想 [#na5f6bbc] ロボットを作ることも、プログラムを書くことも初めてのことで なかなか慣れなかったところがあった。 またタイヤなどについても認識があまく、 想像通りにならなくて、 うまく顔を書けなかったのが悔しかった。 次回の課題は時間内に完成させれるようにしたい。