「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」...

45
アイロンビーズプロッター作ろうと してみた きり (@ kirin_nico ) 2016/11/5 プログラミング生放送勉強会 第44回@熊本

Transcript of 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」...

Page 1: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

アイロンビーズプロッター作ろうとしてみた

きりん (@kirin_nico)

2016/11/5プログラミング生放送勉強会 第44回@熊本

Page 2: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

こういうのを自動でやりたいという話

Page 3: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

某zjさんからの1週間くらい前のツイート

Page 4: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本
Page 5: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

やったるか

Page 6: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

自己紹介

Page 7: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

自己紹介

• HN• きりん (@kirin_nico)

• 主な活動場所• プロ生/ニコニコ技術部/

Twitter

• 言語• C#/Lua• (お仕事:TCL/C/asm/Verilog HDL/Perl)

• 電子工作・画像処理系プログラミングが好き

Page 8: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

自己紹介

座右の銘

「お酒は友達 二日酔いは親の仇」

Page 9: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

主な活動

•「必ず6が出るサイコロ」

• 6面がLEDで構成されているサイコロ

• センサにより上面を検知、上面の目を6にする

Page 10: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

主な活動

•「きのこたけのこ判別器」

• きのことたけのこを画像処理で判別

• 判別した2種をアームロボットで自動仕分け

Page 11: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

アイロンビーズとは

Page 12: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

アイロンビーズとは

•こういうの

画像:パーラービーズhttp://www.diablock.co.jp/perlerbeads/

Page 13: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

アイロンビーズとは

•樹脂チューブを並べてドット絵を作る

•アイロンで加熱することで軟化する

•日本ではパーラービーズのものが有名• 直径5mm×長さ5mm

• おもちゃ屋や大型電気量販店で買える

Page 14: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

アイロンビーズとは

•うまいこと重ねると立体も作れる

画像:パーラービーズhttp://www.diablock.co.jp/perlerbeads/

Page 15: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

アイロンビーズ作品制作に必要なもの

アイロンビーズ プレート

アイロンシート アイロン

画像:パーラービーズhttp://www.diablock.co.jp/perlerbeads/

Page 16: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

手で作ってみた

• 16×16、8色で30分ちょい

プロ生ちゃん ドット絵素材

16x16 16色

プロ生ちゃん アイロンビーズ

16x16 8色

(制服の色がない…)

Page 17: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

本題

Page 18: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

やりたいこと

•ドット絵からビーズをプレートに自動で配置したい

•仕様•ビーズは16色以上 (プロ生ちゃんドット色数)

•プレートは正方形で29×29個置けるもの(“しろプレートL”のサイズ)

• PCで画像処理、マイコンで制御、ハードでビーズ配置

Page 19: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

構成

マイコン電子回路 自作ハードPC

PCからの指令によりハード(モーターやセンサ)の制御を行う

物理的にビーズの選択、プレートへの配置を行う

ドット絵の解析を行い、リサイズ、減色最適化、ドット情報の取得、マイコンへの指令を行う

Page 20: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

処理フロー

混ざったビーズの色分け等

指定色の取り出し

指定位置へ配置

色の指定制御

位置指定制御

ソフト動作(マイコン)

ハード動作

ドット絵の色と位置情報解析

1ドット情報取得

ソフト動作(PC)

色指定位置指定

終了確認

ハードの制御

ビーズの選択・配置

ドット絵の解析

ハードの初期化制御

Page 21: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェア

Page 22: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェアの仕様

• 16色以上のビーズから1色を取り出し、14.5x14.5cm以上の範囲で任意の位置に配置する

•必要な機能1. 同色ビーズを揃える (今回は手でやる)

2. 任意色のビーズを1個”だけ”取り出す

3. 1個のビーズを任意位置に配置する

Page 23: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェアの構想

•適当に考えてみる

Page 24: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェアの構想

•適当に考えてみる

任意の色のビーズを取り出す機構

任意の位置にビーズを配置する機構

Page 25: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェアの設計

•適当にCADで設計してみる

Page 26: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェアの設計

•適当にレンダリングしてみる

Page 27: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェアの設計

•試しに3Dプリンタで出力してみる

Page 28: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェアの設計

•動かしてみる

https://youtu.be/kOgUdHDGOJI

Page 29: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ハードウェアの設計

•動かしてみる

https://youtu.be/PaOhTc_3me8

Page 30: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

PCのソフトウェア

Page 31: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ソフトウェアの仕様

• 29x29pixel以下(プレート仕様)の画像を減色・最適化を行ってビーズの色に合わせ、1ドットずつ色情報と座標情報を送信する

•必要な機能1. 画像のリサイズ・切り出し

2. 画像の減色・最適化

3. 各ドットの情報取得

4. マイコンボードとの情報送受信

これが面倒くさそう

Page 32: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

1. 画像のリサイズ・切り出し

• 29x29ドットよりも大きい場合はリサイズもしくは切り出しを行う

•どっちもできるようにする予定

•自分でドットを打てるようにもする?

Page 33: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

2. 画像の減色・最適化

•画像を16色(もしくは用意できている色数)に減色し、ビーズの色に最適化する

•減色アルゴリズムはたくさんあるが今回のユースケースに合った最適化も含めて考えなければならない

Page 34: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

2. 画像の減色・最適化

•思いついた最適化方法• 単純に減色して一番近い色のビーズを当てる

• クラスタリングをしていい感じの減色をする

使えるビーズ

Page 35: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

3. 各ドットの情報取得

•各ドットの色情報と座標情報を取得する

•配列を走査していくだけなので簡単X=6, y=0

RGB=0x000000

X=7, y=0RGB=0x000000

Page 36: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

4. マイコンボードとの情報送受信

•マイコンボードに色・座標情報の送信、マイコンボードから応答などの情報を受信

•シリアルポートを使う• C#ならSerialPortクラスがあるので簡単

Page 37: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

マイコンのソフトウェアと電子回路

Page 38: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

マイコンまわりの仕様

• PCソフトウェアから位置情報と色情報を受け取り、ハードウェアを制御する

•必要な機能1. PCとの情報送受信

2. モーター制御信号の出力

3. センサ情報取得

Page 39: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

マイコンボード

•Arduinoあたりを使う予定•簡単なプログラムで信号の入出力が可能• PCとUSBで接続できる•家に互換品がたくさんある

Page 40: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

マイコンまわりの構成

マイコン

モータードライバ

電源

ステッピングモーター

リミットスイッチ

PC

モーター制御

センサ情報

Page 41: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

今後の予定

Page 42: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

今後の予定

• 画像処理ソフト• なんとかする

• マイコンボード・電気回路• なんとかする

• ハードウェア• なんとかする

Page 43: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

今後の予定

• 画像処理ソフト• ちゃんと作る

• マイコンボード・電気回路• 制御プログラムと回路作成

• ビーズの色をカラーセンサで自動取得

• ハードウェア• モーターなど駆動部の追加

Page 44: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

今後の予定

アイロンビーズ作品を作ってマスコット

アプリ文化祭に登録できたらいいな

Page 45: 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」 プロ生勉強会 第44回@熊本

ご清聴ありがとうございました!