SlideShare a Scribd company logo
1 of 45
Download to read offline
アイロンビーズプロッター作ろうと
してみた
きりん (@kirin_nico)
2016/11/5
プログラミング生放送勉強会 第44回@熊本
こういうのを自動でやりたいという話
某zjさんからの1週間くらい前のツイート
やったるか
自己紹介
自己紹介
• HN
• きりん (@kirin_nico)
• 主な活動場所
• プロ生/ニコニコ技術部/
Twitter
• 言語
• 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プリンタで出力してみる
ハードウェアの設計
• 動かしてみる
https://youtu.be/kOgUdHDGOJI
ハードウェアの設計
• 動かしてみる
https://youtu.be/PaOhTc_3me8
PCのソフトウェア
ソフトウェアの仕様
• 29x29pixel以下(プレート仕様)の画像を
減色・最適化を行ってビーズの色に合わせ、
1ドットずつ色情報と座標情報を送信する
• 必要な機能
1. 画像のリサイズ・切り出し
2. 画像の減色・最適化
3. 各ドットの情報取得
4. マイコンボードとの情報送受信
これが面倒くさそう
1. 画像のリサイズ・切り出し
• 29x29ドットよりも大きい場合はリサイ
ズもしくは切り出しを行う
• どっちもできるようにする予定
• 自分でドットを打てるようにもする?
2. 画像の減色・最適化
• 画像を16色(もしくは用意できている色
数)に減色し、ビーズの色に最適化する
• 減色アルゴリズムはたくさんあるが今回の
ユースケースに合った最適化も含めて考えな
ければならない
2. 画像の減色・最適化
• 思いついた最適化方法
• 単純に減色して一番近い色のビーズを当てる
• クラスタリングをしていい感じの減色をする
使える
ビーズ
3. 各ドットの情報取得
• 各ドットの色情報と座標情報を取得する
• 配列を走査していくだけなので簡単
X=6, y=0
RGB=0x000000
X=7, y=0
RGB=0x000000
4. マイコンボードとの情報送受信
• マイコンボードに色・座標情報の送信、マ
イコンボードから応答などの情報を受信
• シリアルポートを使う
• C#ならSerialPortクラスがあるので簡単
マイコンのソフトウェア
と電子回路
マイコンまわりの仕様
• PCソフトウェアから位置情報と色情報を
受け取り、ハードウェアを制御する
• 必要な機能
1. PCとの情報送受信
2. モーター制御信号の出力
3. センサ情報取得
マイコンボード
• Arduinoあたりを使う予定
• 簡単なプログラムで信号の入出力が可能
• PCとUSBで接続できる
• 家に互換品がたくさんある
マイコンまわりの構成
マイコン
モータードライバ
電源
ステッピング
モーター
リミットスイッチ
PC
モーター制御
センサ情報
今後の予定
今後の予定
• 画像処理ソフト
• なんとかする
• マイコンボード・電気回路
• なんとかする
• ハードウェア
• なんとかする
今後の予定
• 画像処理ソフト
• ちゃんと作る
• マイコンボード・電気回路
• 制御プログラムと回路作成
• ビーズの色をカラーセンサで自動取得
• ハードウェア
• モーターなど駆動部の追加
今後の予定
アイロンビーズ作品を作ってマスコット
アプリ文化祭に登録できたらいいな
ご清聴ありがとうございました!

More Related Content

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

Bluesky勉強会資料_ukawa_v2-1.pptx
Bluesky勉強会資料_ukawa_v2-1.pptxBluesky勉強会資料_ukawa_v2-1.pptx
Bluesky勉強会資料_ukawa_v2-1.pptxssuser1b1950
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解するTakuya Nishimoto
 
IntelliJ IDEAで快適なPython生活
IntelliJ IDEAで快適なPython生活IntelliJ IDEAで快適なPython生活
IntelliJ IDEAで快適なPython生活敦志 金谷
 
Rでを作る
Rでを作るRでを作る
Rでを作るNagi Teramo
 
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)Daisuke Nishino
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2Takuya Nishimoto
 
見える!「IoT」 NefryでJenkinsのXFD作ってみた
見える!「IoT」 NefryでJenkinsのXFD作ってみた 見える!「IoT」 NefryでJenkinsのXFD作ってみた
見える!「IoT」 NefryでJenkinsのXFD作ってみた Tone Blue
 
Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)泰 増田
 
エンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったことエンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったことTakao Sumitomo
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Reportgree_tech
 
nomad-cliの紹介
nomad-cliの紹介nomad-cliの紹介
nomad-cliの紹介Kohki Miki
 
SeeedJP User Group 情報交換会発表資料
SeeedJP User Group 情報交換会発表資料SeeedJP User Group 情報交換会発表資料
SeeedJP User Group 情報交換会発表資料Shigeo Ueda
 
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6Takeshi Akutsu
 
Caffeでお手軽本格ディープラーニングアプリ @potatotips
Caffeでお手軽本格ディープラーニングアプリ @potatotipsCaffeでお手軽本格ディープラーニングアプリ @potatotips
Caffeでお手軽本格ディープラーニングアプリ @potatotipsTakuya Matsuyama
 
PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話kanorimon
 
いろんなコミュニティに参加してみた
いろんなコミュニティに参加してみたいろんなコミュニティに参加してみた
いろんなコミュニティに参加してみたTone Blue
 
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 20130から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013Tasuku Suenaga
 

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

Bluesky勉強会資料_ukawa_v2-1.pptx
Bluesky勉強会資料_ukawa_v2-1.pptxBluesky勉強会資料_ukawa_v2-1.pptx
Bluesky勉強会資料_ukawa_v2-1.pptx
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
IntelliJ IDEAで快適なPython生活
IntelliJ IDEAで快適なPython生活IntelliJ IDEAで快適なPython生活
IntelliJ IDEAで快適なPython生活
 
Rでを作る
Rでを作るRでを作る
Rでを作る
 
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
JJUG Oracle Code One 2018 報告会 LT(@nishino_chekhov)
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
 
ログ勉 Vol.1
ログ勉 Vol.1ログ勉 Vol.1
ログ勉 Vol.1
 
見える!「IoT」 NefryでJenkinsのXFD作ってみた
見える!「IoT」 NefryでJenkinsのXFD作ってみた 見える!「IoT」 NefryでJenkinsのXFD作ってみた
見える!「IoT」 NefryでJenkinsのXFD作ってみた
 
Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)
 
Cmujp21_node-webkit
Cmujp21_node-webkitCmujp21_node-webkit
Cmujp21_node-webkit
 
エンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったことエンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったこと
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
nomad-cliの紹介
nomad-cliの紹介nomad-cliの紹介
nomad-cliの紹介
 
SeeedJP User Group 情報交換会発表資料
SeeedJP User Group 情報交換会発表資料SeeedJP User Group 情報交換会発表資料
SeeedJP User Group 情報交換会発表資料
 
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
 
Caffeでお手軽本格ディープラーニングアプリ @potatotips
Caffeでお手軽本格ディープラーニングアプリ @potatotipsCaffeでお手軽本格ディープラーニングアプリ @potatotips
Caffeでお手軽本格ディープラーニングアプリ @potatotips
 
PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話
 
いろんなコミュニティに参加してみた
いろんなコミュニティに参加してみたいろんなコミュニティに参加してみた
いろんなコミュニティに参加してみた
 
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 20130から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
 
可視化法学 smips登壇
可視化法学 smips登壇可視化法学 smips登壇
可視化法学 smips登壇
 

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