eject探検隊@北陸1(kernel/vm探検隊@北陸1)

57
kernel/VM探検隊@北陸 1 2014/07/12

Upload: ahiru3

Post on 20-Jul-2015

184 views

Category:

Devices & Hardware


0 download

TRANSCRIPT

kernel/VM探検隊@北陸 12014/07/12

今日は( ゜Д゜)ポカーンとなりに来ました

( ゜Д゜)ポカーンとなったところで

(☝ ՞ਊ ՞)☝ウイーンの時間だ!!!!!

こ時ウら間イぁだ|!!ン

空へ羽ばたけるくらい高レイヤーなお話をします!!

|\ ___ / ̄/| \_ / ´՞ ՞`\ / /

| | し | /\__( ਊ }_/

\_____/|| //

m m空に羽ばたけ俺のLT

☝՞

_人人人人人人_> ( ) < ☞

 ̄Y^Y^YY^Y^Y ̄

՞ਊ

自己紹介

名前: あひる

職業: 名古屋工業大学学部3年

出没: Twitter(@ahiru3net)

HP: www.ahiru3.net

所属: C0de-mattari

Ejectコマンドユーザー会

(☝ ՞ਊ ՞)☝ウイーン

7/4~7/5に開催されたOSC名古屋にて暴れてきました

この勢いでKernel/VM探検隊を

ejectコマンド探検隊にしてしまおう!!ということでやって参りました人生初の北陸

人生初北陸以外は半分くらい嘘かもしれないのでご安心ください

Eject探検隊@北陸 12014/07/12

Twitter #EjectKaigi2014

ejectIRを作りました作った経緯等はブログにあるので興味のある方はどうぞ

Twitter #EjectKaigi2014

って書いて別のネタやろうと思ったんですが、自分の理解力、知識力の問題で

予定してたネタがことごとく潰えた…

Twitter #EjectKaigi2014

気を取り直して

ejectIR( ՞ਊ ՞)

= (☞ ՞ਊ ՞= ☞☜= ( ՞ਊ ՞☜= )

ヽ( ՞ਊ ՞)ノ三ヽ( ՞ਊ ՞)ノ

( ˘ਊ˘)(☝ ՞ਊ ՞)☝

Twitter #EjectKaigi2014

皆さん興味ありげなので説明します

Twitter #EjectKaigi2014

ejectIRとは

赤外線通過回路の送信部と受信部がこのように信号を送受信しています

= (☞ ՞ਊ ՞= ☞☜= ( ՞ਊ ՞☜= )めっちゃ信号送信してるうぅぅぅ

めっちゃ受信してるうぅぅぅ

ejectIRとは

その間に何かが置かれたり通過すると…

= (☞ ՞ਊ ՞= ☞ (☝ ՞ਊ ՞)☝めっちゃ信号送信してるうぅぅぅ

あり?信号…

きてなくね?指痛い…

ejectIRとは

受光できない受信側でリレースイッチが入り、Raspberry Piに信号を送る

՞ਊ ՞= ☞ ( ՞ਊ ՞)☞ 受光できないよ!らずぴっぴさん!! → RaspberryPi

raspi( ՞ਊ ՞).。o( )

うおおぉぉぉぉぉぉおおおお

ejectIRとは

CD-ROMドライブが(☝ ՞ਊ ՞)☝ウイーンする

(☝ ՞ਊ ՞)☝ウイーン (☝ ՞ਊ ՞)☝ウイーン

raspi( ՞ਊ ՞).。o((☝ ՞ਊ ՞)☝ウイーン)

(☝ ՞ਊ ՞)☝ウイーン

仕組み

なぜ作ろうと思ったか

母親が入室↘

イヤホンしてて気づかない↙

母親が後ろに忍び寄る↘

気づかない↙

_人人人人人人人_> 気づかない < ̄^Y^Y^Y^Y^Y^ ̄

ejectIRがあれば…

母親が入室↘

イヤホンしてて気づかない↙

赤外線回路が反応↘

CD-ROMドライブが(☝ ՞ਊ ՞)☝ウイーン

↙_人人人人人_> 気づく < ̄^Y^Y^Y^ ̄

完璧だ…

いままで音で気づかなかったものを、CD-ROMドライブの(☝ ՞ਊ ՞)☝ウイーンという視覚的な情報に

よって気づくようになります。

ejectIRのソースはこんな感じ

import RPi.GPIO as GPIOimport osimport time

GPIO.setmode(GPIO.BCM)GPIO.setup(4, GPIO.IN)

while 1:if GPIO.input(4):

os.system("eject")print "Welcome to my room!!"time.sleep(1)os.system("eject -t")continue

else:print "no input"

GPIO.cleanup()

http://elinux.org/RPi_Low-level_peripherals より引用

GPIOの配置

プルダウン抵抗

USBPCへ

シリアル通信

赤外線遮断回路

SY-852

活用例

先の例のように人が入る→(☝ ՞ਊ ՞)☝ウイーン→気づく

先の例のように人が入る→(☝ ՞ਊ ՞)☝ウイーン→入室者驚く

ポストの内側に設置→投函される→(☝ ՞ਊ ՞)☝ウイーン

応用編

実はOSC名古屋以前にこんなものを作ってました

ejectコマンドで物理ipmitool

IPMIってなんぞ?

Intelligent Platform Management Interface

IPMIに対応したサーバは、OSやアプリケーションソフトなどを介

http://e-words.jp/w/IPMI.html より抜粋

メインマシンを外出中につけたい

常時付けてると電気代がもったいない

あれれ〜?

サーバー →

← メインマシン

どこの家でも転がってるであろう中古の

(eject用の)CD-

ROMドライブ

やることはただ一つ

(☝ ՞ਊ ՞)☝ウイーン

ここを押すのじゃ

応用編

玄関にejectIRを設置↓

自室のCD-ROMドライブが(☝ ՞ਊ ՞)☝ウイーン

PCの電源がつく↓

部屋に到着する頃にはPCがステンバ〜イ↓

うれしい!!!✌(‘ω’✌ )三✌('ω')✌三( ✌'ω')✌

ここまでの流れでわかるように、今回作ったejectIRはCR-ROMドライブがejectするためのトリガーとしての

eject工作ということ

ほかの方が制作しているトレイのejectという動作を使った工作とは違います

これらと結びつけることで初めてejectIRとしての工作は完成します。

先の応用編はまさにそのモデルとも言えるでしょう

わけがわからないよ

ejectIRのソースはGithubにejectIRの作り方は後日ブログにて掲載する予定です

ぜひejectIRと何かを組み合わせてドヤッていただきたいです

Github: ejectIR

ブログ: www.ahiru3.net

ejectコマンドユーザー会サイト翻訳募集中

実は未完

(準備時間的に)ておくれたてしまい、今回発表できなかったておくれたネタたち

まとまってないのでておくれている

RPi.GPIOについて調べてみた

A module to control Raspberry Pi GPIO channels

This package provides a class to control the GPIO on a Raspberry Pi.

https://pypi.python.org/pypi/RPi.GPIO より引用

GPIO: General Purpose Input/Output(汎用入出力)

const int pin_to_gpio_rev2[27] =

{

-1,

-1, -1,

2, -1,

3, -1,

4, 14,

-1, 15,

17, 18,

27, -1,

22, 23,

-1, 24,

10, -1,

9, 25,

11, 8,

-1, 7

};

←←コレが謎

const int pin_to_gpio_rev2[27] =

{

-1,

-1, -1,

2, -1,

3, -1,

4, 14,

-1, 15,

17, 18,

27, -1,

22, 23,

-1, 24,

10, -1,

9, 25,

11, 8,

-1, 7

};

電源系統は-1が与えられている

const int pin_to_gpio_rev2[27] =

{

-1,

-1, -1,

2, -1,

3, -1,

4, 14,

-1, 15,

17, 18,

27, -1,

22, 23,

-1, 24,

10, -1,

9, 25,

11, 8,

-1, 7

};

ピン番号の割当

/sys/class/gpio/export に対して使用するピンを宣言するecho "番号" > /sys/class/gpio/export4番pinを使う場合:echo "4" > /sys/class/gpio/export

すると番号に対応したディレクトリが生成されます/sys/class/gpio/gpio番号例:/sys/class/gpio/gpio4

/sys/class/gpio/gpio番号/direction にinputかoutputか宣言例:echo "out" > /sys/class/gpio/gpio4/direction

/sys/class/gpio/gpio番号/value に0or1が格納されている

http://pi.gadgetoid.com/pinout