はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

65
初めての Raspberry Pi ハンズオン トライポッドワークス 阿部直樹 菊池崇仁 サーバーワークス 赤塚誠二 東北IT物産展2015青森

Transcript of はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Page 1: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

初めての

Raspberry Pi

ハンズオントライポッドワークス 阿部直樹 菊池崇仁

サーバーワークス 赤塚誠二

東北IT物産展2015青森

Page 2: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

本日の内容 Raspberry Piの紹介

Raspberry Piを使うまで

Raspberry PiでLチカ

シェルスクリプトでLチカ

PythonでLチカ

Raspberry PiにUSBカメラを使う

USBカメラから画像を撮影する

USBカメラを使ってストリーミングサーバを作る

2015/08/29 東北IT物産展2015青森 2

Page 3: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

諸注意 本ハンズオン内容は最新版のRaspbian(2015-05-05-raspbian-

wheezy)に合わせて作成しております

これより古いバージョンのRaspbianをお使いの方は異なる部分が

あるかもしれないので、その場合はスタッフにお申し付けください

数量に限りがありますが、貸し出し用Raspberry Piを用意して

います

申込時に「貸し出し希望」と書いた方に優先してお貸し出しします

相当数足りなくなった場合は参加者同士で共有する形式に変更する

ので、ご了承ください

2015/08/29 東北IT物産展2015青森 3

Page 4: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

2015/08/29 東北IT物産展2015青森 4

Raspberry Piの紹介

Page 5: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Pi ってなに? 英国ラズベリーパイ財団が開発したワンボードコンピュータ

パソコンの基本的な動作の理解と、軽量言語を用いたプログラミング

スキルの習得を促進することが目的

英国はラズパイのような教育用コンピュータの開発が盛ん

標準OSはLinuxを採用

最近、microsoftもラズパイ用Windows(Windows 10 IoT)を出しました

モデルによって差があるが、$20 ~ $35という安価な値段で購入可能

標準のLinuxが動作するパソコンとしては破格の値段

2015/08/29 東北IT物産展2015青森 5

Page 6: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

各モデル紹介(現行品)

2015/08/29 東北IT物産展2015青森 6

Raspberry Pi 2(Model B)

Raspberry Pi(Model B+)

Raspberry Pi(Model A+)

Page 7: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

各モデル紹介(旧製品)

2015/08/29 東北IT物産展2015青森 7

Raspberry Pi(Model B)

Raspberry Pi(Model A)

Page 8: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

各部紹介

2015/08/29 東北IT物産展2015青森 8

CPUGPU

(兼メモリ)

LAN

HDMI オーディオ電源

GPIO

USB

USB

SDカードスロット

Page 9: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Pi と Arduino の違い一言で説明すると、パソコンとマイコンの違い

2015/08/29 東北IT物産展2015青森 9

Raspberry Pi Arduino

高 ハードウェアスペック 低

あり OSの有無 なし

USB, LAN, HDMI, オーディオほか

搭載インタフェース GPIOのみ

高 消費電力 低

低 リアルタイム性 高

パソコン

マイコン

Page 10: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piの入手方法各種電子部品・半導体パーツ取扱店で買うことができます

以下講師おすすめのお店

アールエスコンポーネンツ

http://jp.rs-online.com/web/generalDisplay.html?id=raspberrypi

スイッチサイエンス

https://www.switch-science.com/catalog/list/280/

マルツパーツ

http://www.marutsu.co.jp/GoodsListNavi.jsp?q=raspberry+pi

2015/08/29 東北IT物産展2015青森 10

Page 11: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

2015/08/29 東北IT物産展2015青森 11

Raspberry Piを使うまで

Page 12: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piを使うのに必要な周辺機器 USBキーボード

USBマウス

LANケーブル

ディスプレイ(HDMI入力対応)

SDカード(4GB以上)

スマートフォン用ACアダプタ(microUSB出力のもの)

1.2A以上の出力に対応したものを推奨

2015/08/29 東北IT物産展2015青森 12

Page 13: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piを動かすまで OSイメージファイルをダウンロード

OSイメージファイルをSDカードに書き込む

SDカードをRaspberry Piに挿入

キーボード・マウス・ディスプレイ・ACアダプタをRaspberry Piに装着

ACアダプタをコンセントに差し込む

(Raspberry Piの電源が自動で入ります)

Raspberry Pi 本体のLEDが点灯していること、Raspberry Piから

ディスプレイにブートシーケンスの表示がされていることを確認

画面に従って初期設定を行う

2015/08/29 東北IT物産展2015青森 13

