伊勢ギークフェアへの出展も兼ねて、Raspberry Pi Zero +カメラで遊んでみました。
LINEのボットに写真をお願いすると、Raspberry Pi (以下、ラズパイと呼びます)がカメラで撮って、 LINE に投げ返してくれるというものです。
ちょっと長いですが、自分用のメモとして書いておきます。
ラズパイの購入
今回、ラズパイを触るのが初めてになります。なので、まずはラズパイを買うところからになります。
一口にラズパイといっても、いろいろと種類があります。
なるべく安くてお手軽なもの、ということで、 Raspberry Pi Zero W という、小型の WiFi 付のモデルを選びました。 本体だけだと、1000円強とお安い!
とはいえ、初めて触るので、遊ぶのに必要なものなどをいろいろと買い揃えないといけません。そこで、KSY さんで下記のキットとカメラモジュールを購入しました。
本体はともかく、カメラモジュールがいい値段したりして、予想外に費用がかかりました。まあ、2台目からはいろいろと流用できそうなので、お安く遊べるかな?
セットアップ
さて、注文後しばらくすると、ラズパイが到着しました。
どこから手を付ければよいのか全然わからないので、ざっと、ネットを調べると、下記の記事などがありました。
http://www.feijoa.jp/laboratory/raspberrypi/firstMeetWithPi/
SDカードを指して、ディスプレ、キーボード、マウスをつなげて、電源入れればよいようです。
幸い、今回購入したキットは、SDカードにOS書き込み済みだったので、OSをSDカードに書き込む手間は不要でした。
カメラモジュールはいったん置いておいて、まずは本体を起動させてみます。
さっそくやってみます。
今回のキットのSDカードには、 NOOBS というOSインストーラが書き込まれています。 なので、最初の電源起動後、こんなOS選択画面が表示されます。
ここで、Raspbian を選択すると、
Raspbian のインストールが始まります。
こんな感じです。正確には覚えてませんが、それなりに時間がかかりました(10分~数10分ぐらいだったか?1時間はかかってなかったように思います)。
無事にセットアップが終わると、
Raspbianのデスクトップが立ち上がります。
画面の指示に従って、設定項目を入れていきます。 問題なく、すべての項目のセットアップが終わると、無事にOSが立ち上がる状態になります。
トラブル1:キーボードが使えない
実は、OS起動後のセットアップ中にいくつかトラブルがありました。
セットアップ中に、パスワードの変更を求められるのですが、USBハブ経由でキーボードを接続していたのに、なんとキーボードが認識されません。
状況を整理すると、
- 家に落ちていた古いUSBハブを使った
- これに、マウスとキーボードを接続
- マウスは認識されるけど、キーボードは認識されない
- USB ハブにキーボードのみにしても認識されないのは同じ
- USB ハブを外して、キーボード直付けなら認識される
という状態でした。
慌ててネットを探すと、似たような話がありました。
Raspberry Pi Zero 関連 まとめ & 備忘録 | 日々のできごと
どうも、OTG がキーワードになりそうです。 とはいえ、購入したキットについていた、micro USB -> USB A の変換ケーブルはOTG対応になっています。なので、本当なら 普通の USBハブでも認識されて良さそうなものですが、ちょっと不思議です。
まあ、いつのかわからんぐらい古いUSBハブだったので、改めて新しいUSBハブを購入して試したところ、問題なく認識されるようになりました。
ちなみに買ったのはこれでした。
エレコム USB2.0 ハブ 4ポート バスパワー Nintendo Switch動作確認済 ブラック U2H-SN4NBBK
- 発売日: 2016/07/23
- メディア: Personal Computers
トラブル2:USBハブを指すと再起動する
上記のトラブル1を調べる際に、あるUSBハブを指すと、ラズパイが再起動するという現象がありました。
こちらも最初は原因がわからず困ったのですが、よくよく調べてみると理由は電源容量不足でした。
Zero WHにUSBハブを挿すと再起動されてしまいます - Raspberry Pi Forums
ハードウェアは難しいですね。
ちなみに、OSインストール後に自動でスタートするセットアップ中にこれらのトラブルは起きたのですが、途中で再起動しても 最初からセットアップがやり直されたので、大きな問題も起こりませんでした。
トラブル3:アップデートに失敗
セットアップ作業の最後でアップデートがかかるのですが、なぜかアップデートに失敗していました。
セットアップ完了後、改めて、
sudo raspi-config
を呼び出して、再度アップデートを試しても同じ結果でした。
これには、下記の記事を参考に、
Raspbianのsudo apt-get updateが失敗したら試したい解決方法
sudo apt-get update --allow-releaseinfo-change
とすればエラーを回避できました。
ちなみに、df -h でSDカードの空き容量を調べてみると、残りが約 800MB だったので、 このあといろいろとインストールすることも考え、一旦保留としました。
カメラ接続
OSのセットアップが終わったら、いったんシャットダウンして、カメラモジュールを接続します。
カメラモジュールをケースから出すとこんな感じです。
ちなみに、中央の白い真ん中に穴の開いたのは何だろうか?と思っていたのですが、後日、ピント調節用の治具だとわかりました。
- Raspberry Pi カメラモジュール用 レンズアタッチメント - スイッチサイエンス
- 結局、ラズパイ公式カメラモジュールを買った - 今日も微速転進
- ラズパイの公式カメラモジュール v2.1とv1.3の画像比較テスト
ラズパイzeroの公式ケースには、カメラモジュール用のケーブルが付属しています。
上から2つ目の赤いケールに入っている短いフラットケーブルですね。
さて、これを実際どうやってカメラモジュールにつけるんだろうか?と少し考えてしまいました。
ま、困ったら調べようということで、下記の記事を見つけて、これを参考にケーブルを差し替えました。
第43回「Raspberry Pi Zero V1.3+カメラモジュールでミニ定点カメラを作ろう!」 | Device Plus - デバプラ
ケーブルはコネクタに刺さった状態で固定(というより抑えてるような感じ?)されているだけのようで、
黒いコネクタの両端を基盤側から外側に押し出すようにすると、コネクタが外れて、
ケーブルを簡単に抜くことができました。
そうしたら、先ほどの公式ケースに付属していた短いケーブルに差し替えて、
再度黒いコネクタを閉じれば終わりです。
ぶきっちょな私でも出来た!
続いて、同じ要領で本体側にもケーブルを接続します。 黒いコネクタを外して、
問題なくケーブルが接続できれば、ハード的な作業は完了です。
次は、ラズパイzeroの電源を入れて、カメラの設定をします。
カメラの有効化
ハードウェアの取り付け作業が終われば、OS側でカメラを有効にするのは簡単です。
下記の記事などを参考にして、
$ sudo raspi-config
を起動して、カメラを選択して有効化します。
試し撮り
Raspbianにはカメラでの撮影用のコマンドが用意されています。
$ raspisitll -o test.jpg
とコマンドをたたいて、問題なく画像が取得できれば、OKです。
ちなみに、何もパラメータを指定しないと、カメラの解像度(3280 × 2464 px)のサイズになります。
幅と高さを指定する場合は、
$ raspisitll -w 640 -h 480 -o test.png
とすると、指定したサイズになります。
詳しくは、公式ドキュメントなどを参照してください。
Raspberry Pi Camera Module - Raspberry Pi Documentation
その他の設定(と確認)
アプリの開発に取り組む前に、いくつかの設定と確認をやっておきます。
SSH と VNC を有効化
先ほどの raspi-config をもう一度呼び出して、SSHとVNCを有効にしておきます。
VNC は接続元のほうにも、VNC Viewer を入れておきます。
Download VNC Viewer | VNC® Connect
なお、下記記事のように、VNCで接続する際の解像度を指定することもできます。
Raspberry PiにVNCで接続して操作する - Qiita
スクリーンショット
ラズパイでスクリーンショットを撮るには、scrot コマンドを使えばよいようです。
Raspberry Piの環境を整える。 - colorful life generator
これで、OSとしてのセットアップが一通り終わったっぽいので、次からはアプリケーション開発のための準備と実際の開発を行いたいと思います。