$30 off During Our Annual Pro Sale. View Details »

Raspberry Pi ZeroをCD-ROMドライブに埋め込む狂気/20160717-yokohama-robot

Raspberry Pi ZeroをCD-ROMドライブに埋め込む狂気/20160717-yokohama-robot

横浜ロボット勉強会にて発表

Akira Ouchi

July 17, 2016
Tweet

More Decks by Akira Ouchi

Other Decks in How-to & DIY

Transcript

  1. Raspberry  Pi  Zeroを
    CD-­‐ROMドライブに
    埋め込む狂気
    Ejectコマンドユーザー会
    あっきぃ (  id:Akkiesoft  )
    2016/07/17    横浜ロボット勉強会

    View Slide

  2. 自己紹介
    • あっきぃ (@Akkiesoft) です
    • Ejectコマンドユーザー会主宰
    • Japanese  Raspberry  Pi  Users  Group
    – リードの太田さんのお手伝いとか

    View Slide

  3. Japanese  Raspberry  Pi  Users  Group
    • raspi.jpの運営(Raspberry  Pi情報の発信)
    • MLの運営
    • イベント
    – 現在はおもにOSCに展示・セミナー出展
    – Raspberry  JAM(Raspberry  Piユーザーの集まり)を
    不定期開催

    View Slide

  4. 本日の展示物
    ↑今日発表するやつ
    SuicaとかPASMOとか
    nanacoとかの
    IC残高チェッカー
    Pimoroni製
    BLINKT!ボード
    スイッチサイエンス製
    RPi3向けACアダプター(5V3A)

    View Slide

  5. 本日の展示物
    • タイムラプス用カメラ
    • PiZero+Pi  Camera
    • 20秒に1度撮影して
    サーバーにアップ
    ロード
    • 最新の10枚は
    8639.tk/cameraで
    見られます

    View Slide

  6. 金魚タイムラプス(びみょう)

    View Slide

  7. 本日のお題
    • Raspberry  Pi  Zeroのサイズを活かして
    • Raspberry  Pi  Zeroを活かせているのか
    わからない謎の工作を作って
    • 謎の使い方をするお話です
    • Raspberry  Pi  Zero自体の話についても
    色々触れていきます

    View Slide

  8. Ejectコマンドユーザー会の
    ご紹介

    View Slide

  9. Ejectコマンドユーザー会とは
    • CD-­‐ROMドライブのトレイ開閉と
    • Raspberry  Pi等の小型Linuxマシンと
    • ダンボール等の簡単な工作を組み合わせて
    • ホームオートメーションを実現する
    • IoT系工作を作るユーザーの集いです

    View Slide

  10. ハムスターにエサをあげる
    • 初めて作った作品
    • 外出先からハムスターの餌をあげられる
    • ドライブを積めば複数日の給餌に対応
    • いまはハムスターが
    いないので未使用

    View Slide

  11. エアコンの電源を操作する
    • 2010年ごろ開発
    • トレイでボタンを直接押す→リモコンから電源
    回路をハックして外付けボタンをトレイで押す
    →Raspberry  Piで、
    予めハックしたリモコン
    を操作するように進化

    View Slide

  12. AC電源リモート操作
    • AC電源をEjectでON/OFFする
    • ホームセンターで買える
    スイッチと電線で作れる
    • プログラムタイマーとしても
    使える

    View Slide

  13. 除夜の鐘
    • 通称「除夜のEject」
    • 毎年12月31日にUSTREAMで中継
    • だれでもEjectで鐘をつくことができる
    • Eject結果はUSTで
    確認

    View Slide

  14. Ejectカーテン
    • 朝になったらカーテンを開く装置
    • カーテンにヒモを通し、おもりを落
    とすとカーテンが開く装置を開発
    • おもりを落とすのがCD-­‐ROM
    ドライブ
    • このためだけに
    RasPiを1台消費

    View Slide

  15. CD-­‐ROMドライブを使う意義
    • Ejectコマンド工作の大半は電子工作で解決
    • 電子工作を勉強したら楽しいはず
    • しかし、電子工作に抵抗がある人はいる
    • 電子工作ができない人は諦めなければいけ
    ないか?→NO
    • CD-­‐ROMドライブを使って工作したら少しカン
    タンにできないだろうか?

    View Slide

  16. Ejectコマンド工作のメリット
    • カンタン(電子工作ができなくても大丈夫)
    • 手軽(物品調達は難しくなく、比較的安価)
    • わりと安全(ハンダ付けとかほとんど無い)
    • Linuxの知識が身につく(かも知れない)
    – atd,  cron,  udevなど、ふだんあまりさわる機会がな
    い部分も色々触れる

    View Slide

  17. Ejectコマンド工作のデメリット
    • 工作の実行成功率にムラがある
    – 正直、工作による
    • 場所を取る
    • サーバー構築の知識はある程度必要
    • Ejectコマンド工作は万能ではない
    – 可能性は無限大とは言いつつ、できることは実は
    あまりない
    – 出来る範囲のことをやろう

    View Slide

  18. Ejectである必要はない
    • 自分で実現可能な方法で自由に実装しよう
    • 電子工作ができる人はそれでやれば良い
    – 私のエアコンリモートはRasPiに移行した
    • 市販品が良いならそれを使えば良い
    – 普通の人が注目するソリューションなので、
    ブログに書くとブクマとかアクセス数とか稼げる
    • Ejectで良いと思ったらそうすれば良い
    – すぐできるし工作する時間は楽しいしネタになる

    View Slide

  19. Ejectコマンド工作は手段
    • 当時飼っていたハムスターの世話をOSCで遠
    征していてもできるようにしたいという課題解
    決の必要に迫られて作った
    – 数週間くらいしかなくて悩んでいた
    – OSCなどのイベントのネタにしたかった、というの
    も…あるよ(  ;`ω´)
    • 単にEjectをしたくて作ったわけではない
    – Ejectだけで喜んでいるのはちょっとやばい

    View Slide

  20. Raspberry  Pi  Zeroについて

    View Slide

  21. Raspberry  Pi  Zeroの登場
    • 2015年11月26日にリリース
    • 今までで1番薄くて小さい普通のRaspberry  Pi
    • そして安い($5/4£)
    • RPi  A+とCompute  Moduleを足して2で割った
    ような見た目・スペック感
    + = ?

    View Slide

  22. リリース当日
    • すかさずキャッチ

    View Slide

  23. リリースの予兆
    • Eben  Uptonが奥さん(広報)の様子を伺う
    (11/26  15:58)

    View Slide

  24. なかなか買えなかったPiZero
    • イギリスではMagPi40号に付録としてZeroをつ
    けて販売→瞬殺
    – 空港のセキュリティチェックを通過した後の売店
    に残っていたよ!(無理ゲー)とか言うレベル
    • 入荷時期も不定期で瞬殺続き
    – たまごっちブームっぽい感じだ!w
    • Raspberry  Pi  3リリースでしばらく入荷なし
    • Raspberry  Pi  ファンが怒りはじめる

    View Slide

  25. 現在のPiZero
    • 5月にマイナーアップデート
    – CSIカメラポートが追加
    – 価格は変わらず$5/4£
    • 日本は3.33£
    • 毎日1000台を製造して需要に応える
    – 毎週水曜日にPimoroniに入荷
    – 最近は売り切れの日数が減ってきている
    – ポンド安もあるので今が買い
    • https://shop.pimoroni.com/products/raspberry-­‐pi-­‐zero

    View Slide

  26. PiZeroの向き・不向き
    • 向いてる
    – 小型のカメラ装置
    – 狭いところに組み込んで小型システムを作る
    • 向いてない
    – デスクトップ環境
    – Raspberry  Pi入門機

    View Slide

  27. 向かないトコ
    • デスクトップにするには
    色々なアダプタが
    必要になる
    • アダプタを挿した後の
    PiZeroのなにこれ感
    • アダプタを用意するなら
    通常モデルを買った方
    がはやい

    View Slide

  28. OTGと言う選択肢?
    • 2016年5月リリースのRaspbianでOTGサポート
    • OTG対応USBケーブルでPCにつなぐと、PCと
    1:1でネットワーク接続できる
    – PCからインターネット共有すれば外にも出られる
    • SSHとかVNCでリモート作業OK
    • http://www.raspi.jp/
    2016/07/pizero-­‐usb-­‐otg/

    View Slide

  29. 向いてるトコ
    • カメラとの相性はなかなかよい
    • 小さいので持ち運びに便利

    View Slide

  30. そして組み込み

    View Slide

  31. EjectZero
    • Raspberry  Pi  ZeroをCD-­‐ROMドライブに内蔵
    • USBポート数の都合上トレイ開閉はGPIO
    – さよならEjectコマンド……?
    • トレイにRPiを固定しているので、
    Ejectすると†  †コア†  †を吐く

    View Slide

  32. EjectZeroのつくりかた

    View Slide

  33. ざっくり
    • ドライブの中身を撤去
    • トレイに穴を開けてPiZeroをネジ固定
    • ドライブから5V電源を取ってPiZeroに接続
    • GPIOとフォトカプラでドライブのEjectボタンに
    接続
    • 無線LANを接続
    • OSなどの環境構築

    View Slide

  34. ドライブの中身を撤去
    • レーザーユニットを外すと170gくらい軽くなっ
    て、スペースを確保できて、Ejectも変わらず
    に実行できる

    View Slide

  35. トレイの加工
    • 穴を開けてネジで固定する
    • ネジはM2〜M2.6で短めのものを

    View Slide

  36. 電源の確保
    • 5Vをドライブから取って、PiZeroのGPIO  5Vと
    GNDに接続

    View Slide

  37. フォトカプラの用意
    • TLP785(GB)と1KΩ抵抗を千石で購入
    • 図のようなイメージで配線

    View Slide

  38. 固定と配線
    • 配線はヘッダピンを使って着脱可能にした

    View Slide

  39. 無線LANの接続
    • 小型OTGアダプターを使用
    • アキバとかでも買えるようだけど多分高い
    • dx.comがおすすめ
    – bit.ly/dxcom-­‐otg

    View Slide

  40. 完成

    View Slide

  41. 電源も手軽にしたい
    • USB給電ケーブルを作成
    – 5V:  そのままUSBケーブル化
    – 12V:  12V昇圧モジュールを使用
    • USB電源があれば
    ひととおり動く
    – モバイルバッテリー
    も、もちろんOK

    View Slide

  42. EjectZeroのソフトの実装

    View Slide

  43. EjectZeroの役割
    • 現在は「除夜のEject」用ドライブとして運用
    • OSCで展示してます
    • 操作方法
    – PiZero内のWebサーバーにアクセスして操作
    – PiZeroに用意したAPI(接続元IP制限付き)経由で
    操作

    View Slide

  44. 大晦日:除夜のEject図解
    Port:8000
    (EjectZero)
    自宅
    ツイのオタク
    煩悩
    映像・生活音(Ustream)
    ConoHaに置いてる特設ページ

    View Slide

  45. API経由はデモしにくい
    • イベント会場でテザリング接続すると
    Port8000を開けるとかができない
    • これの対応はだるいのでやりたくない
    Port:8000
    (EjectZero)
    イベント会場
    ツイのオタク
    煩悩
    ConoHaのページ

    View Slide

  46. Node.js+Socket.ioで実装
    • ConoHa  VPS上にサーバーを建てる
    • EjectZeroがサーバーに接続して
    botのように待機
    • ユーザーがConoHa  VPSのサーバーに接続し
    てEjectボタンをクリック
    • サーバーからEject指示が来て、
    EjectZeroのトレイが開閉される

    View Slide

  47. こんなかんじ
    Node.js+Websocket.ioサーバー@ConoHa
    botとして接続
    ボタンが押されたら
    サーバーから指示が来るので
    Ejectする
    サーバーからHTMLページを提供
    Ejectボタンを押せる

    View Slide

  48. アクセスしてみよう
    • http://d250g2.com:3980
    • Optical  drive  statusが
    ReadyだったらEjectできる
    • ダメなときはNot  readyに
    なる

    View Slide

  49. スクリプト公開中
    • サンプルコードをいじっただけなのでセキュリ
    ティ的にはマズい、気がする
    • https://github.com/Akkiesoft/Eject-­‐
    Command-­‐Users-­‐Group/tree/master/
    EjectZero

    View Slide

  50. どこでもEject
    • 安SIMと組合わせて野外Ejectもできそう
    • Ejectの農業IoT業界進出もあるで(ない)

    View Slide

  51. ※通常モデルも入ります
    • トレイには入らないので、ドライブ内に配置
    • 写真はRPi  1  Model  A
    • 配線を簡略化できる
    • 見た目がすっきり
    • カーテンEject用に
    使用中

    View Slide

  52. RPi内蔵ドライブはゴールではない
    • 「Ejectコマンド工作は手段」なので、内蔵ドラ
    イブを作って終わりではなく、むしろスタート
    • 実験が済んで常設フェーズに移ったEjectコマ
    ンド工作をスマートに置くための手段など
    • 個人的にはイベント展示の準備・片付けが楽
    (代わりに説明が大変)

    View Slide

  53. まとめ

    View Slide

  54. まとめ
    • EjectZeroでスマートなEjectコマンド工作環境
    を実現しよう
    • Ejectコマンド工作で簡単にホームオートメー
    ションを始めてみよう(?)
    • Raspberry  Pi  Zeroは安価な入門機ではなく、
    物理的な小ささをうまく調理できる人向けのア
    イテムだとおもう

    View Slide

  55. 告知
    • コミックマーケット90にてEjectコマンド工作の
    同人誌「Ejectコマンド工作クックブック」を頒布
    • EjectZeroの作り方も掲載!
    • 1部500円
    • >>  3日目(8/14)西g-­‐17a  <<

    View Slide

  56. おわり

    View Slide