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

おわり