2019a/Member

課題

課題については2019a/Mission1を参照。

選んだ言葉

私は今年一年過ごすこの街、「松本」を選んだ。

ロボットについて

line_264297717068338.jpg

 ペンが両タイヤの中心に来るように置き、ペンが軸となるようにすることでペンが降りている状態でも回転することが出来るようにした...と思っていた。

kikou.jpg

これがペンを上下する機巧である。ペンの上下とロボットの動きで文字を書くようにした。

プログラミングから実行へ

始まり

 まず直線を二種類、90度の右回転と左回転を調べ定義した。このとき直線と回転を連続して行うと、調べたときの動きをせず、行動と行動の間に停止させる必要があることにきづく。  その後、文字をこのようにした。

 

プログラムの説明

 はじめに定義した四種のdefineに加え、さらにペンの上下と他四種を定義した。

#define t_l90 OnFwd(OUT_A);OnRev(OUT_C);Off(OUT_B);Wait(22);Off(OUT_ABC);//左回転(90度)
#define t_l OnFwd(OUT_A);OnRev(OUT_C);Off(OUT_B);//左回転
#define t_r90 OnFwd(OUT_C);OnRev(OUT_A);Off(OUT_B);Wait(23);Off(OUT_ABC);//右回転(90度)
#define t_r OnFwd(OUT_C);OnRev(OUT_A);Off(OUT_B);//右回転
#define str2 OnFwd(OUT_AC);Off(OUT_B);Wait(6);Off(OUT_ABC);//直進2
#define str1 OnFwd(OUT_AC);Off(OUT_B);Wait(3);Off(OUT_ABC);//直進1
#define back OnRev(OUT_AC);Off(OUT_B);//後退
#define stopABC Off(OUT_ABC);Wait(100);//停止
#define up OnFwd (OUT_B);Wait(5);Off(OUT_B);//ペンを上げる
#define down OnRev(OUT_B);Wait(4);Off(OUT_B);//ペンを下げる
20190806_174003 (2).jpg
20190806_174430 (2).jpg

黒の矢印が筆を下ろした状態での動き
赤の矢印が筆を上げた状態での動き

  松を書くためのプログラミング
黒の1

task main()
{ stopABC
  str2

赤の1

  stopABC
  up  
  stopABC
  t_r
  Wait(36);
  back
  Wait(3);

黒の2

  stopABC
  down
  stopABC
  str1
  str2
  str2

赤の2

  stopABC
  up
  stopABC
  back
  Wait(12);
  stopABC
  t_r
  Wait(6);

黒の3

  stopABC
  down
  stopABC
  str2
  stopABC
  back
  Wait(8);
  stopABC
  t_l
  Wait(10);
  stopABC
  str2

赤の3

  stopABC
  up
  stopABC
  back
  Wait(8);
  stopABC
  t_l
  Wait(42);
  stopABC
  str2
  str1

黒の4

  stopABC
  down
  stopABC
  str2

赤の4

  stopABC
  up
  stopABC
  str1
  t_r90

黒の5

  stopABC
  down
  stopABC
  str2

赤の5

  stopABC
  up
  stopABC
  back
  Wait(6);
  stopABC
  t_r
  Wait(32);
  stopABC
  str2

黒の6

  stopABC
  down
  stopABC
  str2
  stopABC
  t_l
  Wait(45);
  stopABC
  str2
  stopABC
  t_r90
  stopABC
  str2
  back
  Wait(8);

赤の6

  stopABC
  up
  stopABC
  back
  Wait(10);
  stopABC
  t_l
  Wait(28);
  stopABC
  str2
  str2

 本を書くためのプログラミング
黒の7

  stopABC
  down
  stopABC
  str2
  str2

赤の7

  stopABC
  up
  back
  Wait(3);
  stopABC
  t_r
  Wait(36);
  back
  Wait(3);

黒の8

  stopABC
  down
  stopABC
  str2
  str2
  str1

赤の8

  stopABC
  up
  back
  Wait(15);
  stopABC
  t_r
  Wait(16);

黒の9

  stopABC
  down
  str2
  str2
  stopABC
  back
  Wait(14);
  stopABC
  t_l90
  stopABC
  str2
  str2

赤の9

  stopABC
  up
  stopABC
  back
  Wait(6);
  t_r
  Wait(35);
  stopABC
  str1

黒の10

  stopABC
  down
  stopABC
  str2

  stopABC
  up
}

書けた文字

line_264311116808594.jpg
line_264312742630572.jpg

 同じプログラムでこれだけの差が出来てしまった。この理由として次のことが考えられる。

  1. タイヤがきちんと固定されていない
  2. 紙をとめているテープで滑ってしまっている
  3. バッテリーが書くごとに下がっている

まとめと感想

 思った通りになかなか動いてもらえず苦労した。同じプログラムで異なる動きを見せたときは、それはもう困った。完璧にはほど遠いが、読めるくらいまでになったことはとても感動している。


添付ファイル: filekikou.jpg 224件 [詳細] file20190806_174430 (2).jpg 140件 [詳細] file20190806_174003 (2).jpg 194件 [詳細] fileline_264297717068338.jpg 240件 [詳細] fileline_264312742630572.jpg 259件 [詳細] fileline_264299369861358.jpg 94件 [詳細] fileline_264311116808594.jpg 174件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-08-21 (水) 10:37:30