Page 14: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piをネットワークにつなぐ(有線LANの場合) LANケーブルを用意する

LANケーブルをRaspberry PiのLANポートに差し込む

LANケーブルの反対側をハブもしくはルータの

空きポートに差し込む

LANポートもしくはRaspberry Pi本体のアクセスランプが

点灯することを確認

GUIもしくはコマンドでIPアドレスが割り振られていることを確認

コマンドで行う場合は ifconfig コマンドより確認する

2015/08/29 東北IT物産展2015青森 14

Page 15: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piをネットワークにつなぐ(無線LANの場合) 接続するアクセスポイントの名前とパスワードをメモしておく

USB接続の無線LANアダプタを用意する

製品によっては対応していないものもあるので注意!

無線LANアダプタをRaspberry PiのUSBポートに差し込む

無線LANアダプタがRaspberry Piに認識されたかどうかを確かめる

CUI: lsusb コマンドを実行する

→ 一番最後の行にそれっぽいのが表示されるはず

2015/08/29 東北IT物産展2015青森 15

Page 16: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piをネットワークにつなぐ(無線LANの場合) 無線LANアダプタが認識された状態の例

(一番下の行が無線LANアダプタ)

2015/08/29 東北IT物産展2015青森 16

pi@raspberrypi ~ $ lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]

Page 17: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piをネットワークにつなぐ(無線LANの場合) 無線LANの設定を行う

→ CUIで行う場合は設定ファイルを編集することで設定を行う

(/etc/wpa_supplicant/wpa_supplicant.conf)

2015/08/29 東北IT物産展2015青森 17

% sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

設定ファイルにアクセスポイントのパスワードを直接書き込みたくない場合は、wpa_passphase コマンドを実行し、暗号化したパスワードを出力しておくと○

% wpa_passphase <アクセスポイント名> <パスワード>

Page 18: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piをネットワークにつなぐ(無線LANの場合) 無線LAN設定例

2015/08/29 東北IT物産展2015青森 18

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid=(アクセスポイント名) proto=WPA2 key_mgmt=WPA-PSK psk=(パスワード)

}

Page 19: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piをネットワークにつなぐ(無線LANの場合) 無線インタフェースを一度終了させる

無線インタフェースを再度起動させる

→ このタイミングで設定の再読込が行われる

GUIもしくはコマンドでIPアドレスが割り振られていることを確認

コマンドで行う場合は ifconfig コマンドより確認する

2015/08/29 東北IT物産展2015青森 19

sudo ifdown wlan0

sudo ifup wlan0

Page 20: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry PiにおすすめのUSB無線LANアダプタいずれもRaspberry Piでの動作実績が豊富で、1000円前後で購入可能

WLI-UC-GNME(バッファロー、左下)

http://buffalo.jp/product/wireless-lan/client/wli-uc-gnm/

GW-USNANO2(プラネックス、右下)

https://www.planex.co.jp/product/wireless/gw-usnano2/

2015/08/29 東北IT物産展2015青森 20

Page 21: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

余談 Raspberry Pi公式の無線LANアダプタが発売されたそうです

https://www.raspberrypi.org/products/usb-wifi-dongle/

https://www.adafruit.com/products/2638

2015/08/29 東北IT物産展2015青森 21

※ 技適を通過していないので、日本国内では使えません

Page 22: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piに他のパソコンからSSHで接続する Raspberry Piがネットワークに接続されていることを確認する

SSHコマンドもしくはSSHクライアントでRaspberry Piに接続する

※ 以下、初期設定時のログイン設定

IPアドレス: 自身のRaspberry Piのアドレス

ポート番号: 22

ログインID: pi

パスワード: raspberry

2015/08/29 東北IT物産展2015青森 22

Page 23: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

2015/08/29 東北IT物産展2015青森 23

Raspberry PiでLチカ

Page 24: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

”Lチカ” ってなに?

2015/08/29 東北IT物産展2015青森 24

“Lチカとは、LEDチカチカの略である。

Arduino等のマイコン工作を始めるとき、最初にLEDを点滅(チカチカ)させるプログラムで試すことが多いことから「LEDチカチカ」→「Lチカ」と省略して呼ばれるようになった。

PC上でプログラミング言語を使う場合であれば最初に「Hello World」を表示させるプログラムの例が示されることが多いが、ディスプレイがなければ Hello World という文字を表示することすらできないので、代わりにLEDをつないでチカチカと点滅させて動作確認することが多い。”

引用: ニコニコ大百科http://dic.nicovideo.jp/a/l%E3%83%81%E3%82%AB

