• 検索結果がありません。

sourceforge もっと 早 く もっとクールにリモートで 解 決 1CDLinux 開 発 中 もっと 早 く もっとクールにリモートで 解 決

N/A
N/A
Protected

Academic year: 2021

シェア "sourceforge もっと 早 く もっとクールにリモートで 解 決 1CDLinux 開 発 中 もっと 早 く もっとクールにリモートで 解 決"

Copied!
46
0
0

読み込み中.... (全文を見る)

全文

(1)

Linux

で外部機器を動かそう

PepoLinux Vmware appliance

Remote-Hand DIO v0.32

Raspberry Pi

Piface

Remote-Hand

OSC2013_Kansai@Kyoto

2013.8.3

会議室

B 14:00

14:45

Twitter@kujiranodanna

[email protected]

(2)

もっと早く、もっとクールにリモートで解決

sourceforge

もっと早く、もっとクールにリモートで解決

(3)
(4)

もっと早く、もっとクールにリモートで解決

(5)

acm-FOMA

とは

USB

接続が出来る

FOMA

携帯電話用の

Linux

Kernel-2.6

以降の

driver

/drivers/usb/class/cdc-acm.c

docomo

FOMA

driver

として改造、

2007.3.31

初リリース

当初

FOMA

の機種毎にコード追加してリリースを、余

りに早い新機種ラッシュそれに対応すべく

2007.11.17

に機種別コードを不要へ

従来から

MODEM

モードのみでしたが、

2011.5.28

v0.26.10

からは

OBEX

ATcommand

の3モードを

サポート出来るように

(6)

もっと早く、もっとクールにリモートで解決

(7)

Remote-Hand

とは

network

繋がってたら

Remote

で操作

(Hand)

network

機器コマンド叩きで大抵は

OK

network

繋がってなければ

FOMA

経由

携帯電話を

ppp

接続、

Remote login

外部信号とのやり取り

Digital Input Output

接続で機能性

UP

DIO

接続で外部信号の入力判定と出力操作

電源入/切、

Reset

ボタン、警報ブザー、パトライト等

Gmail

との連携

Web

カメラの画像をで送信

(8)

もっと早く、もっとクールにリモートで解決

PepoLinux

OpenMicroServer + FOMA Remote-Hand

リモートハンド USB接 続

パソコンの

ping TimeOut

を電話で通知

うさぎが人参を食べたら、人参を補充し電話で通知

トラが檻を破って脱走したら、パトライトを点灯

うさぎやトラをどうやって認識させる

Open Micro Server

DIO

端子を使い動物を監視

FOMA網

64kデジタル通信

or

(9)

OpenMicroServer

Remote-Hand

OpenMicroserver

DIO

を4ビット内蔵

Digital

信号(0

v,3.3v

)出力で

AC100

駆動させるには別途

Driver

TR,SCR, FLS

等)必要

如何せんとも遅い

mips

CPU

400MHz

値段が6万位とお高い割に結構しょぼい

2011

年早々製造中止

次機種には

DIO

は内蔵されてない

(10)

もっと早く、もっとクールにリモートで解決

Open Microserver

代替を探して

シリアル

DIO

ボード+

PepoLinux

ハードウェア

出来るだけ安く→1万円位

入手し易い→家電量販店や通販

再現性重視、特殊工具不要→半田ごて、圧着ペンチ、ラジ

オペンチ

ソフトウェア

シリアル経由なら拙者の

epicon

GUI

Open Microserver

WEB

インターフェース流用

(11)

DIO

コントロール用コマンド開発

pepodioctl

コマンドを開発

# pepodioctl

# usage $0 usage $0 read->chno:0-9 | write->chno:0-5 [DO:0|1]

[time->1 to 65535ms]

pepodioctl

の中身

CMD_DIO="/usr/local/bin/epicon -d 5 -D 5 -ql ${DIO_DEV} -c

${CMD}"

# cat ${CMD}

