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

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

2016/5/14 OSC2016 Gunmaにて発表

74476e142a767a018d68c5e72e34ee2f?s=128

Akira Ouchi

May 14, 2016
Tweet

Transcript

  1. おはよう ございます

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

  3. トイレタイム?

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

  5. Ejectのこと もう忘れた

  6. 思い出そう Ejectのこと

  7. ウッ頭痛が

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

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

     Gunma
  10. 自己紹介 • あっきぃ です • 1988年(昭和63年)生まれ/28歳 • 北海道根室市出身(日本最東端の駅の近く) • 渋谷で仮想化エンジニアしてます

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

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

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

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

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

  17. IoT

  18. って言えば

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

  20. No

  21. Nokkaru

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

  23. 活動情報 • 主にオープンソースカンファレンスで活動 • 公式サイトは Eject  で検索 • Google  Groupsへの入会お待ちしています

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

    コミュニティはここ(確信)
  25. Ejectコマンド工作とは

  26. Ejectコマンドとは(manより) • eject  -­‐ リムーバブルメディアをイジェクトする eject を用いると、リムーバブルメディア (CD-­ROM、フロッピーディスク、テープ、 JAZ/ZIP  ディスクなど)

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

    – マウントされていたらアンマウントする • 現代においてはUSBメモリ等フラッシュメモリに有用 • umountでいいんだけど。
  28. リモートやタイマーでEjectする • SSHからリモートで実行可能 – データセンターではサーバの特定に利用される – いたずらにも利用される • Ejectコマンド工作的には、PHPやRubyなどの 言語を利用してWeb画面からEjectする

    • Twitter連携 • cronやatdを利用して決まった時間にEjectコマ ンド工作を実行させる
  29. 「トレイ開閉を利用する」とは • CD-­‐ROMドライブはEjectコマンドを実行すると トレイの開閉運動を得ることができる – Ejectする=トレイでものを押しだす・突くなど • こらちを主に利用 – Loadする=トレイでものを引く

    • 5インチベイタイプのドライブの場合、開閉運 動を繰り返し得ることができる 29
  30. Ejectコマンド工作とは •Ejectのソフトウェア制御 によるトレイ開閉を利用 して、トレイの開閉運動 と連動した工作物をつく ること

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

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

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

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

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

    • 本日デモ予定
  36. Ejectカーテン • 朝になったらカーテンを開く装置 • カーテンにヒモを通して、おもりを 落とすとカーテンが開く • おもりを落とすのがCD-­‐ROM ドライブ •

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

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

    atd,  cron,  udevなど、ふだんあまりさわる機会がな い部分も色々触れる
  39. Ejectコマンド工作のデメリット • 工作の実行成功率にムラがある – 正直、工作による • 場所を取る • サーバー構築の知識はある程度必要 •

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

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

     ;`ω´) • 単にEjectをしたくて作ったわけではない – Ejectだけで喜んでいるのはちょっとやばい
  42. Ejectコマンド工作 入門

  43. 工作に必要なもの • Eject機材 – CD-­‐ROMドライブ(¥100〜¥300) – IDE-­‐USB変換ケーブル(¥1,000) – 余っている適当なマシンなど •

    Raspberry  Pi(¥5,000くらい) • 工作の材料 – ダンボール片・紙の小箱・ヒモ – エアコンのリモコン・スイッチ – はさみ・カッター・のりなど文具
  44. CD-­‐ROMドライブの入手 • 基本的に5インチベイタイプの大きい物を使用 • 薄型はトレイを閉められないので向かない • ドライブ本来の機能(読み書きできるかどう か)は重要視されないのでジャンクでも良い • ハードオフや秋葉原のジャンク屋などで入手

    • 分解してレーザーユニットを外すと軽量化可 能
  45. IDE-­‐USB変換ケーブル • 主に内蔵HDDをUSB接続するために使用 – 外付けディスクとして – データレスキュー用 • 秋葉原・家電量販店・Amazon等で入手可能 –

    ヤフオクにも安いのがある – 外部電源が付いているタイプを選ぶ – ついていないものは2.5インチHDD向け
  46. マシンの用意 • Linuxが入っている適当なマシンを用意する • 軽くにお試しするときにはなんでも良い • 常時稼働させたくなった時は、省電力なマシ ンを選択すると良い – ノートPC(昔のネットブックとか)

    – Raspberry  Piなどシングルボードコンピュータ
  47. 工作の材料 • やりたいものの内容に応じて変化する • ハムスターの餌やり – ダンボール片 – セロハンテープ等 •

    エアコンの電源操作 – エアコンのリモコン – ケーブル – アーケードスイッチ等ドライブで押しやすいボタン
  48. 工作の材料(続き) • カーテンの開閉 – ヒモ – 重り – 滑車 •

    除夜の鐘 – 鐘型の風鈴 – カタログスタンド
  49. Ejectする手段を確保する 方法 外出先から実行できるか SSHでログインして Eject 外に公開するか、VPNがあればで きる Web画面からEject 外に公開するか、VPNがあればで きる。もしくは、VPSなどから間接

    的に実行する方法もある TwitterからEject できる
  50. いちおうオープンソース • 「WebからEject」も「TwitterからEject」も、 やり方はソースを公開しています • http://github.com/Akkiesoft/Eject-­‐Command-­‐ Users-­‐Group/ • WebはPHP、TwitterはPythonで実装 •

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

  52. まとめ

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

  54. おわり