Page 25: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry PiでLチカをするには

2015/08/29 東北IT物産展2015青森 25

GPIOに各部品を取り付けて、プログラムからLEDを点滅(チカチカ)させます

Page 26: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Lチカをするために必要なもの ブレッドボード: 1個

ジャンパーワイヤ(オス-オス): 1個

ジャンパーワイヤ(オス-メス): 2個

LED(赤色): 1個

抵抗: 1個

2015/08/29 東北IT物産展2015青森 26

Page 27: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

“GPIO” とは “General Purpose Input Output” の略

“1” もしくは “0” のデジタル信号のやりとりを直接行う

インタフェース

ここでいう“1”と“0”は電圧の高低のこと

プログラムからはピン1本単位で入力・出力のコントロールを行う

ピンから出力される電圧ないし入力可能電圧はハードによって異なる

GPIOで入力可能な電圧以上の電圧を加えた場合、

最悪Raspberry Piが破損する可能性があるので注意!

2015/08/29 東北IT物産展2015青森 27

Page 28: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry PiのGPIO現行品と旧モデルでピン配置が多少異なるので注意!

2015/08/29 東北IT物産展2015青森 28

現行品

旧モデル

Page 29: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry Piに部品を配置しよう出力に18番ピン、グランドにその右隣を使用します

2015/08/29 東北IT物産展2015青森 29

Page 30: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

ブレッドボードの使い方

2015/08/29 東北IT物産展2015青森 30

A B C D左図のブレッドボードはAからDの

四つの区画に区切られる。

AとDは赤いラインの列と青いライ

ンの列の方向に従って導通している。

BとCの場所に多数の部品を置くこ

とから、AとDは電源もしくはグラ

ンドに直接繋ぐことがほとんど。

Page 31: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

ブレッドボードの使い方

2015/08/29 東北IT物産展2015青森 31

A B C DBとCは行番号ごとにA~E列(F~J

列)が導通している。

行と行の間は絶縁されているので、

接続する場合はジャンパーワイヤで

繋ぐ必要がある。

Page 32: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

部品設置の際の注意 部品のプラスとマイナス(極性)を間違えないこと

LEDにもアノードとカソードという極性があるので注意

(足が長い方がアノード、足が短い方がカソード)

抵抗はLEDに過度な電流が流れないように、LEDの手前に設置する

LEDが許容できる電流(定格電流といいます)以上の電流を流した場合、

部品が破損する可能性があります

2015/08/29 東北IT物産展2015青森 32

Page 33: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

シェルスクリプトでLチカを行う18番ピンを出力として使用することを宣言

2015/08/29 東北IT物産展2015青森 33

% echo 18 > /sys/class/gpio/export

上記コマンドを実行することにより、/sys/class/gpio/ ディレクトリ以下に指定したピン番号のデバイスフォルダが生成されます

Page 34: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

シェルスクリプトでLチカを行う18番ピンを出力に設定

2015/08/29 東北IT物産展2015青森 34

% echo out > /sys/class/gpio/gpio18/direction

上記コマンドを実行することにより、入出力の方向を決定します。上記のコマンドの例では “out” を書き込んで出力ピンにしていますが、“in” を書き込むと入力ピンになります。

Page 35: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

シェルスクリプトでLチカを行う18番ピンに “1” を出力( = LED点灯)

2015/08/29 東北IT物産展2015青森 35

% echo 1 > /sys/class/gpio/gpio18/value

上記コマンドを実行することにより、指定したGPIOの電圧レベルを高くします。事前に “0” を出力していた場合は上書きされます。

Page 36: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

シェルスクリプトでLチカを行う18番ピンに “0” を出力( = LED消灯)

2015/08/29 東北IT物産展2015青森 36

% echo 0 > /sys/class/gpio/gpio18/value

上記コマンドを実行することにより、指定したGPIOの電圧レベルを低くします。事前に “1” を出力していた場合は上書きされます。

Page 37: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Python でLチカを行うエディタを起動し、プログラムの作成を開始する

2015/08/29 東北IT物産展2015青森 37

$ vi ./led_sample.py

今回作成するプログラムの名前は “led_sample.py” とします。Pythonで作成する理由は、Raspberry Piに標準でインストールされているプログラミング言語の一つだからです。(他にはScratchやJavaなどがあらかじめインストールされています)

Page 38: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Python でLチカを行う使用するモジュールの読み込み

2015/08/29 東北IT物産展2015青森 38

#!/bin/python

import RPi.GPIO as GPIOimport time