#!/bin/sh

echo -en "${DI_ADR}${CH}¥r¥n“

(12)

もっと早く、もっとクールにリモートで解決

シリアル経由だと結構ややこい

アプリケーション

CH

ライト

DIO

ボード

DIO

コントローラ

DIOADDRES

A

CH

0→

A

1→

H

ARA

9600bps

で送信

AAH

9600bps

で送信

ライトアフタ

WAIT

AHA

9600bps

受信

リード

WAIT

表示

PIC

なんやかんやの処理

PIC

なんやかんやの処理

PIC

AHA

送信処理

ライト直後リード→

AHA

通常のリード→

AAH

PIC

のバグ?

OK

read data

→1

NG

-

(13)

やりました!

でもシリアル経由だと結構時間が

orz

コマンド実行時間の計測

[root@~]# time pepodioctl 0

1

CH0

へのリード

real 0m0.138s

user 0m0.012s

sys 0m0.084s

[root@~]# time pepodioctl 0 1

1

CH0

へのライト

real 0m0.156s

user 0m0.030s

sys 0m0.082s

V0.24

までは

CH0

へのリード

real 0m0.674s

CH0

へのライト

real 0m0.730s

9600b/s

1

文字約

1ms

・・・

1

÷

9600

×

10=0.00104166

・・

write

4

文字、

read:8

文字

read

8

×

1=8ms

write

4

×

1+4(after read)=8ms

実際は文字間

delay

が必要

文字:

5ms

、改行:

5ms

1

文字:

6ms

1

コマンド:

+ 5ms

read

4

文字送信)→

wait

10ms

read

3

文字受信

)=4+10+3

write

4

文字送信)→

wait

10ms

after

read

4

×

6+10+10

(送信)+

3

(受信)

計算上:

read=47ms,write=47ms

実際は

Lockfile

操作等に時間が

(14)

もっと早く、もっとクールにリモートで解決

daemon

pepodiod

コマンド開発

Digital

入力信号を定周期で読み取り

信号変化で該当コマンドを実行

具体的には入力側

DI

low/high

、出力側

DO

off/on

DI:

照明

SW

high

low

・・・

DO:

蛍光灯を点ける

DI:

照明

SW

low

high

・・・

DO:

蛍光灯を消す

DI:

