「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」...
-
Upload
kirinnico -
Category
Engineering
-
view
670 -
download
2
Transcript of 「アイロンビーズプロッター作ろうとしてみた with プロ生ちゃん」...
アイロンビーズプロッター作ろうとしてみた
きりん (@kirin_nico)
2016/11/5プログラミング生放送勉強会 第44回@熊本
こういうのを自動でやりたいという話
某zjさんからの1週間くらい前のツイート
やったるか
自己紹介
自己紹介
• HN• きりん (@kirin_nico)
• 主な活動場所• プロ生/ニコニコ技術部/
• 言語• C#/Lua• (お仕事:TCL/C/asm/Verilog HDL/Perl)
• 電子工作・画像処理系プログラミングが好き
自己紹介
座右の銘
「お酒は友達 二日酔いは親の仇」
主な活動
•「必ず6が出るサイコロ」
• 6面がLEDで構成されているサイコロ
• センサにより上面を検知、上面の目を6にする
主な活動
•「きのこたけのこ判別器」
• きのことたけのこを画像処理で判別
• 判別した2種をアームロボットで自動仕分け
アイロンビーズとは
アイロンビーズとは
•こういうの
画像:パーラービーズhttp://www.diablock.co.jp/perlerbeads/
アイロンビーズとは
•樹脂チューブを並べてドット絵を作る
•アイロンで加熱することで軟化する
•日本ではパーラービーズのものが有名• 直径5mm×長さ5mm
• おもちゃ屋や大型電気量販店で買える
アイロンビーズとは
•うまいこと重ねると立体も作れる
画像:パーラービーズhttp://www.diablock.co.jp/perlerbeads/
アイロンビーズ作品制作に必要なもの
アイロンビーズ プレート
アイロンシート アイロン
画像:パーラービーズhttp://www.diablock.co.jp/perlerbeads/
手で作ってみた
• 16×16、8色で30分ちょい
プロ生ちゃん ドット絵素材
16x16 16色
プロ生ちゃん アイロンビーズ
16x16 8色
(制服の色がない…)
本題
やりたいこと
•ドット絵からビーズをプレートに自動で配置したい
•仕様•ビーズは16色以上 (プロ生ちゃんドット色数)
•プレートは正方形で29×29個置けるもの(“しろプレートL”のサイズ)
• PCで画像処理、マイコンで制御、ハードでビーズ配置
構成
マイコン電子回路 自作ハードPC
PCからの指令によりハード(モーターやセンサ)の制御を行う
物理的にビーズの選択、プレートへの配置を行う
ドット絵の解析を行い、リサイズ、減色最適化、ドット情報の取得、マイコンへの指令を行う
処理フロー
混ざったビーズの色分け等
指定色の取り出し
指定位置へ配置
色の指定制御
位置指定制御
ソフト動作(マイコン)
ハード動作
ドット絵の色と位置情報解析
1ドット情報取得
ソフト動作(PC)
色指定位置指定
終了確認
ハードの制御
ビーズの選択・配置
ドット絵の解析
ハードの初期化制御
ハードウェア
ハードウェアの仕様
• 16色以上のビーズから1色を取り出し、14.5x14.5cm以上の範囲で任意の位置に配置する
•必要な機能1. 同色ビーズを揃える (今回は手でやる)
2. 任意色のビーズを1個”だけ”取り出す
3. 1個のビーズを任意位置に配置する
ハードウェアの構想
•適当に考えてみる
ハードウェアの構想
•適当に考えてみる
任意の色のビーズを取り出す機構
任意の位置にビーズを配置する機構
ハードウェアの設計
•適当にCADで設計してみる
ハードウェアの設計
•適当にレンダリングしてみる
ハードウェアの設計
•試しに3Dプリンタで出力してみる
PCのソフトウェア
ソフトウェアの仕様
• 29x29pixel以下(プレート仕様)の画像を減色・最適化を行ってビーズの色に合わせ、1ドットずつ色情報と座標情報を送信する
•必要な機能1. 画像のリサイズ・切り出し
2. 画像の減色・最適化
3. 各ドットの情報取得
4. マイコンボードとの情報送受信
これが面倒くさそう
1. 画像のリサイズ・切り出し
• 29x29ドットよりも大きい場合はリサイズもしくは切り出しを行う
•どっちもできるようにする予定
•自分でドットを打てるようにもする?
2. 画像の減色・最適化
•画像を16色(もしくは用意できている色数)に減色し、ビーズの色に最適化する
•減色アルゴリズムはたくさんあるが今回のユースケースに合った最適化も含めて考えなければならない
2. 画像の減色・最適化
•思いついた最適化方法• 単純に減色して一番近い色のビーズを当てる
• クラスタリングをしていい感じの減色をする
使えるビーズ
3. 各ドットの情報取得
•各ドットの色情報と座標情報を取得する
•配列を走査していくだけなので簡単X=6, y=0
RGB=0x000000
X=7, y=0RGB=0x000000
4. マイコンボードとの情報送受信
•マイコンボードに色・座標情報の送信、マイコンボードから応答などの情報を受信
•シリアルポートを使う• C#ならSerialPortクラスがあるので簡単
マイコンのソフトウェアと電子回路
マイコンまわりの仕様
• PCソフトウェアから位置情報と色情報を受け取り、ハードウェアを制御する
•必要な機能1. PCとの情報送受信
2. モーター制御信号の出力
3. センサ情報取得
マイコンボード
•Arduinoあたりを使う予定•簡単なプログラムで信号の入出力が可能• PCとUSBで接続できる•家に互換品がたくさんある
マイコンまわりの構成
マイコン
モータードライバ
電源
ステッピングモーター
リミットスイッチ
PC
モーター制御
センサ情報
今後の予定
今後の予定
• 画像処理ソフト• なんとかする
• マイコンボード・電気回路• なんとかする
• ハードウェア• なんとかする
今後の予定
• 画像処理ソフト• ちゃんと作る
• マイコンボード・電気回路• 制御プログラムと回路作成
• ビーズの色をカラーセンサで自動取得
• ハードウェア• モーターなど駆動部の追加
今後の予定
アイロンビーズ作品を作ってマスコット
アプリ文化祭に登録できたらいいな
ご清聴ありがとうございました!