はじめに使用する各種モジュールの読み込みを行います。GPIOを使うためRaspberry Piに標準で用意されているRPiモジュールからGPIOパッケージと、sleep文を使用するのに必要なtimeモジュールの二つを読み込みます。

Page 39: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Python でLチカを行うおまじないの二行を加える

2015/08/29 東北IT物産展2015青森 39

GPIO.setmode(GPIO.BCM)GPIO.setwarning(False)

次にGPIOを使うためのおまじないとして上の二行をプログラムに書き加えます。GPIO.setmode() では引数に指定したGPIOのピンアサインを読み込み、GPIO.setwarning() では引数にfalseを与えることでGPIOを使う上での警告を無効化しています。

Page 40: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Python でLチカを行う使用するGPIOのピンの状態を決定する

2015/08/29 東北IT物産展2015青森 40

port = 18GPIO.setup(port, GPIO.OUT)

GPIO.setup() では引数にポート番号と入出力の方法を与えて、シェルスクリプトで行ったようなポートの使用と入出力の方向の定義を行います。ポート番号は変数にしていますが、直値でもOKです。複数本のピンに対して設定を行う場合は、ピンの本数ぶんの定義を書く必要があります。

Page 41: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Python でLチカを行うLEDを点灯・消灯させるループを作成する

2015/08/29 東北IT物産展2015青森 41

while True:GPIO.output(port, 1)time.sleep(1)GPIO.output(port, 0)time.sleep(1)

GPIO.output() では引数にポート番号と出力する値を与えて、ポートの状態を変更することができます。出力に1を指定すると電圧が高くなり、0を指定すると電圧が低くなります。time.sleep() では引数に指定した秒数ぶん、プログラムが休止します。

Page 42: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Python でLチカを行う Pythonプログラム記載例

2015/08/29 東北IT物産展2015青森 42

#!/bin/pythonimport RPi.GPIO as GPIOimport time

GPIO.setmode(BCM)GPIO.setwarning(False)

port = 18GPIO.setup(port, GPIO.OUT)

while True:GPIO.output(port, 1)time.sleep(1)GPIO.output(port, 0)time.sleep(1)

Page 43: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Python でLチカを行うプログラムへの実行権限の付与

2015/08/29 東北IT物産展2015青森 43

$ chmod +x led_sample.py

作成したPythonファイルは実行権限を持っていないため、chmodコマンドで実行権限を与えてやります。

Page 44: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Python でLチカを行うプログラムを実行する

2015/08/29 東北IT物産展2015青森 44

$ python ./led_sample.py

実行権限を与えたプログラムを実行します。作成したプログラムは任意の終了手段を持たないため、Pythonのプロセスを Ctrl+C で強制的に終了させる必要があります。

Page 45: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

2015/08/29 東北IT物産展2015青森 45

Raspberry PiにUSBカメラを繋ぐ

Page 46: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry PiにUSBカメラを繋ぐ USBカメラを用意する

USBカメラをRaspberry Piの空いているUSBポートに繋ぐ

USBカメラがRaspberry Piに認識されたかどうかを確かめる

CUI: lsusb コマンドを実行する

2015/08/29 東北IT物産展2015青森 46

※ 認識しないカメラも中にはあるので注意

Page 47: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry PiにUSBカメラを繋ぐ USBカメラが認識された状態の例

(一番下の行がUSBカメラ)

2015/08/29 東北IT物産展2015青森 47

pi@raspberrypi ~ $ lsusbBus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.Bus 001 Device 004: ID 045e:076d Microsoft Corp. LifeCam HD-5000

Page 48: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

Raspberry PiにUSBカメラを繋ぐ 認識されたカメラがRaspberry Piから使用できる場合のログ

(USB Video Classのドライバが読み込まれたときのログ)

2015/08/29 東北IT物産展2015青森 48

pi@raspberrypi ~ $ sudo cat /var/log/message | grep uvcvideo(省略)Aug 28 10:45:35 raspberrypi kernel: [ 1085.793369] uvcvideo: Found UVC 1.00 device MicrosoftR LifeCam HD-5000 (045e:076d)

Page 49: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

手を動かす前にRaspberry Piのパッケージリストを更新する

2015/08/29 東北IT物産展2015青森 49

$ sudo apt-get update

今回使用しているRaspbian OSはDenian Linuxの派生なので、Debian LinuxやUbuntuなどと同じく、aptやdpkgによるパッケージ管理が可能です。

Page 50: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラから画像を撮影する fswebcamコマンドをインストールする

2015/08/29 東北IT物産展2015青森 50

$ sudo apt-get install fswebcam

