2016/5/14 OSC2016 Gunmaにて発表
おはようございます
View Slide
Ejectのpremiamuな10分セミナー
トイレタイム?
最後のEjectセミナー→10月
Ejectのこともう忘れた
思い出そうEjectのこと
ウッ頭痛が
☝ ՞_人人人人人_> ( ) < ☞ ̄Y^Y^YY^Y^Y ̄՞ਊ
Ejectコマンド工作入門2016Ejectコマンドユーザー会あっきぃ ( id:Akkiesoft )2016/05/14 OSC2016 Gunma
自己紹介• あっきぃ です• 1988年(昭和63年)生まれ/28歳• 北海道根室市出身(日本最東端の駅の近く)• 渋谷で仮想化エンジニアしてます ?• @Akkiesoft– ツイート量多いのでフォロー非推奨– 気軽にブロックします
本日のイジェンダ(内容)Ejectコマンドユーザー会のEjectコマンド工作入門方法について15分で解説をします。必要なのはCD-‐ROMドライブ、Raspberry Pi、変換アダプターと、やりたいことに応じた"しかけ"だけ。Ejectコマンド工作でクールにIoTの波に乗れ!(てきとうなセミナー概要です)
本日のイジェンダ(内容)• Ejectコマンドユーザー会のご紹介• Ejectコマンド工作とは• Ejectコマンド工作の始め方
Ejectコマンドユーザー会のご紹介
Ejectコマンドユーザー会とは• CD-‐ROMドライブのトレイ開閉を利用して• トレイに色んなことをさせる工作を作り• リモートやタイマー等で実行することで• QoLの向上を試みるユーザーの集いです
IoT
って言えば
何でも許される風潮に
No
Nokkaru
Ejectコマンドユーザー会とは• CD-‐ROMドライブのトレイ開閉と• Raspberry Piを組み合わせた• ホームオートメーションを実現する• IoT系工作を作るユーザーの集いです
活動情報• 主にオープンソースカンファレンスで活動• 公式サイトは Eject で検索• Google Groupsへの入会お待ちしています– 流量ゼロの殺伐コミュニティです
アクティビティ• 現在55名強(ML参加人数)• OSC等に展示参加してくれた方はこれまで5人(私を含む)• アクティブユーザーが若い• 今、ナウなヤングが集まるアツいOSS?コミュニティはここ(確信)
Ejectコマンド工作とは
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 つの方法全てを成功するまで順に試行する。対象デバイスがマウントされている場合、イジェクト前にアンマウントされる。
Ejectコマンドとは• https://linuxjm.osdn.jp/html/eject/man1/eject.1.html• 要約– ソフトウェア制御によってイジェクトできる– CD-‐ROMドライブのトレイを開閉できる– マウントされていたらアンマウントする• 現代においてはUSBメモリ等フラッシュメモリに有用• umountでいいんだけど。
リモートやタイマーでEjectする• SSHからリモートで実行可能– データセンターではサーバの特定に利用される– いたずらにも利用される• Ejectコマンド工作的には、PHPやRubyなどの言語を利用してWeb画面からEjectする• Twitter連携• cronやatdを利用して決まった時間にEjectコマンド工作を実行させる
「トレイ開閉を利用する」とは• CD-‐ROMドライブはEjectコマンドを実行するとトレイの開閉運動を得ることができる– Ejectする=トレイでものを押しだす・突くなど• こらちを主に利用– Loadする=トレイでものを引く• 5インチベイタイプのドライブの場合、開閉運動を繰り返し得ることができる29
Ejectコマンド工作とは•Ejectのソフトウェア制御によるトレイ開閉を利用して、トレイの開閉運動と連動した工作物をつくること
Ejectコマンド工作の例• ハムスターにエサをあげる• エアコンの電源を操作する• AC電源を操作する• 除夜の鐘をつく
ハムスターにエサをあげる• 初めて作った作品• 外出先からハムスターの餌をあげられる• ドライブを積めば複数日の給餌に対応• いまはハムスターがいないので未使用• 本日デモ予定
エアコンの電源を操作する• 2010年ごろ開発• トレイでボタンを直接押す→リモコンから電源回路をハックして外付けボタンをトレイで押す→Raspberry Piで、予めハックしたリモコンを操作するように進化
AC電源リモート操作• AC電源をEjectでON/OFFする• ホームセンターで買えるスイッチと電線で作れる• プログラムタイマーとしても使える• 本日デモ中
除夜の鐘• 通称「除夜のEject」• 毎年12月31日にUSTREAMで中継• だれでもEjectで鐘をつくことができる• Eject結果はUSTで確認• 本日デモ予定
Ejectカーテン• 朝になったらカーテンを開く装置• カーテンにヒモを通して、おもりを落とすとカーテンが開く• おもりを落とすのがCD-‐ROMドライブ• このためだけにRasPiを1台消費
CD-‐ROMドライブを使う意義• Ejectコマンド工作の大半は電子工作で解決• 電子工作を勉強したら楽しいはず• しかし、電子工作に抵抗がある人はいる• 電子工作ができない人は諦めなければいけないか?→NO• CD-‐ROMドライブを使って工作したら少しカンタンにできないだろうか?
Ejectコマンド工作のメリット• カンタン(電子工作ができなくても大丈夫)• 手軽(物品調達は難しくなく、比較的安価)• わりと安全(ハンダ付けとかほとんど無い)• Linuxの知識が身につく(かも知れない)– atd, cron, udevなど、ふだんあまりさわる機会がない部分も色々触れる
Ejectコマンド工作のデメリット• 工作の実行成功率にムラがある– 正直、工作による• 場所を取る• サーバー構築の知識はある程度必要• Ejectコマンド工作は万能ではない– 可能性は無限大とは言いつつ、できることは実はあまりない– 出来る範囲のことをやろう
Ejectである必要はない• 自分で実現可能な方法で自由に実装しよう• 電子工作ができる人はそれでやれば良い– 私のエアコンリモートはRasPiに移行した• 市販品が良いならそれを使えば良い– 普通の人が注目するソリューションなので、ブログに書くとブクマとかアクセス数とか稼げる• Ejectで良いと思ったらそうすれば良い– すぐできるし工作する時間は楽しいしネタになる
Ejectコマンド工作は手段• 当時飼っていたハムスターの世話をOSCで遠征していてもできるようにしたいという課題解決の必要に迫られて作った– 数週間くらいしかなくて悩んでいた– OSCなどのイベントのネタにしたかった、というのも…あるよ( ;`ω´)• 単にEjectをしたくて作ったわけではない– Ejectだけで喜んでいるのはちょっとやばい
Ejectコマンド工作入門
工作に必要なもの• Eject機材– CD-‐ROMドライブ(¥100〜¥300)– IDE-‐USB変換ケーブル(¥1,000)– 余っている適当なマシンなど• Raspberry Pi(¥5,000くらい)• 工作の材料– ダンボール片・紙の小箱・ヒモ– エアコンのリモコン・スイッチ– はさみ・カッター・のりなど文具
CD-‐ROMドライブの入手• 基本的に5インチベイタイプの大きい物を使用• 薄型はトレイを閉められないので向かない• ドライブ本来の機能(読み書きできるかどうか)は重要視されないのでジャンクでも良い• ハードオフや秋葉原のジャンク屋などで入手• 分解してレーザーユニットを外すと軽量化可能
IDE-‐USB変換ケーブル• 主に内蔵HDDをUSB接続するために使用– 外付けディスクとして– データレスキュー用• 秋葉原・家電量販店・Amazon等で入手可能– ヤフオクにも安いのがある– 外部電源が付いているタイプを選ぶ– ついていないものは2.5インチHDD向け
マシンの用意• Linuxが入っている適当なマシンを用意する• 軽くにお試しするときにはなんでも良い• 常時稼働させたくなった時は、省電力なマシンを選択すると良い– ノートPC(昔のネットブックとか)– Raspberry Piなどシングルボードコンピュータ
工作の材料• やりたいものの内容に応じて変化する• ハムスターの餌やり– ダンボール片– セロハンテープ等• エアコンの電源操作– エアコンのリモコン– ケーブル– アーケードスイッチ等ドライブで押しやすいボタン
工作の材料(続き)• カーテンの開閉– ヒモ– 重り– 滑車• 除夜の鐘– 鐘型の風鈴– カタログスタンド
Ejectする手段を確保する方法 外出先から実行できるかSSHでログインしてEject外に公開するか、VPNがあればできるWeb画面からEject 外に公開するか、VPNがあればできる。もしくは、VPSなどから間接的に実行する方法もあるTwitterからEject できる
いちおうオープンソース• 「WebからEject」も「TwitterからEject」も、やり方はソースを公開しています• http://github.com/Akkiesoft/Eject-‐Command-‐Users-‐Group/• WebはPHP、TwitterはPythonで実装• どうぞご利用ください
そうしてできあがり• 何を作るかはあなた次第• あったら便利そうなものを思いついたら自分で作ってみよう(私に言ってもダメ)
まとめ
まとめ• CD-‐ROMドライブでホームオートメーションはできる• 肩肘張らず気軽にやってみよう• 意識の低いIoT– 意識が他界IoT
おわり