Ejectコマンド工作入門2019 / 20190601-osc19do-eject
by
Akira Ouchi
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Ejectコマンド工作入門 2019 Ejectコマンドユーザー会 あっきぃ ( id:Akkiesoft ) 2019/02/23 OSC2019 Spring
Slide 2
Slide 2 text
自己紹介 • あっきぃです (@
[email protected]
) – Mastodon。自分でもサーバー運用はじめました • Ejectコマンドユーザー会主宰 – eject.kokuda.org 安定の放置サイト • Raspberry Pi ユーザー会 – raspi.jp こっちはブログ書いてます • ミクだいすきー
Slide 3
Slide 3 text
今日のブース • 貼り忘れてなかったらここに今日のブースの写真 がある • あなたの予想に反して、この文字が見えているで しょうか?
Slide 4
Slide 4 text
イジェンダ • Ejectコマンドユーザー会とは • Ejectの10年を振り返る • 最近の活動 • Eject入門2019 • いまEjectを使う必要があるか問題
Slide 5
Slide 5 text
EJECTコマンドユーザー会とは
Slide 6
Slide 6 text
Ejectコマンドユーザー会とは • CD-ROMドライブのトレイ開閉と • PCやRaspberry PiなどLinux機を 組み合わせて • 主にホームオートメーションを実現する • IoT系工作を作るユーザーの集い • Ejectコマンド工作と呼んでいる
Slide 7
Slide 7 text
Ejectコマンド工作とは • Ejectのソフトウェア制御によるト レイ開閉を利用して、トレイの開 閉運動と連動した工作物をつく ること • ピタゴラスイッチっぽいもの
Slide 8
Slide 8 text
Ejectコマンド • https://linuxjm.osdn.jp/html/eject /man1/eject.1.html • 要約 – ソフトウェア制御によってイジェクトできる – CD-ROMドライブのトレイを開閉できる – マウントされていたらアンマウントする • 現代的にはUSBメモリなどにも有用 • umountでいいんだけど、まあ。
Slide 9
Slide 9 text
トレイ開閉を利用する • CD-ROMドライブはEjectコマンドを実行すると、ト レイの開閉運動を得ることができる – Ejectする=トレイで物を押しだす・突くなど • こらちを主に利用 – Loadする=トレイでものを引く • 5インチベイタイプのドライブの場合、開閉の運動 を繰り返し得ることができる 9
Slide 10
Slide 10 text
リモートやタイマーでEjectする • SSHからリモートで実行 – データセンターではサーバの特定に使われるいたずら にも利用される • Ejectコマンド工作的にはPHPやPythonやRubyな どの言語を利用してWeb画面からEject • cronやatdを利用して決まった時間にEjectコマン ド工作を実行 • TwitterやSlackなどSNS連携
Slide 11
Slide 11 text
ユーザー会の活動 • ない – OSC出展時が活動タイミング – 最近はラズパイユーザー会にくっつく形でMaker Faire にも • Webサイトは昨年2年くらい放置した分を補完し た • ML…そんなのもありましたね… • (たぶん)相変わらずのひとりコミュニティ
Slide 12
Slide 12 text
EJECTコマンド工作の10年を 振り返る
Slide 13
Slide 13 text
お、俺の10年は一体ッ… • 人の寿命によるけど、80歳まで生きたとしたら 人生の1/8をEjectに費やしたことに • おもな作ったもの – ハムスターの餌やり – エアコン – スマートコンセント – カーテン – 植物の水やり – CDTea • 同人誌4冊、雑誌とかの執筆少々
Slide 14
Slide 14 text
はじめてのEject(2009) • OSCに遠征(北海道)に出かける間、ハムスターの 自動給餌をしたいと思った • 時間が限られた中で、家にあるものを見ていたら CD-ROMドライブとIDE-USB変換ケーブルがでてき た • 自宅サーバーに繋いで 工作してしまった
Slide 15
Slide 15 text
ハムスターの餌やり(2009) • 装置系 – ML110/115に付いていたCD-ROMドライブ – IDE→USB変換ケーブルと電源(自宅サーバに接続) • エサ格納 – ヨーグルトのカップとヒモ – ダンボール – セロハンテープとか •ejectコマンド
Slide 16
Slide 16 text
しくみ 1. ドライブにejectコマンドを送ってトレイをオープン 2. トレイがカップ(傾斜付き)を倒してエサが落ちる 3. エサやり完了 独自の(ナゾの)エサ飛び散り防止機構付き
Slide 17
Slide 17 text
動作の様子 • カップは(メッシュ)棚の上の段から吊されている • トレイのスキマからエサが落ちる • 1つ問題が発生:CD-ROMドライブにエサが詰まる – ドライブ入り口にガード(付箋)を設置して解決
Slide 18
Slide 18 text
現在の給餌(2013〜) • ダンボールとテープだけでできるよう簡素化。(縦に 積み増して)複数回餌やり対応
Slide 19
Slide 19 text
金魚の給餌も(2016) • フレークタイプはEjectでできた • ろうとをトレイでつつくと餌が落ちる
Slide 20
Slide 20 text
今の給餌(2017〜2019) • 2年たってめちゃくちゃでかくなったので粒タイプの 餌に変更 • Raspberry Piとサーボ モーターで給餌に • この金魚はこないだ外出中に 水槽から飛び出して死んだ • (◞‸◟)
Slide 21
Slide 21 text
エアコンの電源操作(2010) • はじめはボタンを直接押した • 次世代では電源ボタンの回路を取り出してアー ケードスイッチで押せるようにした
Slide 22
Slide 22 text
現在のエアコンリモート(2013〜) • Raspberry PiによってCD-ROMドライブとアーケー ドスイッチがフォトカプラーに置き換えられた • リモコンは変わっていない • Raspberry Piで "卒Eject"した例
Slide 23
Slide 23 text
除夜の鐘 • 「除夜のEject」 • 毎年12月31日にYoutubeで中継 • Mastodon/Twitterを通じてだれでもEjectで鐘を つくことができる • 結果は中継で確認
Slide 24
Slide 24 text
スマートコンセント(2011) • ホームセンターからタンブラースイッチを買ってきて 節電タップを自作 • Ejectコマンドの-t(閉じる)/-T(トグル)を活用してオ ンオフ両方を実現 • 節電タップは100円ショップの ものに変更してさらに簡単に なった
Slide 25
Slide 25 text
カーテンオープナー • 毎朝カーテンをオープンする工作 – 紐を引くとカーテンが開く工作(両開き対応) – 紐につけたおもり – おもりを落とすドライブ • 閉じられないのでリセットは手動
Slide 26
Slide 26 text
植物の水やり • スマートコンセントとペットボトルとチューブの組み 合わせ • ポンプでボトルに空気を送り込み、水を押し出す • 1回しか使わな かった • 多分便利
Slide 27
Slide 27 text
Ejectコマンド工作式CDTea • 光学ドライブでお茶を淹れる装置 • オリジナルである海外の事例は ドライブの内部を魔改造していた が、スタンドを作成してベゼルに 改造に留めることでejectコマンド で実現 • 実用性は不明
Slide 28
Slide 28 text
同人活動 • Ejectのうすい本を4作発表 • 今は4作まとめた総集編「EJECTO 2012-2017」を 頒布中(800円) • 本日10部限定で頒布中です。 • COMIC ZIN, とらのあなでも委託販売中です – ZIN 新宿店がおすすめ • って書いてたけど閉店するらしく(◞‸◟) – 通販できます
Slide 29
Slide 29 text
書籍への執筆 • Raspberry Pi [実用] 入門(2013) • シェルスクリプトマガジン(2015) • Software Design – 2017/1 除夜のEject – 2017/9 Ejectスマートコンセント – 2018/3 CD-ROMにRPiを内蔵 – 2019/1 垂直Eject
Slide 30
Slide 30 text
最近の活動
Slide 31
Slide 31 text
Software Designへの執筆 • 年1〜2回ほどEjectでネタを執筆 • Ejectコマンド工作はソフトウェアなのか? • 同人誌からの使い回しでいいですよと言われてる けど、使いまわしつつ新規ネタを混ぜ込んでます
Slide 32
Slide 32 text
OSC2019 Osakaを欠席 • 帯状疱疹がでたので出展をキャンセル • 自宅にリモートブースを構えてRaspberry Piでスト リーミング配信 してみた • (工作はなし) • 意外といけた
Slide 33
Slide 33 text
構成 • PiZero W+カメラ – 雑に無線LAN – ドライブをUSB接続 • Python簡易HTTPサーバー スクリプト – PiCameraでストリーミング配信 – ボタンを押すとEject • 自宅のWebサーバーから リバースプロキシで配信
Slide 34
Slide 34 text
PiCameraのストリーミング • ドキュメントのサンプルだけで十分動く • https://picamera.readthedocs.io/en/latest/rec ipes2.html#web-streaming • mjpegでやるらしい • 時間が経つとスクショみたいな感じで映像が荒れ るのは謎
Slide 35
Slide 35 text
スクリプトはGitHubに • https://github.com/Akkiesoft/Eject- Command-Users- Group/tree/master/EjeStream • ブログ – http://akkiesoft.hatenablog.jp/entry/20190127/1 548588834
Slide 36
Slide 36 text
生き物の観察と組み合わせ? • ハムスターの餌やりとかと組み合わせたら観察しな がら餌をあげられそう • ネットワーク帯域との兼ね合いもありつつ – 見るときだけストリーミング起動できれば良さそう
Slide 37
Slide 37 text
EJECT入門2019
Slide 38
Slide 38 text
何作ろう • スマートコンセントの作り方でもやりますか • Amazonだと1,900円くらいで買える – スマートスピーカー/IFTTT連携付き! • Ejectは…プライスレスだよ! – どのくらい家にあるものが使いまわせるかによる – ラズパイ持ってなかったらそれだけで1,900円超えるよ ね、でもみんな余してるよね、はい解決 – 一通り持ってたら100円でできる
Slide 39
Slide 39 text
必要なもの(Ejectまわり) • CD-ROMドライブ(IDE or SATA) • IDE(SATA)-USB変換ケーブル – 電源ケーブルとセットで • Linux PC(Raspberry Pi) – USB電源とMicroUSBケーブル
Slide 40
Slide 40 text
必要なもの(工作まわり) • 100円ショップの節電タップ • テーブルタップ • 100円ショップのカードケース – ドライブの高さ調節ができれば適当なあり物でも • 養生テープ
Slide 41
Slide 41 text
タップを固定する • 名刺ケースは乗せるだけ
Slide 42
Slide 42 text
節電タップを乗せる
Slide 43
Slide 43 text
ドライブを置く
Slide 44
Slide 44 text
ドライブを固定
Slide 45
Slide 45 text
位置について • 節電タップによって正面にしかないやつがあるので こんな感じで配置 – ダイソーの節電タップは今これが現行モデル
Slide 46
Slide 46 text
IDE-USBケーブルとRPiを接続
Slide 47
Slide 47 text
Ejectする • Ejectパッケージをインストール • コマンドを実行 $ apt update $ apt install -y eject $ eject (トレイを開く) $ eject -t (トレイを閉じる) $ eject -T (トレイ開閉を繰り返す) $ eject /dev/sr0 (デバイスを指定)
Slide 48
Slide 48 text
操作でき…!でき…!!
Slide 49
Slide 49 text
できなかった(◞‸◟) • 例に使用した節電タップはONが触ってわかるよう に盛り上がっていて、そこに引っかかった – メジャーどころのダイソーの節電タップでできないとは • 削ってしまうと良いかも(雑) • できる例はブースで展示してます(・ω<) – べつの100円ショップで見つけたけど買って以降みかけ ない
Slide 50
Slide 50 text
ダイソーさん… • 1口節電タップの下向きになってるバージョンほし い!(Eject的に) • スイッチはONの方の出っ張りがないとうれしい! (Eject的に) • スイッチ操作は軽いのがいい!(Eject的に) – 重いとEjectでのオンオフが難しい
Slide 51
Slide 51 text
いまEJECTを使う必要があるか問題
Slide 52
Slide 52 text
2009年当時のその手の工作 • わたし「ハムスターの給餌をやりたい!」 • まだ「電子工作と言えばPICとかなんとか」の印象 が濃い世界 – 敷居高 – Arduinoはもうあったらしいけど気づいていない – それらを使う発想がなかった • 血迷ってEjectに頼ったらなんとかなった – LTにしたらウケて承認欲求が満たされた
Slide 53
Slide 53 text
CD-ROMドライブを使う意義 • 当時の主張 • Ejectコマンド工作の大半は電子工作で解決 • 電子工作を勉強したら楽しいはず • しかし、電子工作に抵抗がある人はいる • 電子工作ができない人は諦めなければいけない か?→NO • CD-ROMドライブを使って工作したら少しカンタンにで きないだろうか?
Slide 54
Slide 54 text
Ejectコマンド工作のメリット • カンタン(電子工作ができなくても大丈夫) • 手軽(物品調達は難しくなく、比較的安価) • わりと安全(ハンダ付けとかほとんど無い) • Linuxの知識が身につく(かも知れない) – atd, cron, udevなど、ふだんあまりさわる機会がない 部分も色々触れる
Slide 55
Slide 55 text
Ejectコマンド工作のデメリット • 工作の実行成功率にムラがある – 正直、工作による • 場所を取る • サーバー構築の知識はある程度必要 • Ejectコマンド工作は万能ではない – 可能性は無限大とは言いつつ、できることは実はあま りない – 出来る範囲のことをやろう
Slide 56
Slide 56 text
Raspberry Piの登場(2012) • Raspberry Piとか言う安いLinuxPCが出た • 感想 – 「ML110/ML115をサーバーにしなくても これでEjectできるじゃん」 – 「OSCのデモもネットブックやめてこれでいいじゃん」 – 3500円くらい(当時)?OpenBlocksよりはるかに安い • Eject的には革命が起きた
Slide 57
Slide 57 text
Raspberry Piがもたらしたもの • しょうもない用途にも気軽に使える 物理Linuxサーバーとして威力を発揮 • 電子工作の敷居をめちゃくちゃ下げた – 豊富すぎる作例。ググって材料を揃えて作ればそのま ま使えるものがゴロゴロする世の中に • EjectじゃなくてもRaspberry Piで”かんたんに”実 現できることもできた – エアコン – 金魚の餌やり
Slide 58
Slide 58 text
IoTブーム • IoT製品がめちゃくちゃたくさん出てきた • エアコンのリモート操作が法律的にいいのか悪い のかもめてたのももはや遠い昔 • Ejectでやってた製品は大体IoT製品になったし値 段も安くなった – 給餌装置 – リモコン類 – スマートコンセント – カーテン操作
Slide 59
Slide 59 text
はたして……Ejectが この先生きのこるには? • 今も毎日稼働しているのはカーテン装置だけ • その他は大体役目を果たした気がする • 生き残る必要は無いのでは?
Slide 60
Slide 60 text
どちらを取るか OR
Slide 61
Slide 61 text
どちらを取るか https://mornin.jp/ OR OR
Slide 62
Slide 62 text
Ejectである必要はない • 問題・課題があった時、その時代にある適切な 手段でいい感じに解決しましょう • 電子工作ができる人はそれでやれば良い • 市販品が良いならそれを使えば良い – 普通の人が注目するソリューションなので、 ブログに書くとブクマとかアクセス数とか稼げる – 価格も手頃になった • Ejectで良いと思ったらそうすれば良い – すぐできるし工作する時間は楽しいしネタになる
Slide 63
Slide 63 text
Ejectコマンド工作は手段 • ハムスターの世話をOSC遠征中もできるようにした いという課題を解決するために作った • 単にEjectをしたくて作ったわけではない • いまの自分なら多分サーボモーターで作ってしまう かも? • どちらが楽だろうか。
Slide 64
Slide 64 text
まとめ • あっきぃは大事な20代をEjectに費やしてしまいま した • でも私が欲しかったものはIoTデバイスとして後から ついてきて、みんな簡単に使えるようになった • いまもEjectが必要かと言われると、やはりその時 の課題と課題達成のための難易度による
Slide 65
Slide 65 text
おわり