Raspberry Piに標準でインストールされているraspistillやraspiyuvコマンドは純正カメラモジュールでしか動かないので、別途コマンドをインストールする必要がある。

Page 51: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラから画像を撮影する fswebcamコマンドから静止画を撮影する

2015/08/29 東北IT物産展2015青森 51

$ fswebcam ./photo.jpg

上記のコマンドを実行すると、カレントディレクトリに384×288のバナー付きJPEGファイルが生成されます。生成したJPEGファイルはRaspberry PiのGUIで表示したり、FTPクライアント経由で自身のパソコンにダウンロードして確認してください。

Page 52: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラから画像を撮影する 撮影した静止画の例

2015/08/29 東北IT物産展2015青森 52

Page 53: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラから画像を撮影する撮影する静止画の解像度を上げてみる

2015/08/29 東北IT物産展2015青森 53

$ fswebcam –r 1280x720 ./photo2.jpg

“-r”(もしくは “--resolution”)オプションをつけてコマンドを実行すると、指定した解像度の静止画を撮影することができます。撮影可能な解像度はUSBカメラによって異なるので注意が必要です。

Page 54: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラから画像を撮影するバナーを消してみる

2015/08/29 東北IT物産展2015青森 54

$ fswebcam –no-banner ./photo3.jpg

fswebcamコマンドを実行した際に標準で付いてくるバナーは“--no-banner” オプションで消すことができます。

Page 55: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラから画像を撮影する回転した画像を取得する

2015/08/29 東北IT物産展2015青森 55

$ fswebcam –rotate 90 ./photo4.jpg

“-rotate” オプションをつけてコマンドを実行すると、指定した角度に回転した静止画を撮影することができます。指定可能な角度は0、90、180、270の4種類です。

Page 56: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラを使ってストリーミングサーバを作るmotionコマンドをインストールする

2015/08/29 東北IT物産展2015青森 56

$ sudo apt-get install motion

Raspberry Piに標準でインストールされているraspividコマンドは純正カメラモジュールでしか動かないので、別途コマンドをインストールする必要がある。

Page 57: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラを使ってストリーミングサーバを作る設定ファイルを編集する

2015/08/29 東北IT物産展2015青森 57

$ sudo vi /etc/motion/motion.conf

設定ファイルは一般ユーザ権限では編集ができないので、管理者権限で編集を行う。

Page 58: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラを使ってストリーミングサーバを作るストリーミング映像の幅を変更する(70行目)

ストリーミング映像の高さを変更する(73行目)

2015/08/29 東北IT物産展2015青森 58

width 640

height 480

Page 59: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラを使ってストリーミングサーバを作る動体検知による撮影をオフ (227行目)

→ 常時撮影をオン

ffmpegによるエンコードをオフ(247行目)

2015/08/29 東北IT物産展2015青森 59

output_normal off

ffmpeg_cap_new off

Page 60: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラを使ってストリーミングサーバを作るUSBカメラの画質を最高にする(403行目)

ローカルホスト以外のホストにもストリーミング配信を許可(413行目)

2015/08/29 東北IT物産展2015青森 60

webcam_quality 100

webcam_localhost off

Page 61: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラを使ってストリーミングサーバを作るローカルホスト以外からのコントロールページの

アクセスを許可(429行目)

2015/08/29 東北IT物産展2015青森 61

control_localhost off

Page 62: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラを使ってストリーミングサーバを作るmotionコマンドを実行する

2015/08/29 東北IT物産展2015青森 62

$ sudo motion

もし起動時に “pidファイルが作れない” といった主旨のメッセージが表示されたら、以下のコマンドを実行してから再度motionコマンドを実行します。

$ sudo mkdir /var/run/motion

(設定ファイルを読み込むために管理者権限で実行します)

Page 63: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラを使ってストリーミングサーバを作るストリーミングの模様を確認する

http://(Raspberry PiのURL):8081

ストリーミングサーバの設定を変更する

http://(Raspberry PiのURL):8080

2015/08/29 東北IT物産展2015青森 63

Page 64: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

USBカメラから画像を撮影する ストリーミング配信中の例

2015/08/29 東北IT物産展2015青森 64

Page 65: はじめてのRaspberry Pi ハンズオン@東北IT物産展2015 in 青森

本日の資料

2015/08/29 東北IT物産展2015青森 65

https://github.com/takagerbera/Raspberry_Pi_HandsOn_Sendai_02

本日の内容は以下のリポジトリにアップロードしてあります

(このスライドも終了後、Slideshareにアップロード予定です)