Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ejectコマンド工作入門2016 / 20160514-osc2016gm

Ejectコマンド工作入門2016 / 20160514-osc2016gm

2016/5/14 OSC2016 Gunmaにて発表

Akira Ouchi

May 14, 2016
Tweet

More Decks by Akira Ouchi

Other Decks in How-to & DIY

Transcript

  1. おはよう
    ございます

    View full-size slide

  2. Ejectの
    premiamuな
    10分セミナー

    View full-size slide

  3. トイレタイム?

    View full-size slide

  4. 最後の
    Ejectセミナー
    →10月

    View full-size slide

  5. Ejectのこと
    もう忘れた

    View full-size slide

  6. 思い出そう
    Ejectのこと

    View full-size slide

  7. ウッ頭痛が

    View full-size slide

  8. ☝ ՞
    _人人人人人_
    > ( ) < ☞
     ̄Y^Y^YY^Y^Y ̄
    ՞

    View full-size slide

  9. Ejectコマンド工作入門
    2016
    Ejectコマンドユーザー会
    あっきぃ (  id:Akkiesoft  )
    2016/05/14    OSC2016  Gunma

    View full-size slide

  10. 自己紹介
    • あっきぃ です
    • 1988年(昭和63年)生まれ/28歳
    • 北海道根室市出身(日本最東端の駅の近く)
    • 渋谷で仮想化エンジニアしてます ?
    • @Akkiesoft
    – ツイート量多いのでフォロー非推奨
    – 気軽にブロックします

    View full-size slide

  11. 本日のイジェンダ(内容)
    Ejectコマンドユーザー会のEjectコマンド工作入
    門方法について15分で解説をします。
    必要なのはCD-­‐ROMドライブ、Raspberry   Pi、変
    換アダプターと、やりたいことに応じた"しかけ"
    だけ。
    Ejectコマンド工作でクールにIoTの波に乗れ!
    (てきとうなセミナー概要です)

    View full-size slide

  12. 本日のイジェンダ(内容)
    Ejectコマンドユーザー会のEjectコマンド工作入
    門方法について15分で解説をします。
    必要なのはCD-­‐ROMドライブ、Raspberry   Pi、変
    換アダプターと、やりたいことに応じた"しかけ"
    だけ。
    Ejectコマンド工作でクールにIoTの波に乗れ!
    (てきとうなセミナー概要です)

    View full-size slide

  13. 本日のイジェンダ(内容)
    • Ejectコマンドユーザー会のご紹介
    • Ejectコマンド工作とは
    • Ejectコマンド工作の始め方

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. って言えば

    View full-size slide

  17. 何でも
    許される
    風潮に

    View full-size slide

  18. Ejectコマンドユーザー会とは
    • CD-­‐ROMドライブのトレイ開閉と
    • Raspberry  Piを組み合わせた
    • ホームオートメーションを実現する
    • IoT系工作を作るユーザーの集いです

    View full-size slide

  19. 活動情報
    • 主にオープンソースカンファレンスで活動
    • 公式サイトは Eject  で検索
    • Google  Groupsへの入会お待ちしています
    – 流量ゼロの殺伐コミュニティです

    View full-size slide

  20. アクティビティ
    • 現在55名強(ML参加人数)
    • OSC等に展示参加してくれた方は
    これまで5人(私を含む)
    • アクティブユーザーが若い
    • 今、ナウなヤングが集まるアツいOSS?
    コミュニティはここ(確信)

    View full-size slide

  21. Ejectコマンド工作とは

    View full-size slide

  22. Ejectコマンドとは(manより)
    • eject  -­‐ リムーバブルメディアをイジェクトする
    eject を用いると、リムーバブルメディア (CD-­ROM、フロッピーディスク、テープ、
    JAZ/ZIP  ディスクなど)  をソフトウェア制御によってイジェクトできる。 また eject  は、
    連装 CD-­ROM  チェンジャを制御したり、 デバイスの自動イジェクト機能を制御したり、
    CD-­ROM  ドライブのディスクトレイを 閉じることもできる
    (製品によってはできないこともある)。
    引き数  に対応するデバイスがイジェクトされる。
    name  はデバイスファイルまたはマウントポイントであり、フルパスでも先頭の
    "/dev",  "/media",  "/mnt"  を省略した形でもどちらでもよい。
    name  が指定されない場合、デフォルトでは "cdrom"  が対象となる。
    対象デバイスが CD-­ROM、SCSI  デバイス、リムーバブルフロッピー、
    テープであるかによって、4   つの異なるイジェクト方法がある。 デフォルトでは、
    eject  は 4  つの方法全てを成功するまで順に試行する。
    対象デバイスがマウントされている場合、イジェクト前にアンマウントされる。

    View full-size slide

  23. Ejectコマンドとは
    • https://linuxjm.osdn.jp/html/eject/man1/
    eject.1.html
    • 要約
    – ソフトウェア制御によってイジェクトできる
    – CD-­‐ROMドライブのトレイを開閉できる
    – マウントされていたらアンマウントする
    • 現代においてはUSBメモリ等フラッシュメモリに有用
    • umountでいいんだけど。

    View full-size slide

  24. リモートやタイマーでEjectする
    • SSHからリモートで実行可能
    – データセンターではサーバの特定に利用される
    – いたずらにも利用される
    • Ejectコマンド工作的には、PHPやRubyなどの
    言語を利用してWeb画面からEjectする
    • Twitter連携
    • cronやatdを利用して決まった時間にEjectコマ
    ンド工作を実行させる

    View full-size slide

  25. 「トレイ開閉を利用する」とは
    • CD-­‐ROMドライブはEjectコマンドを実行すると
    トレイの開閉運動を得ることができる
    – Ejectする=トレイでものを押しだす・突くなど
    • こらちを主に利用
    – Loadする=トレイでものを引く
    • 5インチベイタイプのドライブの場合、開閉運
    動を繰り返し得ることができる
    29

    View full-size slide

  26. Ejectコマンド工作とは
    •Ejectのソフトウェア制御
    によるトレイ開閉を利用
    して、トレイの開閉運動
    と連動した工作物をつく
    ること

    View full-size slide

  27. Ejectコマンド工作の例
    • ハムスターにエサをあげる
    • エアコンの電源を操作する
    • AC電源を操作する
    • 除夜の鐘をつく

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  38. Ejectコマンド工作
    入門

    View full-size slide

  39. 工作に必要なもの
    • Eject機材
    – CD-­‐ROMドライブ(¥100〜¥300)
    – IDE-­‐USB変換ケーブル(¥1,000)
    – 余っている適当なマシンなど
    • Raspberry  Pi(¥5,000くらい)
    • 工作の材料
    – ダンボール片・紙の小箱・ヒモ
    – エアコンのリモコン・スイッチ
    – はさみ・カッター・のりなど文具

    View full-size slide

  40. CD-­‐ROMドライブの入手
    • 基本的に5インチベイタイプの大きい物を使用
    • 薄型はトレイを閉められないので向かない
    • ドライブ本来の機能(読み書きできるかどう
    か)は重要視されないのでジャンクでも良い
    • ハードオフや秋葉原のジャンク屋などで入手
    • 分解してレーザーユニットを外すと軽量化可

    View full-size slide

  41. IDE-­‐USB変換ケーブル
    • 主に内蔵HDDをUSB接続するために使用
    – 外付けディスクとして
    – データレスキュー用
    • 秋葉原・家電量販店・Amazon等で入手可能
    – ヤフオクにも安いのがある
    – 外部電源が付いているタイプを選ぶ
    – ついていないものは2.5インチHDD向け

    View full-size slide

  42. マシンの用意
    • Linuxが入っている適当なマシンを用意する
    • 軽くにお試しするときにはなんでも良い
    • 常時稼働させたくなった時は、省電力なマシ
    ンを選択すると良い
    – ノートPC(昔のネットブックとか)
    – Raspberry  Piなどシングルボードコンピュータ

    View full-size slide

  43. 工作の材料
    • やりたいものの内容に応じて変化する
    • ハムスターの餌やり
    – ダンボール片
    – セロハンテープ等
    • エアコンの電源操作
    – エアコンのリモコン
    – ケーブル
    – アーケードスイッチ等ドライブで押しやすいボタン

    View full-size slide

  44. 工作の材料(続き)
    • カーテンの開閉
    – ヒモ
    – 重り
    – 滑車
    • 除夜の鐘
    – 鐘型の風鈴
    – カタログスタンド

    View full-size slide

  45. Ejectする手段を確保する
    方法 外出先から実行できるか
    SSHでログインして
    Eject
    外に公開するか、VPNがあればで
    きる
    Web画面からEject 外に公開するか、VPNがあればで
    きる。もしくは、VPSなどから間接
    的に実行する方法もある
    TwitterからEject できる

    View full-size slide

  46. いちおうオープンソース
    • 「WebからEject」も「TwitterからEject」も、
    やり方はソースを公開しています
    • http://github.com/Akkiesoft/Eject-­‐Command-­‐
    Users-­‐Group/
    • WebはPHP、TwitterはPythonで実装
    • どうぞご利用ください

    View full-size slide

  47. そうしてできあがり
    • 何を作るかはあなた次第
    • あったら便利そうなものを思いついたら自分
    で作ってみよう(私に言ってもダメ)

    View full-size slide

  48. まとめ
    • CD-­‐ROMドライブでホームオートメーションは
    できる
    • 肩肘張らず気軽にやってみよう
    • 意識の低いIoT
    – 意識が他界IoT

    View full-size slide