2016a/Member

目次

課題

今回の課題は、似顔絵を描くロボットの作成。

注意点としては、。腺瓦了罎涼罎貿爾泙襪茲Δ砲垢覘▲撻鶲奮阿鷲嫗阿良品を使用するプログラムはできる限りコンパクトなものにする。

ロボットの構造 

L字型の部品に輪ゴムを使用して、ペンを固定した。ペンの上げ下げは、モーターの回転を利用することで再現した。

【ロボット後方】

ロボット後方の写真

【ロボット側方】

ロボット側方の写真

プログラム 

【プログラムの定義】

go:前進する back:後退する turn_left:左回転 turn_right:右回転 up:ペンを上げる down:ペンを下げる Wait:停止する

repeat(x){a}:{a}をx回繰り返す

(t)のtに数字を代入することで各コマンドの動作時間を指定できる

#define go(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC)
#define turn_left(t) OnRev(OUT_A);OnFwd(OUT_C);Wait(t);Off(OUT_AC)
#define turn_right(t) OnRev(OUT_C);OnFwd(OUT_A);Wait(t);Off(OUT_AC)
#define back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC)
#define up OnRev(OUT_B);Wait(7);Off(OUT_B)
#define down OnFwd(OUT_B);Wait(10);Off(OUT_B)

【顔の手順】

[愕圓鯢舛

最初は各線ごとにプログラムしていたが、repeatで省略することが可能だと気づき、変更した。2本の線の角度がずれるときれいな輪郭にならないので、微調整に苦労した。

task main()
{
  go(10);
  repeat(3){
  go(80);
  up;
  back(120);
  turn_left(80);
  back(10);
  down;}

¬椶鯢舛

目は顔の中心から見て、対象になると考え、ここでもrepeatを使用した。

  go(105);
  up;
  back(20);
  turn_right(120);
  go(70);
  repeat(2){
  go(10);
  down;
  go(20);
  up;}
  back(10);
  turn_right(120);

I,鯢舛

目の真ん中に来るように微調整することも大変だったが、今回作ったロボットでは、短い線をきれいに書くのが難しいことをここで実感した。その問題点と対策は別に記載した。

  go(160);
  down;
  Wait(20);
  go(10);
  up;

じを描く

口はあまり問題なく、プログラムすることができたが、ロボットの調子に左右され、苦労した。

  go(20);
  turn_right(120);
  go(130);
  down;
  go(25);
  up;
}

問題点1

ロボット後方についている、ペンを回すためのモーターが、ペンを回す反動やペンが地面につく衝撃ですぐに取れてしまう。

対策 タイヤの間に挟むことで固定した。

【対策後の写真】

対策後の写真

問題点2

コードの接続不良。

対策 別のコードを使用。ただし、コードが長いため本体の上に積むことになった。

問題点3 

ペンを回す勢いが強く、短い線を描こうとするとペンがはねて、点線になってしまう。

対策 ペンを下げる動作の後にWaitをプログラムに挟むことで、ペンが完全に地面についてから描き始めるようになり、きれいな線を描くことができた。

完成図

矢印とその番号はプログラムの「顔の手順」を参照

【完成写真】

完成図

感想及び反省

初めてのプログラミングだったが、少しは慣れることができた。そして、一度プログラムが消えるというハプニングもあったが、そのおかげで最初よりコンパクトなプログラムになったので、良かった。しかし、ロボットの移動範囲が広く、似顔絵を描くときにロボットが紙を動かしてしまうので、抑える必要があった。次は移動範囲を可能な限り狭くするようにしたい。全体的にロボットの調子に左右され、微調整の繰り返しで大変だった。


添付ファイル: fileimage8.jpg 257件 [詳細] fileimage6.jpg 249件 [詳細] fileimage5.jpg 273件 [詳細] fileimage1.JPG 316件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-07-07 (木) 18:35:59