豆腐とコンソメ

豆腐とコンソメ

もろもろのプログラム勉強記録

1時間くらいでラズパイ3の設定とカメラモジュールの起動確認まで行う

1時間くらいで、ラズパイのインストール、SSH接続、カメラモジュールの起動をやるよ!

以下は、どうでもよい経緯。

ちょっとやりたいことがあって、ラズパイのカメラを起動しようとした。
過去にラズパイを公開鍵認証に設定したことがあったんだけれども、肝心のペアとなる鍵が見つからなくって、ssh接続できない、どうしようとなってしまった。
冷静に考えれば、ssh接続じゃなくってラズパイをディスプレイに接続して起動して、再度鍵を発行すればよかったんだけれども、なぜか再インストールをする選択をしてしまった。

過去記事を参考にしてみたんだけれども、自分にとって微妙に痒いところに手が届かない内容だったので、新しく書くことにした。

用意するもの

  • ラズパイ3 + 電源コード + HDMIケーブル
  • HDMIケーブルがつなげるディスプレイ(テレビとか)
  • マイクロSDカード 32GB (8GBもあれば十分)
  • キーボード・マウス(一時的に使用するだけなので他から流用してもいいい)

  • SDカードに書き込むためのPC

  • カメラモジュール (Raspberry Pi Camera V2)

Raspberry Pi Camera V2

Raspberry Pi Camera V2

ラズパイのOS、Raspbianをダウンロードする(所要時間 20分 ※ネットワーク環境によって幅あり)

今回は、RaspberryPi 3 + 32GBのSDカードを使うのでディスク容量、パフォーマンスもそこそこ余裕がありそう。

なので、設定が簡単なデスクトップ版RASPBIAN STRETCH WITH DESKTOPを選択する。

www.raspberrypi.org


ラズパイのOSイメージを書く (所要時間 8分)

ダウンロードしたzipファイルを解凍して、でてきたimgファイルを選択して、ラズパイ用のSSDに書き込む。

ラズパイ用のSSDをPCとつなぐには、100均で買った謎のUSBにつなぐ機器を使った。

f:id:konoemario:20180219201321j:plain
謎の機器

書き込むの仕方はいろいろあるけれども、毎回使っている書き込み用のアプリ「Etcher」を使ってる。

f:id:konoemario:20180219200154p:plain
OSイメージを書き込み

SSDにOSファイルを書き込んだら、ラズパイにセットして、電源コードにつないで起動する。

このとき、キーボード、マウスもUSB経由でつけて、HDMIケーブルもディスプレイとラズパイに接続しておく。

ディスプレイにラズパイのデスクトップ画面が表示される。


WiFiの設定 (1分)

ラズパイを起動したら、画面右上のアンテナみたいなアイコンで、WiFiの設定を行う。

設定といっても、スマートフォンと同じで、つなぐSSID選択してパスワードを入力するだけ。

f:id:konoemario:20180219201802j:plain
WiFiの設定

デスクトップ版じゃない場合、コンソールから設定がいろいろと必要だけれどもデスクトップ版はすごい簡単。


ログインパスワードを変更する (1分)

必須ではありませんが、やっておいたほうが無難。

ラズパイの左上のアイコンから「Terminal」を起動します。
(画像撮り忘れちゃった)

Terminalで以下のコマンドを叩くことで設定画面を起動します。

ラズパイの設定画面を起動

$ sudo rasip-config

f:id:konoemario:20180219202604p:plain
ラズパイ設定画面

一番上の「Change User Password」を選択して、好きなパスワードを入力します。


ラズパイにリモートで接続できるよう設定する (10分)

ラズパイを毎回ディスプレイに接続して、操作する場合はこのへんの設定は不要になります。
ノートPCからラズパイにリモート接続したい場合のみ、設定しましょう。

パスワード変更と同様に、設定画面を起動します。

ラズパイの設定画面を起動

$ sudo rasip-config

上から5番目の「interfacing option」を選択します。
次の画面の「SSH」を選択すると、有効にするか?と聞かれるのでYESを選択します。

f:id:konoemario:20180219203009p:plain
SSHを有効化

また、その後に再度ターミナルを開いて、以下のコマンドを打ってラズパイのIPを確認しときます。

