Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Raspberry  Pi  Zeroについて

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

そして組み込み

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

EjectZeroのつくりかた

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

完成

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

EjectZeroのソフトの実装

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

まとめ

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

おわり