Ejectコマンド工作入門2019 / 20190601-osc19do-eject
by
Akira Ouchi
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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
おわり