池の水が満杯(フロート

SW

high

low

DO:

パトライトを点灯、

AP:

メールを送信

DI:

トラが脱走(どうにかして検出)

DO:

サイレン鳴動、

AP:

電話をする

DI

:留守中の扉開検出

Web

カメラで動画

etc

(15)

DIO

コアプログラムの完成

pepodioctl

DIO

の読み書きはマルチユーザー

pepodiod

DIO

から

1

秒毎に読み込み入力信号

の変化に合わせたアクションを実行

pepogmail4dio

gamil

経由で

DIO

の入出力操

作と情報を返信

pepogmail4pic

gamil

経由で

USB

接続カメラの

(16)

もっと早く、もっとクールにリモートで解決

フルスクラッチ

フルスクラッチ

簡単操作

Web

インターフェース

jQuery

でルックフィールと操作性

UP

殆どが

shell

スクリプト

distribution

やバージョンに左右されない

bash cgi

6613

ruby-cgi 107

javascript 2009

helper script 1911

epicon C 1934

気がつけば約

12,000

行の

C

とスクリプト群

(17)

必死のパッチ

市販のDIOシリアルボード

9600bps

非同期通信

5v14

本の入力/出力端子

(18)

もっと早く、もっとクールにリモートで解決

必死のパッチ

ソリッドステート

SW

コンセント

BOX

開発

ソリッドステート

SW

コンセント

BOX

内部

DIO

出力

0/5V

AC100V/5A

をオフ

/

オンさせ

る為のソリッドステートスイッチ

内蔵コンセントBOXを開発

2,000

円程度

(19)

リモートハンド USB接 続 FOMA網 64kデジタル通信 or 384kパケット通信

トラが檻を破って脱走したらパトライトを点灯させ電話通知

うさぎが人参を食べたら、人参を補充し

Mail

で通知

•Server

PepoLinux

Vmplayer

PepoLinux+DIO+FOMA=Remote-Hand

シリアル接続

Vmplayer

PepoLinux

シリアル

DIO

ボードで動物

を監視

(20)

もっと早く、もっとクールにリモートで解決 リモートハンド USB接 続 FOMA網 64kデジタル通信 or 384kパケット通信

トラが檻を破って脱走したらパトライトを点灯させ電話通知

うさぎが人参を食べたら、人参を補充し

Mail

で通知

Serverの

ping TimeOut

Mail

と電話で同時通知

うさぎやトラをどうやって認識?→

WEB

カメラで動画を

Mail

PepoLinux

PepoLinux

Vmplayer

Vmplayer

PepoLinux+DIO+FOMA

PepoLinux+DIO+FOMA

=Remote

=Remote

-

-

Hand

Hand

シリアル接続

Vmplayer

PepoLinux

+シ

リアル

DIO

ボードで動物を監

(21)
(22)

もっと早く、もっとクールにリモートで解決

(23)

DIO

の各ポートへ別名設定

出力信号へ別名設定

(24)

もっと早く、もっとクールにリモートで解決

Ajax

で入出力制御とリアル監視

DIO

の出力設定と入力状態

を文字と色でリアル表示

(25)

Google Chrome API

(26)

もっと早く、もっとクールにリモートで解決

入力イベントに対する動作を設定

1入力信号の変化

0→1:

low

high

1→0:

high

low

2イベントの動作を設定

DIOControl2

で別動作を設定

同じイベントで2つの動作

パトライト点灯&電話

(27)

アクションは全部で15種類

出力6本の

High

Low

電話

文字メール

(28)

もっと早く、もっとクールにリモートで解決

Gmail

経由で

DIO

操作

Gmail

経由でキーワードを指定して

DIO

を操作

Gmail

なのでメールサーバ側で特に設定不要

ランプ点灯

/

消灯

入力信号の状態をメール通知

web

カメラの画像をメール送信

登録メールアドレス以外操作禁止

全てのメールアドレス操作許可

(29)
(30)

もっと早く、もっとクールにリモートで解決

(31)

動物監視(ペット)

人感センサー

無線受信器

人感センサー

センサー感知でト

コトコ逃げだす

(32)

もっと早く、もっとクールにリモートで解決

(33)

三都物語やねん、帰って来たよ

osc2011@kobe

osc2011@kyoto

kof2011

(34)

もっと早く、もっとクールにリモートで解決

ところで

Raspberry Pi

(35)

Raspberry Pi

の拡張ボード

Piface

PiFaceとはデジタルI/O拡張ボード

Raspberry

Pi用の入出力8ビットの拡

張ボード

V

リレー×2の出力で

AC100V/DC2

V

A

迄外部スイッチング

(36)

もっと早く、もっとクールにリモートで解決

Raspberry Pi

Piface

Remote-Hand

Raspberry Pi and Case

£29.99

PIFACE

£19.99

Samsung 8GB Debian1:

£

8.33

USB to Micro USB Cable

2m

£

1.66

Royal Mail Airmail

£

10.98

Total:

£

75.94

(37)

リモートハンド USB接 続 FOMA網 64kデジタル通信 or 384kパケット通信

トラが檻を破って脱走したらパトライトを点灯させ電話通知

うさぎが人参を食べたら、人参を補充し

Mail

で通知

PepoLinux

PepoLinux

Raspberry Pi

Piface

=Remote

=Remote

-

-

Hand

Hand

動物を監視

Gamil

連携で外部機器の監視

(38)

もっと早く、もっとクールにリモートで解決

(39)

libpiface

に難あり

pfio.c

patch

pepopiface

コマンドは

piface(Gpio)

を制御する

libpiface

に難あり

pfio_init()

を最初に呼ぶ事に、が呼ぶ都度出力ポート

が初期化される

patch

を作成

../piface/c/src/piface/pfio.c

// spi_write(GPIOA, 0x00); // turn on port A spi_write(IODIRA, 0); // set port A as an output spi_write(IODIRB, 0xFF); // set port B as an input spi_write(GPPUB, 0xFF); // turn on port B pullups // initialise all outputs to 0

// int i;

(40)

もっと早く、もっとクールにリモートで解決

libpiface

を少し

https://docs.google.com/folder/d/0B-UAZ9CyJCLGQjJ3RDlqa2pqaDg/edit?pli=1

pfio_digital_read(pin_number)

Returns the binary value of the specified input pin.

pfio_digital_write(pin_number, value)

Sets the binary value of the specified output pin to the

given value.

pfio_read_input()

Returns the input port information as a list. Index 2

contains the port data (binary status of the input pins).

pfio_read_output()

Returns the output port information as a list. Index 2

contains the port data (binary status of the input pins).

(41)

pepopiface

piface(Gpio)

を制御

# pepopiface** Welcome to pepopiface Version-0.1

Copyright Yamauchi.Isamu compiled:Jul 20 2013 **

usage:pepopiface port:0-8 [0|1] [timer:0-65535ms]

入力

port0

と出力

port0

を接続

# pepopiface 0 1

1 port0

write

# pepopiface 0

1

(42)

もっと早く、もっとクールにリモートで解決

pepopifaced

daemon

定周期で

pepopiface 8

を投げ入力8ポートを監視

たとえば入力ポート0の変化によりコマンドを起動

High

Low

dio0high2low

コマンドを実行

(43)

Raspberry Pi

flash

メモリを酷使

web

アクセス

log

tmpfs

# df

Filesystem

1K-blocks Used Available Use% Mounted on

/dev/root 7533648 3771908 3430628 53% /

devtmpfs

223256 0 223256 0% /dev

tmpfs

223344 0 223344 0% /dev/shm

tmpfs

223344 976 222368 1% /run

tmpfs

223344 0 223344 0% /sys/fs/cgroup

tmpfs

223344 0 223344 0% /tmp

tmpfs

10240 1952 8288 20% /www

(44)

もっと早く、もっとクールにリモートで解決

Raspberry Pi

Piface

それではデモいきます

電気をつけて

飛べ鬼奴?

http://www.youtube.com/watch?v=ku1aRjwkCuI

(45)

ご清聴有難う御座いました

2013.8.3

会議室

B 14:45

頃プレゼン終了予定

残り時間は少ないですがブースも見てね

PepoLinux

(46)

もっと早く、もっとクールにリモートで解決

おしまい

OSC2013_Kansai@Kyoto

2013.8.3

会議室

B 14:00

14:45

Twitter@kujiranodanna

[email protected]

IZAMUKARERA

:くじらのだんな:山内

参照

関連したドキュメント

もっと早く詳しく報告すべきだったのだが、今日初めてフルヤ氏との共同の仕事の悲し

三洋電機株式会社 住友電気工業株式会社 ソニー株式会社 株式会社東芝 日本電気株式会社 パナソニック株式会社 株式会社日立製作所

地図・ナビゲーション 情報検索・ニュース 動画配信 QRコード決済 メッセージングサービス SNS 予定管理・カレンダー オークション・フリマ

基本目標2 一 人 ひとり が いきいきと活 動するに ぎわいのあるま ち づくり.

なお,発電者が再生可能エネルギー特別措置法第 9 条第 3

   遠くに住んでいる、家に入られることに抵抗感があるなどの 療養中の子どもへの直接支援の難しさを、 IT という手段を使えば

7月21日(土) 梁谷 侑未(はりたに ゆみ). きこえない両親のもとに生まれ、中学校までは大阪府立

大気 タービン軸 主蒸気