EJectコマンド工作、その魅力に迫る。 / osc15do-eject

EJectコマンド工作、その魅力に迫る。 / osc15do-eject

OSC2015 Hokkaidoにて発表。

74476e142a767a018d68c5e72e34ee2f?s=128

Akira Ouchi

June 13, 2015
Tweet

Transcript

  1. Ejectの   premiamuな   45分セミナー

  2. 夕方にLTは   ない

  3. 意識の高い   Ejectファン

  4. (?)

  5. 事前登録実績   (OSC2014  Tokyo/Fall)   31名

  6. 今回事前登録   16名

  7. みんな

  8. もっと有意義 なセミナーに   参加しよう!

  9. Ubuntu  JUJU とか   小型衛星   とか

  10. Ejectコマンド工作、   その魅力に迫る。    /  OSC  Hokkaido  2015   Ejectコマンドユーザー会

      あっきぃ  (  id:AkkiesoI  )    2015/06/13    OSC2015  Hokkaido
  11. 自己紹介

  12. 自己紹介

  13. 自己紹介

  14. 自己紹介 •  あっきぃ です   •  1988年(昭和63年)生まれ/27歳   •  北海道根室市出身(日本最東端の駅の近く)  

    •  OSC北海道皆勤賞(2005年から11回目)   •  渋谷で仮想化エンジニアしてます   •  @AkkiesoI   – ツイート量多いのでフォロー非推奨  
  15. 本日のイジェンダ(内容) 今ではめったに使われないPCパーツである5イ ンチベイタイプのCD-­‐ROMドライブを使って生活 に役立てるEjectコマンド工作。その素朴な工作 はたくさんの人々を苦笑させ、しかし記憶に残 るインパクトを与えています。そしていまや全世 界にファンが存在するEjectコマンド工作には、 一体どのような魅力があるのでしょうか。本セミ ナーでは、Ejectコマンド工作の真の魅力につい てご紹介します

  16. 本日のイジェンダ(内容) 今ではめったに使われないPCパーツである5イ ンチベイタイプのCD-­‐ROMドライブを使って生活 に役立てるEjectコマンド工作。その素朴な工作 はたくさんの人々を苦笑させ、しかし記憶に残 るインパクトを与えています。そしていまや全世 界にファンが存在するEjectコマンド工作には、 一体どのような魅力があるのでしょうか。本セミ ナーでは、Ejectコマンド工作の真の魅力につい てご紹介します

  17. 本日のイジェンダ(内容) •  最近の活動内容とか、北海道でまだ発表して いないLTとかをここでまとめてやります   •  LTではすっ飛ばすページも丁寧に解説します   – じゃないと時間が余るっしょ!₍₍  (ง

     ՞ਊ  ՞)ว  ⁾⁾   •  Eject工作入門   •  EjectとIoT   •  最近のイベント参加レポート •  [LT]ドライブ軽量化作戦
  18. Ejectコマンドユーザー会  とは

  19. Ejectコマンドユーザー会とは •  CD-­‐ROMドライブのトレイ開閉を利用して   •  トレイに色んなことをさせる工作を作り   •  リモートやタイマー等で実行することで  

    •  QoLの向上を試みるユーザーの集いです   •  主にオープンソースカンファレンスで活動   •  公式サイトは  Eject  で検索   •  Google  Groupsへの入会お待ちしています  
  20. 「トレイ開閉を利用する」とは •  CD-­‐ROMドライブはEjectコマンドを実行すると トレイの開閉運動を得ることができる   – Ejectする=トレイで押す   – Loadする=トレイで引く   • 

    基本的にはトレイで押すときの動きを使うこと が多い   – ボタンを押す   – おもりを突き落とす   20
  21. トレイに色んなことをさせる工作 •  ハムスターにエサをあげる   •  エアコンの電源を操作する   •  AC電源を操作する  

    •  除夜の鐘をつく   – 去年は実家でやりました  
  22. ハムスターにエサをあげる   •  初めて作った作品   •  外出先からハムスターの餌をあげられる   •  ドライブを積めば複数日の給餌に対応

      •  2代目ハムスターが   春に亡くなったので   今は使う用事が   なくなってしまった  
  23. エアコンの電源を操作する   •  2010年ごろ開発   •  トレイでボタンを直接押す→リモコンから電源 回路をハックして外付けボタンをトレイで押す →Raspberry  Piで、

      予めハックしたリモコン   を操作するように進化  
  24. AC電源リモート操作 •  AC電源をEjectでON/OFFする   •  ホームセンターで買える   スイッチと電線で作れる   • 

    プログラムタイマーとしても   使える   •  節電とかできそう  
  25. 除夜の鐘 •  通称「除夜のEject」   •  毎年12月31日にUSTREAMで中継   •  だれでもEjectで鐘をつくことができる  

    •  Eject結果はUSTで   確認   •  昨年は実家でやった   ものの、失敗した  
  26. Ejectカーテン •  朝になったらカーテンを開く装置   •  カーテンにヒモを通して、おもりを   落とすとカーテンが開く   • 

    おもりを落とすのがCD-­‐ROM   ドライブ   •  このためだけに   RasPiを1台消費  
  27. リモートやタイマーでEjectする •  PHPやRubyなどの言語を利用してWeb画面か らEjectできるようにして、Ejectコマンド工作を 実行させる   – エアコンの電源ON/OFF   •  cronやatdを利用して決まった時間にEjectコマ

    ンド工作を実行   – 朝カーテンを開ける  
  28. QoL向上を目指す •  ハムスターに餌をやる   – 短期の出張時にどこかに預けなくても良くなる   •  エアコンの電源を入れられるようにする   – 帰宅直前に電源を入れて快適な室温を作れる

      – エアコンの電源切り忘れを阻止できる   •  カーテンを開ける   – 朝の目覚めを快適なものにする
  29. ユーザー会のアクティビティ •  現在55名強(ML参加人数)   •  OSC等に展示参加してくれた方は   これまで5人(私を含む)   • 

    先月のOSC2015-­‐Nagoyaではブースの   半分以上が私以外のユーザーによる展示!   •  アクティブユーザーは若い   •  今、ナウなヤングが集まるアツいOSS?コミュ ニティはここ(確信)  
  30. [LT]   ドライブ軽量化大作戦   (Rev.2) これを発表したイベント(Rev.1)   2014/7/12  カーネルVM探検隊  

           @北陸(予告編)   2014/8/2  OSC2014  Kansai@Kyoto   2014/10/19  OSC2014  Tokyo/Fall  
  31. OSC2014  名古屋にて •  東芝の無線LAN内蔵SDカード「FlashAir」が GPIO制御っぽいものに対応したと聞く   •  CD-­‐ROMドライブに内蔵してドライブ単体で Ejectしてる風に見せられたら楽しいね、という 話題になる

      •  (   ՞  ‸  ՞).oO(それはたのしそうだ)   •  とりあえずポチった
  32. ドライブをバラそう •  帰宅した翌日朝起きて早々にドライブを分解   •  しょっぱなから手を切る   •  気をつけよう

  33. さっそく趣旨からズレる •  スペースはFlashAirなら普通に押し込める   だろうって感じだった(完)   •  ドライブ内はいくつかの基板とレンズとがリボ ンケーブルで接続されていた  

    – リボンケーブルを外したらどうなるだろうか?   – レンズの部分の稼働を止められたら省電力化   できるか?   •  調査からエクストリーム分解に変わった
  34. 結果 •  トレイ開閉に関係ないリボンケーブルを外し ても大丈夫っぽかった   •  レンズユニット(170g+ちょっと)が取り外せた

  35. ドライブが軽くなった •  634g  –  184g  ==    450gになった   • 

    シャーシがないと152gになる
  36. スペース確保できた •  FlashAirどころかRaspberry  Piも入りそう   •  電源もドライブから取れそうなのでGOOD   – 12V  

    – 5V  
  37. Raspberry  Piを内蔵してみよう •  FlashAirは制御の難易度が高そうなのでとり あえずRPiを埋めることにした   •  ちょうどModel  Bが1台空いてたからこれを埋 めよう

      •  埋まった   (やったぜ)
  38. 材料 •  SATA接続DVD-­‐ROMドライブ   •  2.5インチSATA  HDD-­‐USB変換   •  Raspberry

     Pi  Model  B   •  SATAケーブル   •  ジャンパケーブル   •  USB無線LANドングル   •  SD-­‐MicroSD変換アダプタ   •  養生テープ
  39. ドライブとRPiの接続部をつくる •  SATAケーブルを適当な長さに切り出す   •  ドライブのSATAコネクタ(データ側)破壊して基 板にケーブルをハンダ付け   •  2.5インチSATA

     HDD-­‐USB変換のコネクタを破 壊してSATAケーブルをはんだづけ   •  USB-­‐MiniUSBケーブルでRPiとドライブを接続  
  40. こんなかんじ  だいぶ強引だった

  41. RPiを埋め込む •  横向きは難しく、縦でもぎりぎりの配置だった   – 本体よりも、本体から生えるケーブルが諸々はみ だす   •  ドライブの電源から5V電源を引き出して、RPi のGPIO

     5Vに接続   – GPIO  5Vは入力もできる   •  USB無線LAN、ドライブをUSB接続   •  MicroSDカードを挿入
  42. 固定 •  養生テープや針金を使って固定   •  RPiはSATAケーブルに足をつけて(ホットボンド で固定)ネジで固定   •  最終的には安定

      しなかった   •  B+/A+を使った方が   良さそう?
  43. 小窓をつけてみた •  ドライブのてっぺんは   実は開く   •  トレイのディスクを押さえ   る部品が入っている

      •  ここを鉄板からプラ板に   変えて中を見られるよう   にした  
  44. ソフトウェアの実装 •  デモ用途なので、Twiierでふぁぼられたら EjectするFavEjectを使用   – hips://github.com/AkkiesoI/Eject-­‐Command-­‐ Users-­‐Group/blob/master/faveject.py   •  OSはもちろんEjebian

      – RaspbianをEject仕様にカスタマイズしたもの   – 不要パッケージ削除+ejectインストール+SSH公開 鍵登録済   – NOOBSイメージ化されていていつでもデプロイ可
  45. できあがっ たら   自慢したい

  46. スタバドヤリングした •  おかのさんが自宅近所に来ていたのでスタバ で迎撃するついでにドライブを持っていった   •  学生が勉強したり、大人がノートPCを広げて いる中Ejectドヤリングに初成功   _人人人人人人人_

    > まわりの邪魔 <  ̄^Y^Y^Y^Y^Y^Y^ ̄
  47. モバイルできるようにしたい •  製作中はコンセントから電源をとっていた   •  乾電池8本+モバイルバッテリーはあるけど、 一工夫したい   •  じとめすきーさんから

      5V→12V変換ボードを   教えてもらったので   使ってみた
  48. 工作 •  ペリフェラル4ピンコネ クタを自作   •  5VはそのままUSBケー ブルを接続   • 

    12Vは、変換ボードを経 由してUSBケーブルを 接続
  49. 接続してみよう •  バッテリーによってはうま く稼働しない   – ループ検知している?   •  Panasonicのバッテリーが いけた

      •  コンパクトになり、軽く、 見た目にもすっきりした  
  50. Ejectヘルメット復活? •  久々にかぶってみたけど頭痛がしそうな気が して怖くてやめた   •  復活やっぱなし

  51. まとめ •  ドライブはレンズユニットを取り外すと軽くなる   – 軽くなるので工作によってはドライブの力が弱ま る   •  空いたところに物を埋め込んで何か作れる  

    •  モバイルEject環境は個人的には便利(人に 見せやすい)な反面、説明は複雑   •  ドライブがアイデンティティを失う  
  52. 後日談:  FlashAirも内蔵した •  Flash  Airではフォトカプラを使って物理ボタン の回路をハック  

  53. FlashAirの実装 •  RPi内蔵ドライブを流用   •  先駆者の情報を参考に、既成品のSDモ ジュールでサクッと設置  

  54. 操作画面の作成 •  Web画面もサンプルの   HTMLをベース作りこみ   •  むだにWebフォントを使用   • 

    (  ՞ਊ  ՞)の文字は機種依存   なのでSVGデータにして   ボタン風に配置   •  麦子ちゃんでシャレオッティに   コッディネーヨっ  
  55. できあがり!

  56. Ejectコマンド工作   入門

  57. Ejectコマンド工作とは? •  CD-­‐ROMドライブのトレイ開閉の動力を使って 物理的な"しかけ"を動かすもの   •  Linux環境(Ejectコマンド)と組み合わせて使用 することでリモート操作を実現  

  58. CD-­‐ROMドライブを使う意義 •  Ejectコマンド工作でやることの大半は電子工 作などで解決する   •  電子工作を勉強したら楽しいはず   •  しかし、電子工作に抵抗がある人はいる

      •  電子工作ができない人は諦めなければいけ ないか?→NO   •  CD-­‐ROMドライブを使って工作したら少しカン タンにできないだろうか?
  59. Ejectコマンド工作のメリット •  カンタン(電子工作ができなくても大丈夫)   •  手軽(物品調達は難しくなく、比較的安価)   •  わりと安全(ハンダ付けでやけどとかはそん なにない)

      •  Linuxの知識が身につく(かも知れない)   – atd,  cron,  udevなど、ふだんあまりさわる機会がな い部分も色々触れる
  60. Ejectコマンド工作のデメリット •  工作の実行成功率にムラがある   – 工作による   •  場所を取る   • 

    サーバー構築の知識はある程度必要   •  Ejectコマンド工作は万能でない   Ejectコマンド工作は万能でない   – 可能性は無限大とは言いつつ、できることは実は あまりない   – 出来る範囲のことをやろう
  61. Ejectである必要はない •  自分で実現可能な方法で自由に実装しよう   •  電子工作ができる人はそれでやれば良い   – 私のエアコンリモートはRasPiに移行した   • 

    市販品が良いならそれを使えば良い   – 普通の人が注目するソリューションなので、   ブログに書くとブクマとかアクセス数とか稼げる   •  Ejectで良いと思ったらそうすれば良い   – すぐできるし工作する時間は楽しいしネタになる
  62. Ejectコマンド工作は手段 •  当時飼っていたハムスターの世話をOSCで遠 征していてもできるようにしたいという課題解 決の必要に迫られて作った   – 数週間くらいしかなくて悩んでいた   – OSCなどのイベントのネタにしたかった、というの も…あるよ(

     ;`ω´)   •  単にEjectをしたくて作ったわけではない   – Ejectだけで喜んでいるのはちょっとやばい  
  63. まとめ •  Ejectコマンド工作はトレイ開閉の動力を使っ た工作   •  電子工作しなくてもCD-­‐ROMドライブで簡単に 実現できる(かもしれない)   • 

    Linuxの勉強にもなる   •  Ejectは手段であり、目的ではない   – 無理にEjectですることを考えてはいけない
  64. 工作に必要なもの •  Eject機材   – CD-­‐ROMドライブ(¥100〜¥300)   – IDE-­‐USB変換ケーブル(¥1,000)   – 余っている適当なマシンなど  

    •  Raspberry  Pi(¥4,000くらい)   •  工作の材料   – ダンボール片・紙の小箱・ヒモ   – エアコンのリモコン・スイッチ   – はさみ・カッター・のりなど文具
  65. CD-­‐ROMドライブの入手 •  基本的に5インチベイタイプの大きい物を使用   •  薄型のものはトレイを閉める動作ができない のであまり向かない   •  トレイが開閉できれば良く、ドライブ本来の

    「読み込みできるかどうか」は重要視されない ので、ジャンクでも良い   •  ハードオフや秋葉原のジャンク屋などで入手  
  66. IDE-­‐USB変換ケーブル •  本来はむき出しの内蔵HDDをUSB接続するた めに使用される   – 外付けディスクとして   – データレスキュー用に   • 

    秋葉原・家電量販店・Amazon等で入手可能   – ヤフオクにも安いのがあるっぽい   •  外部電源が付いているタイプを選ぶ   – ついていないものは2.5インチHDD向け
  67. マシンの用意 •  Linuxが入っている適当なマシンを用意する   •  軽くにお試しするときにはなんでも良い   •  常時稼働させたくなった時は、省電力なマシ ンを選択すると良い

      – ノートPC(昔のネットブックとか)、Raspberry  Piなど の小型PCボード
  68. 工作の材料 •  やりたいものの内容に応じて変化する   •  ハムスターの餌やり   – ダンボール片   – セロハンテープ等

      •  エアコンの電源操作   – エアコンのリモコン   – ケーブル   – アーケードスイッチ等ドライブで押しやすいボタン
  69. Ejectする手段を確保する 方法 外出先から実行できるか SSHでログインして Eject 外に公開するか、VPNがあればで きる Web画面からEject 外に公開するか、VPNがあればで きる。もしくは、VPSなどから間接

    的に実行する方法もある TwiierからEject できる
  70. いちおうオープンソース •  WebからEjectも、TwiierからEjectも、やり方 はソースを公開しています   •  hip://github.com/AkkiesoI/Eject-­‐Command-­‐ Users-­‐Group/   • 

    WebはPHP、TwiierはPythonで実装   •  どうぞご利用ください  
  71. そうしてできあがり •  何を作るかはあなた次第   •  あったら便利そうなものを思いついたら自分 で作ってみよう(私に言ってもダメ)

  72. こういうのがたまにくる •  つらい♡   私「久しぶりに鉄道模型楽しい」
 ??「Ejectですか?!」

  73. None
  74. EjectとIoT

  75. IoTブーム到来 •  IoT(Internet  of  Things/モノのインターネット)の ブームが到来、と言うかバズってる   •  スマホとか家電とかセンサーとかタグとかをイ ンターネットにつないでやりとりしようみたいな

    やつ、ということらしい   •  家電がどうこうみたいなものが多い  
  76. 例えば…… •  Casi(  hip://casi.com/  )   – ネコの餌やり・水やり機   – 体重計がついていて、ネコの体重を記録できて、 スマホから見られる

      – カメラがついていて、ネコの顔認識が   できるので複数ネコの認識や、どのネコ   がどのくらい飲食しているか記録できる   •  hip://www.itmedia.co.jp/mobile   /artcles/1506/03/news112.html  
  77. 例えば…… •  Ambi  Climate(  hip://www.ambiclimate.com/  )   – hip://thebridge.jp/2014/10/ambi-­‐climate-­‐starts-­‐ kickstarter-­‐campaign  

    – エアコンをリモート制御できるIoTガジェット   – スマホで温度とかを見られるようになる   – KickStarterで$25,000を目標にスタートしたところ、 $114,892集まった模様  
  78. 例えば… •  スマートコンセント   – hips://newspicks.com/news/664829/body   – これも、スマホからコンセントのON/OFFできるよう にするものを目指しているらしい   – 節電に役立つね

  79. もしかして… •  餌やり、エアコン、コンセント……   •  Ejectでやっていたものでは?   •  もちろん、製品として出てきているものを利用 したほうが、よりコンパクトで、安全に、確実に

    利用できる   •  Ejectでできないことももちろん多い   – センサー類とか  
  80. エアコンリモートの場合 •  地味に進化を続けている   – リモコンの電源ボタンを直接Ejectで押す   – 改造したリモコンとアーケードボタンでEject…  

  81. 現在 •  Raspberry  Piとフォトカプラを使用して   改造リモコンのボタンを押す   – あいかわらず   電源ボタンしか

      押せないし、   ステータスが   見られるわけ   でもない  
  82. 制御ソフトウェアのリニューアル •  社内でネコを飼い始めた人から頼まれて制作   •  GitHubで公開しているサンプルから大幅にリ ニューアル   •  Webサーバーを持っていない人でも外出先か

    ら操作できるような工夫→Twiierを使用   •  室温は60分間保持してグラフで表示   •  電源ボタンのところは変わらないw
  83. スクリーンショット

  84. Twiier連携

  85. 『エアぴっぴ』 •  Raspberry  Pi  Model  B   (私の中古)を使用   • 

    リモコンはAmazonの激安   学習リモコン(370円)   •  温度センサーはDS18B20   (300円)   •  RasPiを新規で買っても 4,000円くらいで作れる  
  86. 公開中 •  改良したい部分もまだあるけど公開中   •  hips://github.com/AkkiesoI/airpippi   •  Ansible  playbook形式で配布。ダウンロードし

    たらさくっとインストールできる(完全にできる とは言っていない)   •  無線LAN対応が   急務! !?
  87. ああ^〜〜〜♡♡♡

  88. wwwww

  89. EjectでIoTは「できる」 •  やり方がちょっとかわってるだけで、やってた 事自体は時代の先を行っていたっぽい   •  Ejectを卒業したプロダクトはそのままIoTの並 に乗れそうな感じがした   • 

    IoTのプロトタイプ制作としてのEjectコマンド工 作と言う可能性があるのでは?   •  乗るしかない、このビッグウェーブに。  
  90. IoTとして売り込んでみた •  シェルスクリプトマガジン に寄稿させてもらえるこ とになったので、Ejectを IoTと言い張って記事を 書いてみた   – Vol.25(2015/05)  

    •  今のところ、どの方面か らも特に怒られていない   •  反響のほども不明
  91. 最近のイベント       参加レポート

  92. 最近参加したイベント •  各地のOSC   •  Kernel/VM探検隊@金沢(7/12)   •  Ogaki  Mini

     Maker  Faire  2014(2014/8/23-­‐24)   •  出張このべん:猫カフェ×Ejectユーザー会、奇 跡のコラボハンズオン!ConoHa  by   GMO(2014/9/27)  
  93. 各地のOSC •  展示中心で、EjectのLTは量を減らしている   – 少しずつ軸足をEjectからRaspberry  Piに移したい   – 新しい人たちにLTの枠を譲り、貴重なセミナー枠 を獲る→人の少ない朝イチに割り当てられる  

    •  名古屋はEject界のホープであるあひるさんや、 2box2boさんなどアクティブユーザーがいるの で必ず参加、展示もわりとお任せ   •  私がいなくても出展みたいなことができ始め ている。良い。  
  94. OSC2015  Nagoya(5/23) •  ピタゴラ装置もどき(私)、Ejectカー(かまぼこ さん/れったーさん)、Eject枕(あひるさん)

  95. Ogaki  Mini  Maker  Faire  2014 •  Ejectコマンドユーザー会初のMaker  Faire参加   • 

    初の  "私が参加していない"  Eject出展   •  中京圏のユーザー(2box2boさん、あひるさん、 じょりろじゃさん+おおたさん@東京)による出 展  
  96. 出張このべん •  ConoHa(by  GMO)さんとコラボレーション企画   •  猫カフェでEjectコマンド工作ハンズオン   •  内容

      – ConoHaのVPSとRaspberry  Piを組み合わせてEject コマンド工作を作る   – 猫の餌やり装置を作る  
  97. VPSとEjectの連携の仕組み •  VPSにWeb  APIを用意   •  ユーザーがVPSのWebにアクセスしてボタンを 押すとAPIがEject可の状態を返すようになる   • 

    遠隔地にいるマシンが定期的にAPIにアクセ スして、Eject可の状態だったらEjectを実行   ConoHa   VPS (1)Web画面から   Eject実行 (2)Ejectフラグを取得   (ポーリング) (3)Eject 97
  98. 猫の給餌装置 •  箱の側面の下の方を下・左・右の3方向切る   •  下の部分にレバーを付ける   •  切り込みの上から1/3くらい  

    の部分に輪ゴムを付ける   •  箱のなかに滑り台状に板を   敷いて餌が落ちやすくなる   ようにする 98
  99. 参考元 •  海外の事例を参考にした(2006年)   – hip://www.leeholmes.com/blog/2006/08/   22/diy-­‐cat-­‐feeder-­‐and-­‐water-­‐dispenser/   •  レバーを押している間餌が出てくる

    ←CD-ROMドライブ 給餌装置→ 99
  100. イベントの風景

  101. 総まとめ

  102. 総まとめ •  Ejectはあいかわらずまじめにくだらないことを している   •  でも、Ejectは手段であり、目的ではない   •  アクティブなユーザーが増えてきた

      •  IoT入門としてEjectをゴリ押ししてみたい   •  Ejectやらないか
  103. おわり♡