IPを確認する

$ ifconfig

上記コマンドを打つと、ずらずらとでてくるけでども、以下のwlan0とうのが、ラズパイ3に標準搭載されている無線のNICカードのIPみたい。

以下の例だと、「192.168.1.8」がラズパイのIPになります。

wlan0のIPを控えておく

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.8  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 2408:210:9006:7500:b6e2:cd5b:a921:338f  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::a537:ca1e:f1c3:745e  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:1a:ab:2e  txqueuelen 1000  (Ethernet)
        RX packets 8325  bytes 9798841 (9.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5293  bytes 615893 (601.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


SSHで接続する

自分のPCから、ラズパイに接続します。

MacのTerminalでssh接続

$ ssh pi@192.168.1.10

初めてつなげると、フィンガプリントーやらで本当につなぐの?みたいな確認がでてきますが、問題ないのでYesを入力しちゃいます。


IPアドレスを固定する

こちらも必須ではないのでオプションです。

SSHでつなぐ際に毎回IPアドレスがかわると、どこに繋げていいんだかわからなくなってしまうので、ラズパイのIPアドレスを固定します。

まずは、変更前のIPアドレスをifconfigコマンドで確認しときます。

ifconfig

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.8  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 2408:210:9006:7500:b6e2:cd5b:a921:338f  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::a537:ca1e:f1c3:745e  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:1a:ab:2e  txqueuelen 1000  (Ethernet)
        RX packets 8325  bytes 9798841 (9.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5293  bytes 615893 (601.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

次に、以下のファイルに固定したいIPと、ゲートウェイのIP(私の環境だと、ルーターのIP)やらなんやらを新しく追記します。

今回は「192.168.1.10」をラズパイのIPとします。

/etc/dhcpcd.conf

interface wlan0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
staitc domain_name_servers=192.168.1.1                                      

設定がおわったらラズパイを再起動します。

ラズパイを再起動

$ sudo reboot

再起動が完了したらifconfigを叩いて、wlanについて設定したIPアドレスが振られていることを確認します。

ifconfig

pi@raspberrypi:~ $ ifconfig
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 2408:210:9006:7500:b6e2:cd5b:a921:338f  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::a537:ca1e:f1c3:745e  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:1a:ab:2e  txqueuelen 1000  (Ethernet)
        RX packets 213  bytes 23086 (22.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 206  bytes 31290 (30.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


カメラを接続する (5分)

動画を見た方がわかりやすい!

www.youtube.com


カメラモジュール用のソフトウェアをインストールする (5分)

再度、ラズパイの設定画面を起動します。

ラズパイの設定画面を起動

$ sudo rasip-config

上から5番目の「interfacing option」を選択します。
次の画面の「camera」を選択すると、有効にするか?と聞かれるのでYESを選択します。

これでカメラの使用が有効になりました。

さらに、以下のコマンドをたたくことでカメラをラズパイに認識させます。

カメラを認識させる

$ sudo modprobe bcm2835-v4l2

次に、カメラモジュール用のソフト「MJPG-streamer」をインストールします。

インストールにあたっては、全面的にこちらのサイトの、「動画ストリーミングソフトウェアのインストール」を参考にさせていただきましたので、こちらを参照ください。

WEBカメラで動画ストリーミング

カメラを起動する (1分)

「MJPG-streamer」をインストールしたディレクトリに移動します。
私はホームディレクトリ配下にインストールしました。

ディレクトリに移動

$ cd /home/pi/mjpg-streamer

何も考えずに、以下のコマンドを叩きます。

カメラを起動

sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 320x240 -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p 8080"MJPG Streamer Version: svn rev: 3:172
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 320 x 240
 i: Frames Per Second.: 10
 i: Format............: YUV
 i: JPEG Quality......: 80
 o: www-folder-path...: ./www/
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: enabled

ラズパイに接続しているディスプレイで参照する場合は、ラズパイのブラウザから「localhost:8080」を入力。

別のPCから参照する場合は「ラズパイのIP:8080」でMPJG-Streamerの画面が参照できる。

ここから、Streamを選択することでカメラのリアルタイム映像が参照することができる。

f:id:konoemario:20180219210229p:plain
MPJG-Stremerの画面