Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ejectコマンド工作入門2019 / 20190601-osc19do-eject
Search
Akira Ouchi
June 01, 2019
How-to & DIY
0
1.4k
Ejectコマンド工作入門2019 / 20190601-osc19do-eject
OSC2019 Hokkaidoにて発表
Akira Ouchi
June 01, 2019
Tweet
Share
More Decks by Akira Ouchi
See All by Akira Ouchi
Any Raspberry Pi (5) Updates? / 20240618-rpi-updates
akkiesoft
0
13
Raspberry Pi 5のPCI Express拡張ボードあれこれ / 20240420-osunc2024-kawagoe
akkiesoft
0
170
Misskey OSPNサーバーでFediverseをはじめよう / 20240203-msky-ospn
akkiesoft
1
510
Raspberry PiではじめるKiCad入門 / 20240226-rpi-jam
akkiesoft
1
3.3k
ワンチャンXから離脱してFediverseに飛び込もう / 20240203-homeserver
akkiesoft
0
260
Raspberry Pi 5のPCI Express拡張ボードあれこれ / 202401-rpijam-osc24os
akkiesoft
0
2.5k
ラズピッピ・ファイブ / 20231024-rpi-jam-tokyo
akkiesoft
0
2k
今年のラズパイなんかあった? / 20230830-rpijamtokyo
akkiesoft
0
1.2k
でも…Raspberry Piって買えないんでしょう? / 20230725-ml-almalinux-rpi
akkiesoft
0
260
Other Decks in How-to & DIY
See All in How-to & DIY
enebularを活用したNode-REDによるIoTシステム開発と運用
taokiuhuru
0
400
田中 is a new HelloWorld
akichika
1
220
GPTsとラズパイ5で監視カメラを作ってみた #iotlt #chatgpt #raspberrypi
n0bisuke2
0
440
ちょっと待てぃ!!ボタンをキーボード化 #M5Stack #M5JPTour2023 #相席食堂
n0bisuke2
0
540
地域JAWSの現状とベストプラクティス
awsjcpm
0
330
Dirbtinis intelektas dizainerio gyvenime
lekevicius
0
180
【1周年】Blueskyちゃん総集編を通じて青空を遊びつくそう
kawaiirailroads
0
230
たまごっちUniFlash解析 #分解のススメ
bakueikozo
0
480
DroidKaigi 2024 - 海外就職というキャリアの選択肢
iyotetsuya
1
350
Invitation to Okinawa.rb in 2024
yasslab
PRO
1
630
Fraxinus1k Assembly Instructions (English, v. 0.9)
fukumay
0
1.2k
カフェでノートPCが盗難されたかどうかを検知するIoT #linedc #iotlt #obniz #protoout
n0bisuke2
1
250
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
26
4k
Clear Off the Table
cherdarchuk
91
320k
Building Your Own Lightsaber
phodgson
101
6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Scaling GitHub
holman
458
140k
In The Pink: A Labor of Love
frogandcode
139
22k
What's new in Ruby 2.0
geeforr
340
31k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Navigating Team Friction
lara
183
14k
Building an army of robots
kneath
302
42k
Learning to Love Humans: Emotional Interface Design
aarron
271
40k
Documentation Writing (for coders)
carmenintech
65
4.3k
Transcript
Ejectコマンド工作入門 2019 Ejectコマンドユーザー会 あっきぃ ( id:Akkiesoft ) 2019/02/23 OSC2019 Spring
自己紹介 • あっきぃです (@
[email protected]
) – Mastodon。自分でもサーバー運用はじめました • Ejectコマンドユーザー会主宰 – eject.kokuda.org
安定の放置サイト • Raspberry Pi ユーザー会 – raspi.jp こっちはブログ書いてます • ミクだいすきー
今日のブース • 貼り忘れてなかったらここに今日のブースの写真 がある • あなたの予想に反して、この文字が見えているで しょうか?
イジェンダ • Ejectコマンドユーザー会とは • Ejectの10年を振り返る • 最近の活動 • Eject入門2019 •
いまEjectを使う必要があるか問題
EJECTコマンドユーザー会とは
Ejectコマンドユーザー会とは • CD-ROMドライブのトレイ開閉と • PCやRaspberry PiなどLinux機を 組み合わせて • 主にホームオートメーションを実現する •
IoT系工作を作るユーザーの集い • Ejectコマンド工作と呼んでいる
Ejectコマンド工作とは • Ejectのソフトウェア制御によるト レイ開閉を利用して、トレイの開 閉運動と連動した工作物をつく ること • ピタゴラスイッチっぽいもの
Ejectコマンド • https://linuxjm.osdn.jp/html/eject /man1/eject.1.html • 要約 – ソフトウェア制御によってイジェクトできる – CD-ROMドライブのトレイを開閉できる
– マウントされていたらアンマウントする • 現代的にはUSBメモリなどにも有用 • umountでいいんだけど、まあ。
トレイ開閉を利用する • CD-ROMドライブはEjectコマンドを実行すると、ト レイの開閉運動を得ることができる – Ejectする=トレイで物を押しだす・突くなど • こらちを主に利用 – Loadする=トレイでものを引く
• 5インチベイタイプのドライブの場合、開閉の運動 を繰り返し得ることができる 9
リモートやタイマーでEjectする • SSHからリモートで実行 – データセンターではサーバの特定に使われるいたずら にも利用される • Ejectコマンド工作的にはPHPやPythonやRubyな どの言語を利用してWeb画面からEject •
cronやatdを利用して決まった時間にEjectコマン ド工作を実行 • TwitterやSlackなどSNS連携
ユーザー会の活動 • ない – OSC出展時が活動タイミング – 最近はラズパイユーザー会にくっつく形でMaker Faire にも •
Webサイトは昨年2年くらい放置した分を補完し た • ML…そんなのもありましたね… • (たぶん)相変わらずのひとりコミュニティ
EJECTコマンド工作の10年を 振り返る
お、俺の10年は一体ッ… • 人の寿命によるけど、80歳まで生きたとしたら 人生の1/8をEjectに費やしたことに • おもな作ったもの – ハムスターの餌やり – エアコン
– スマートコンセント – カーテン – 植物の水やり – CDTea • 同人誌4冊、雑誌とかの執筆少々
はじめてのEject(2009) • OSCに遠征(北海道)に出かける間、ハムスターの 自動給餌をしたいと思った • 時間が限られた中で、家にあるものを見ていたら CD-ROMドライブとIDE-USB変換ケーブルがでてき た • 自宅サーバーに繋いで
工作してしまった
ハムスターの餌やり(2009) • 装置系 – ML110/115に付いていたCD-ROMドライブ – IDE→USB変換ケーブルと電源(自宅サーバに接続) • エサ格納 –
ヨーグルトのカップとヒモ – ダンボール – セロハンテープとか •ejectコマンド
しくみ 1. ドライブにejectコマンドを送ってトレイをオープン 2. トレイがカップ(傾斜付き)を倒してエサが落ちる 3. エサやり完了 独自の(ナゾの)エサ飛び散り防止機構付き
動作の様子 • カップは(メッシュ)棚の上の段から吊されている • トレイのスキマからエサが落ちる • 1つ問題が発生:CD-ROMドライブにエサが詰まる – ドライブ入り口にガード(付箋)を設置して解決
現在の給餌(2013〜) • ダンボールとテープだけでできるよう簡素化。(縦に 積み増して)複数回餌やり対応
金魚の給餌も(2016) • フレークタイプはEjectでできた • ろうとをトレイでつつくと餌が落ちる
今の給餌(2017〜2019) • 2年たってめちゃくちゃでかくなったので粒タイプの 餌に変更 • Raspberry Piとサーボ モーターで給餌に • この金魚はこないだ外出中に
水槽から飛び出して死んだ • (◞‸◟)
エアコンの電源操作(2010) • はじめはボタンを直接押した • 次世代では電源ボタンの回路を取り出してアー ケードスイッチで押せるようにした
現在のエアコンリモート(2013〜) • Raspberry PiによってCD-ROMドライブとアーケー ドスイッチがフォトカプラーに置き換えられた • リモコンは変わっていない • Raspberry Piで
"卒Eject"した例
除夜の鐘 • 「除夜のEject」 • 毎年12月31日にYoutubeで中継 • Mastodon/Twitterを通じてだれでもEjectで鐘を つくことができる • 結果は中継で確認
スマートコンセント(2011) • ホームセンターからタンブラースイッチを買ってきて 節電タップを自作 • Ejectコマンドの-t(閉じる)/-T(トグル)を活用してオ ンオフ両方を実現 • 節電タップは100円ショップの ものに変更してさらに簡単に
なった
カーテンオープナー • 毎朝カーテンをオープンする工作 – 紐を引くとカーテンが開く工作(両開き対応) – 紐につけたおもり – おもりを落とすドライブ •
閉じられないのでリセットは手動
植物の水やり • スマートコンセントとペットボトルとチューブの組み 合わせ • ポンプでボトルに空気を送り込み、水を押し出す • 1回しか使わな かった •
多分便利
Ejectコマンド工作式CDTea • 光学ドライブでお茶を淹れる装置 • オリジナルである海外の事例は ドライブの内部を魔改造していた が、スタンドを作成してベゼルに 改造に留めることでejectコマンド で実現 •
実用性は不明
同人活動 • Ejectのうすい本を4作発表 • 今は4作まとめた総集編「EJECTO 2012-2017」を 頒布中(800円) • 本日10部限定で頒布中です。 •
COMIC ZIN, とらのあなでも委託販売中です – ZIN 新宿店がおすすめ • って書いてたけど閉店するらしく(◞‸◟) – 通販できます
書籍への執筆 • Raspberry Pi [実用] 入門(2013) • シェルスクリプトマガジン(2015) • Software
Design – 2017/1 除夜のEject – 2017/9 Ejectスマートコンセント – 2018/3 CD-ROMにRPiを内蔵 – 2019/1 垂直Eject
最近の活動
Software Designへの執筆 • 年1〜2回ほどEjectでネタを執筆 • Ejectコマンド工作はソフトウェアなのか? • 同人誌からの使い回しでいいですよと言われてる けど、使いまわしつつ新規ネタを混ぜ込んでます
OSC2019 Osakaを欠席 • 帯状疱疹がでたので出展をキャンセル • 自宅にリモートブースを構えてRaspberry Piでスト リーミング配信 してみた •
(工作はなし) • 意外といけた
構成 • PiZero W+カメラ – 雑に無線LAN – ドライブをUSB接続 • Python簡易HTTPサーバー
スクリプト – PiCameraでストリーミング配信 – ボタンを押すとEject • 自宅のWebサーバーから リバースプロキシで配信
PiCameraのストリーミング • ドキュメントのサンプルだけで十分動く • https://picamera.readthedocs.io/en/latest/rec ipes2.html#web-streaming • mjpegでやるらしい • 時間が経つとスクショみたいな感じで映像が荒れ
るのは謎
スクリプトはGitHubに • https://github.com/Akkiesoft/Eject- Command-Users- Group/tree/master/EjeStream • ブログ – http://akkiesoft.hatenablog.jp/entry/20190127/1 548588834
生き物の観察と組み合わせ? • ハムスターの餌やりとかと組み合わせたら観察しな がら餌をあげられそう • ネットワーク帯域との兼ね合いもありつつ – 見るときだけストリーミング起動できれば良さそう
EJECT入門2019
何作ろう • スマートコンセントの作り方でもやりますか • Amazonだと1,900円くらいで買える – スマートスピーカー/IFTTT連携付き! • Ejectは…プライスレスだよ! –
どのくらい家にあるものが使いまわせるかによる – ラズパイ持ってなかったらそれだけで1,900円超えるよ ね、でもみんな余してるよね、はい解決 – 一通り持ってたら100円でできる
必要なもの(Ejectまわり) • CD-ROMドライブ(IDE or SATA) • IDE(SATA)-USB変換ケーブル – 電源ケーブルとセットで •
Linux PC(Raspberry Pi) – USB電源とMicroUSBケーブル
必要なもの(工作まわり) • 100円ショップの節電タップ • テーブルタップ • 100円ショップのカードケース – ドライブの高さ調節ができれば適当なあり物でも •
養生テープ
タップを固定する • 名刺ケースは乗せるだけ
節電タップを乗せる
ドライブを置く
ドライブを固定
位置について • 節電タップによって正面にしかないやつがあるので こんな感じで配置 – ダイソーの節電タップは今これが現行モデル
IDE-USBケーブルとRPiを接続
Ejectする • Ejectパッケージをインストール • コマンドを実行 $ apt update $ apt
install -y eject $ eject (トレイを開く) $ eject -t (トレイを閉じる) $ eject -T (トレイ開閉を繰り返す) $ eject /dev/sr0 (デバイスを指定)
操作でき…!でき…!!
できなかった(◞‸◟) • 例に使用した節電タップはONが触ってわかるよう に盛り上がっていて、そこに引っかかった – メジャーどころのダイソーの節電タップでできないとは • 削ってしまうと良いかも(雑) • できる例はブースで展示してます(・ω<)
– べつの100円ショップで見つけたけど買って以降みかけ ない
ダイソーさん… • 1口節電タップの下向きになってるバージョンほし い!(Eject的に) • スイッチはONの方の出っ張りがないとうれしい! (Eject的に) • スイッチ操作は軽いのがいい!(Eject的に) –
重いとEjectでのオンオフが難しい
いまEJECTを使う必要があるか問題
2009年当時のその手の工作 • わたし「ハムスターの給餌をやりたい!」 • まだ「電子工作と言えばPICとかなんとか」の印象 が濃い世界 – 敷居高 – Arduinoはもうあったらしいけど気づいていない
– それらを使う発想がなかった • 血迷ってEjectに頼ったらなんとかなった – LTにしたらウケて承認欲求が満たされた
CD-ROMドライブを使う意義 • 当時の主張 • Ejectコマンド工作の大半は電子工作で解決 • 電子工作を勉強したら楽しいはず • しかし、電子工作に抵抗がある人はいる •
電子工作ができない人は諦めなければいけない か?→NO • CD-ROMドライブを使って工作したら少しカンタンにで きないだろうか?
Ejectコマンド工作のメリット • カンタン(電子工作ができなくても大丈夫) • 手軽(物品調達は難しくなく、比較的安価) • わりと安全(ハンダ付けとかほとんど無い) • Linuxの知識が身につく(かも知れない) –
atd, cron, udevなど、ふだんあまりさわる機会がない 部分も色々触れる
Ejectコマンド工作のデメリット • 工作の実行成功率にムラがある – 正直、工作による • 場所を取る • サーバー構築の知識はある程度必要 •
Ejectコマンド工作は万能ではない – 可能性は無限大とは言いつつ、できることは実はあま りない – 出来る範囲のことをやろう
Raspberry Piの登場(2012) • Raspberry Piとか言う安いLinuxPCが出た • 感想 – 「ML110/ML115をサーバーにしなくても これでEjectできるじゃん」
– 「OSCのデモもネットブックやめてこれでいいじゃん」 – 3500円くらい(当時)?OpenBlocksよりはるかに安い • Eject的には革命が起きた
Raspberry Piがもたらしたもの • しょうもない用途にも気軽に使える 物理Linuxサーバーとして威力を発揮 • 電子工作の敷居をめちゃくちゃ下げた – 豊富すぎる作例。ググって材料を揃えて作ればそのま ま使えるものがゴロゴロする世の中に
• EjectじゃなくてもRaspberry Piで”かんたんに”実 現できることもできた – エアコン – 金魚の餌やり
IoTブーム • IoT製品がめちゃくちゃたくさん出てきた • エアコンのリモート操作が法律的にいいのか悪い のかもめてたのももはや遠い昔 • Ejectでやってた製品は大体IoT製品になったし値 段も安くなった –
給餌装置 – リモコン類 – スマートコンセント – カーテン操作
はたして……Ejectが この先生きのこるには? • 今も毎日稼働しているのはカーテン装置だけ • その他は大体役目を果たした気がする • 生き残る必要は無いのでは?
どちらを取るか OR
どちらを取るか https://mornin.jp/ OR OR
Ejectである必要はない • 問題・課題があった時、その時代にある適切な 手段でいい感じに解決しましょう • 電子工作ができる人はそれでやれば良い • 市販品が良いならそれを使えば良い – 普通の人が注目するソリューションなので、
ブログに書くとブクマとかアクセス数とか稼げる – 価格も手頃になった • Ejectで良いと思ったらそうすれば良い – すぐできるし工作する時間は楽しいしネタになる
Ejectコマンド工作は手段 • ハムスターの世話をOSC遠征中もできるようにした いという課題を解決するために作った • 単にEjectをしたくて作ったわけではない • いまの自分なら多分サーボモーターで作ってしまう かも? •
どちらが楽だろうか。
まとめ • あっきぃは大事な20代をEjectに費やしてしまいま した • でも私が欲しかったものはIoTデバイスとして後から ついてきて、みんな簡単に使えるようになった • いまもEjectが必要かと言われると、やはりその時 の課題と課題達成のための難易度による
おわり