電光掲示板を作ってみた

29
電光掲示板を作ってみた Ruby+Arduinoによる電子工作の可能性

description

OSC2013広島で発表した資料です。

Transcript of 電光掲示板を作ってみた

Page 1: 電光掲示板を作ってみた

電光掲示板を作ってみたRuby+Arduinoによる電子工作の可能性

Page 2: 電光掲示板を作ってみた

自己紹介あきら (@akira345)

趣味:• 電子工作• 分解・修理• ジャンク漁り及び収集• 自宅サーバ• 仮想環境

所属:• Hiroshima.rb• 広島サーバユーザ友の会(仮)• 広島電子工作娯楽部(仮称)• OSC広島実行メンバー• オープンセミナー2014@広島 実行メンバー 等

Page 3: 電光掲示板を作ってみた

OSCも今年で3年目

Page 4: 電光掲示板を作ってみた

第1回そうだ!勉強会に参加しよう!(勉強会ってちょっと怖いけど、まずは参加してみよう。)

第2回Rubyで喋らせてみよう。(Ruby+Arduino(AquesTalk)でTwitterを喋らせました。)

Page 5: 電光掲示板を作ってみた

前回ハードやったので、何か目立つものがいいなぁ。

Page 6: 電光掲示板を作ってみた

目立つもの

Page 7: 電光掲示板を作ってみた

光物

Page 8: 電光掲示板を作ってみた

そうだ、電光掲示板作ってみよう。

Page 9: 電光掲示板を作ってみた

電光掲示板の構成

Twitter

・フォントデータをドットデータに変換・つぶやき取得・取得したつぶやきをドットデータに変換・1文字づつArduinoに送信

RS-232C

LEDMATRIX

Page 10: 電光掲示板を作ってみた

材料

Page 11: 電光掲示板を作ってみた

デジットジャンクLEDマトリックス基板

Page 12: 電光掲示板を作ってみた

Arduino UNO

Page 13: 電光掲示板を作ってみた

PC

Page 14: 電光掲示板を作ってみた

Arduinoのコードを書いて・・・

Page 15: 電光掲示板を作ってみた

Rubyのコードを書いて・・・

Page 16: 電光掲示板を作ってみた

完成!

Page 17: 電光掲示板を作ってみた

簡単でしょ?(汗)

Page 18: 電光掲示板を作ってみた

マイコンにRuby??

•普通Cとかアセンブラじゃないの?• mRubyじゃないの?•ハードウエア制御にRubyとか狂気の沙汰。

Page 19: 電光掲示板を作ってみた

• 確かに、マイコンで完結させることも出来ます。

• しかし、マイコン始めたばかりの人には、ハードルが高いのも事実。

(例:ブレークポイント無い。ステップ実行無い。Printfデバックなんて無い。メモリが無い等)

Page 20: 電光掲示板を作ってみた

マイコン+Rubyでお手軽電子工作

Page 21: 電光掲示板を作ってみた

• マイコンには最低限の仕事をさせる。• 残りはRubyにやらせる。

• 実装が汚かろうが、構成が不細工だろうが動くものを作ったものが正義!

• 分かってきたら、Rubyからマイコンへシフト。

Page 22: 電光掲示板を作ってみた

Rubyのメリット

• スクリプト系全般に言えることかもしれませんが・・• OSに(余り)依存しない。• 便利なgemが割りとある。• コンパイルしないので試作が楽。• 文字列処理が強い。• シリアル通信部などOSやハード依存部分は切り出して実装。慣れたソフトウエア開発。

Page 23: 電光掲示板を作ってみた

Rubyのデメリット

こんな奇特なことをしている人が圧倒的に少数派

Page 24: 電光掲示板を作ってみた

今回の場合

• 日本語ー>LEDのドット情報変換に重宝。東雲フォント

BITMAP.........................@@@..............@...............@...............@...............@...............@...............@...............@...............@...............@.........@.....@..........@...@............@@@.......................................ENDCHAR # J

[0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x820,0x440,0x700,0x00,0x00]

Page 25: 電光掲示板を作ってみた

今回の場合

• Twitter APIからのつぶやきを取得

require "twitter“client.search(“osc2013hi", lang: "ja", count: 300).results.map do |stus|# つぶやき取得string = string + " " + Moji.han_to_zen(stus.text.encode('utf-8'))end

Page 26: 電光掲示板を作ってみた

• LinuxとWindows両方で開発

• シリアル通信部の一部を除き同一コードで動く!(予定)

Page 27: 電光掲示板を作ってみた

まとめ

• ソフトウエアだけではなくハードウエアも楽しい。• 難しいところはチョイ足しで楽を。

• 試行錯誤は力になるが、時間は無限にある訳ではないので、全体のうち何処に注力するかは重要。楽できるところは楽をしよう。

• 趣味の世界に正解はない。• 詰まったら、人に頼ろう。

Page 28: 電光掲示板を作ってみた

Special Thanks

• Rubyの質問や相談に乗ってくださった@eielhさん

• シリアル通信周りやアルゴリズム周りに助言をくれた@tsuda_ahrさん

• Rubyシリアル通信周りのブログを掲載された方々• デジットLEDマトリクスのarduinoライブラリを公開してくださった@jh3kxmさん

• その他多くの方々に助けていただきました。

Page 29: 電光掲示板を作ってみた

Hiroshima.rbのブースにて展示予定。興味のある方は見に来てください!!