Raspberry Pi 3 Model Bのセットアップ

2016.11.25

最新モデルを検討する

イベント出展を目的とした自社プロジェクトで、ちょっとしたアミューズメント機器を作ることになったのですが、その中でRaspberry Pi 3 Model Bを使う機会がありましたのでセットアップ手順をまとめてみました。

以前に別のプロジェクトでRaspberry Pi 2を使おうか検討したことがあったのですが、その時は充分なパフォーマンスが得られず泣く泣くPCにリプレイスしましたが、「最新モデルは大分性能が上がったらしい」という話を聞いての再チャレンジです。

デザインや仕様を設計に落とし込んでいく中で機能的に以下の条件を満たす必要がでてきました。

  • OpenCVがある程度のパフォーマンスで動作する
  • カメラが使える
  • シリアルが使える
  • OSCが使える
  • httpが使える
  • Nodeが動く

画像処理とか大丈夫かなーと少し不安でしたが、今回の企画においては充分なパフォーマンスと信頼性をもって動作してくれました。

ちなみに今年の企画は「MONEY COLOSSEUM」というお金でバトルする新感覚の格闘ゲームで、先日開催されたTDW2016とdotFesに出展させていただきました。

必要な機材

とりあえずセットアップに必要な機材は以下です。
モノにもよりますが、おおよそ15000円~20000円くらいで揃えることができます。
※作業用PCとディスプレイは除いて

  • Raspberry Pi 3 Model B×1
  • microSD(8GB)×1
  • Raspberry Pi用 カメラモジュール×1
  • USBケーブルタイプB×1(電源供給用)
  • USB ACアダプター×1(電源供給用)
  • USBキーボード×1
  • USBマウス×1
  • HDMIケーブル×1
  • HDMI対応のディスプレイ×1
  • LANケーブル×1
  • webに接続可能なネットワーク
  • 作業用PC×1

※今回作業用PCはwindowsを使用しました。

OSインストール

1.microSDフォーマット

SDFormatterをDLしてフォーマット実行

2.OSファイルDL

RASPBIAN JESSIE(GUIあり版)

3.OSファイルを変換してインストール

DLしたOSはイメージファイル形式でそのままではインストールできないので、DD for Windowsを使ってインストールします。
ディスク選択 → microSDのドライブを選択 – ファイル選択 → DLしたイメージファイル – 書込

起動

用意した機材を配線して電源を入れるだけで簡単です。
各種ツールやライブラリのインストールにネット環境が必須となります。
今回は有線LANでセットアップしています。

1.配線

電源以外(キーボード、マウス、ディスプレイ、LAN)をRaspberry Piに繋ぎます。

2.電源投入

全ての配線が終わったら電源をさします。
電源が入ると自動でOSが起動して各種デバイスの認識が開始されます。
電源を入れる前に配線しておかないとデバイスが認識されないことがあるので注意です。

基本設定

OSが起動したらGUIがディスプレイに表示されます。
初期状態では各種ツールの設定やバージョンが古かったりしますので、適宜設定を行っていきます。

1.vi設定

デフォルトだとvi互換モードで動くようになっており、方向キーが「ABCD」になったり、Insertモードにならなかったりとめちゃくちゃです。
なので、vimモードに変更します。


2.apt-getの更新

各種ツールはapt-getでインストールしていきますので、apt-get自体を最新版に更新します。


3.ファームウェアアップデート

Raspberry Piの基本機能をアップデートしておきます。
※デフォルトだとカメラモジュールがコマンドラインで操作できない状態になってしまっています。


4.OS各種設定

OSの各種設定項目のインターフェースは以下で呼び出すことができます。


以下の設定を適宜行います。

  • timezone設定(Asia → Tokyo)
  • locale設定(ja_JP.UTF-8 UTF-8)
  • keybord設定(Generic 105-Key(Intel) PC)
  • カメラ設定(6 Enable Camera Enable this Pi to work with the R → Yes)

設定したらOSを再起動します。

カメラ接続確認

以下を実行して「supported=1 detected=1」が表示されれば利用可能です。


どちらかが0になっている場合は、OS設定を確認するか、カメラモジュールがしっかりコネクタに刺さっているかを確認してください。

ここまででRaspberry Pi自体の基本設定は一通り完了です。

ここからは必要な各種ツールをインストールしていきます。

Gitインストール

nvmを入れる際にGitを使うのでインストールしておきます。

Nodeインストール

複数バージョンを扱うことの多いNodeですので、nvm配下にインストールしていきたいと思います。
一旦デフォルトでインストールされているNodeを削除して、nvm経由でインストールしていきます。

1.不要なバージョンのnodeを削除

※raspbianにはインストールされてないっぽいですが、一応。

2.nvmインストール

※pi user用

※root user用

3.nvmでnodeインストール


4.nodeバージョン切り替え


node_module

各種node_moduleをインストールしていきます。
package.jsonは以下です。
※Nodeのバージョンは0.12.7を使用しました。

[package.json]

serialportのインストールでエラーになってしまう場合は、コンパイラのバージョンが古いか、npmを実行するユーザーの権限が弱い可能性がありますので、エラーの内容を確認しつつ以下を実行します。

gccとg++が古くてmakeで落ちる場合

 

rootのパーミッションエラーの場合

OpenCV

C++&OpenCVの環境を構築していきます。
今回は作業時点で最新の3.1.0でセットアップしています。

1.依存ライブラリインストール


2.OpenCVインストール

本体をダウンロードして展開します。


拡張モジュールをダウンロードして展開します。


4.インストール

なるべる速く処理させたいので、並列処理指定は「4」にしました。
原因は不明ですが、インストール中に落ちてしまうことがありました。
エラーになるケースもまれにありますが、そのままもう一度実行すると解決する場合があります。
スリープ状態になるとエラーになる気がしたので、時々マウスを触っていたほうがよさそうです。
※もしかしたら並列処理指定は「4」だとリソースを使いすぎなのかもしれませんので適宜調整ください。


5.raspicam_cvインストール

カメラモジュールをOpenCVで操作するためのライブラリをインストールします。


MakefileにはOpenCVのインストール先を指定している箇所があります。
OpenCVのインストール先を確認して適宜変更します。


ビルドできたら、生成されたlibraspicamcv.soを/usr/lib以下にコピーしておきます。
ldconfigを更新すれば見つけにいくはずなんですが、ちょっとはまったので、時間優先ですでにパスの通っている/usr/lib以下にコピーして解決しました。

cvRoundの参照エラーとなる場合は諸々ライブラリをインストールしてmakeしなおすと解決する場合があります。

IP固定

今回はOSCを利用する関係上ローカルネットワーク上でIP指定する必要がありましたので、最後にIPを固定しました。
設定ファイルを更新したらOSを再起動します。

まとめ

今回のセットアップで、以下の機能のデプロイができました。

  • OpenCVのビルド&実行環境
  • カメラモジュール
  • Node

Raspberry Pi 2の時は各操作の動作含め遅いなーといった状況でしたが、かなり性能アップしているなといった印象でした。
もちろん普通のPCより性能は劣りますが、簡単な画像認識系のコンテンツやIoT系デバイスのモック開発、イベント装置に利用する簡易なPCとしては充分な性能があると思います。

電子工作用のインターフェースやBluetoothなど今回利用しなかった機能もまだまだたくさんありますので、引き続き調査していきたいと思います。