SlideShare a Scribd company logo
1 of 57
kernel/VM探検隊@北陸 1
2014/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探検隊@北陸 1
2014/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 GPIO
import os
import 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の配置
プルダウン抵抗
USB
PCへ
シリアル通信
赤外線
遮断回路
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/export
4番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

More Related Content

More from ahiru3

OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)ahiru3
 
What is ahiruyaki?
What is ahiruyaki?What is ahiruyaki?
What is ahiruyaki?ahiru3
 
2015年OSC名古屋東海道らぐLT
2015年OSC名古屋東海道らぐLT2015年OSC名古屋東海道らぐLT
2015年OSC名古屋東海道らぐLTahiru3
 
OSC Tokyo/Fall LT
OSC Tokyo/Fall LTOSC Tokyo/Fall LT
OSC Tokyo/Fall LTahiru3
 
OSC京都 東海道らぐLT資料
OSC京都 東海道らぐLT資料OSC京都 東海道らぐLT資料
OSC京都 東海道らぐLT資料ahiru3
 
ejectLT @ NT金沢
ejectLT @ NT金沢ejectLT @ NT金沢
ejectLT @ NT金沢ahiru3
 
OSC Nagoya 2014 東海道らぐ 夏の陣
OSC Nagoya 2014 東海道らぐ 夏の陣OSC Nagoya 2014 東海道らぐ 夏の陣
OSC Nagoya 2014 東海道らぐ 夏の陣ahiru3
 
OSC nagoya 2014 LT
OSC nagoya 2014 LTOSC nagoya 2014 LT
OSC nagoya 2014 LTahiru3
 

More from ahiru3 (8)

OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
OSC京都 東海道らぐLT iOSのIn-Houseアプリの配布まで(概要)
 
What is ahiruyaki?
What is ahiruyaki?What is ahiruyaki?
What is ahiruyaki?
 
2015年OSC名古屋東海道らぐLT
2015年OSC名古屋東海道らぐLT2015年OSC名古屋東海道らぐLT
2015年OSC名古屋東海道らぐLT
 
OSC Tokyo/Fall LT
OSC Tokyo/Fall LTOSC Tokyo/Fall LT
OSC Tokyo/Fall LT
 
OSC京都 東海道らぐLT資料
OSC京都 東海道らぐLT資料OSC京都 東海道らぐLT資料
OSC京都 東海道らぐLT資料
 
ejectLT @ NT金沢
ejectLT @ NT金沢ejectLT @ NT金沢
ejectLT @ NT金沢
 
OSC Nagoya 2014 東海道らぐ 夏の陣
OSC Nagoya 2014 東海道らぐ 夏の陣OSC Nagoya 2014 東海道らぐ 夏の陣
OSC Nagoya 2014 東海道らぐ 夏の陣
 
OSC nagoya 2014 LT
OSC nagoya 2014 LTOSC nagoya 2014 LT
OSC nagoya 2014 LT
 

Eject探検隊@北陸1(Kernel/VM探検隊@北陸1)