もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

ラズパイ カメラで撮影してみた!

はじめに

こんにちは。

この記事は Kojirock1一人 Advent Calendar 2019の11日目の記事です。

adventar.org

今回も、事前に買った初心者キットに入っていたものを使いながら色々遊んでみます。

今回はついに念願のカメラを使ってみます。

こちらの参考記事を拝見しながら、実際にやってみました。

raspi-wannabe.com

接続自体は簡単だったのですが、ひと悶着ありました。

やってみた

ラズパイ側の設定は最初に終わっているので、つなぐところからやりました。

f:id:kojirooooocks:20191208032711j:plain

f:id:kojirooooocks:20191208032722j:plain

静止画撮影

以下のコマンドを実行します。

$ raspistill -o test.jpg
mmal: Cannot read camera info, keeping the defaults for OV5647
mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
mmal: Failed to create camera component
mmal: main: Failed to create camera component
mmal: Camera is not detected. Please check carefully the camera module is installed correctly

むむ。 参考サイトであれば、これで撮影できるはず...

カメラの設定やってると思ってたけど、やってなかったかな?と raspi-config を実行して確認してみます。

f:id:kojirooooocks:20191208033101p:plain

やはりenabledになっていました。

エラー文言で探すと以下の情報が。

PiCam異常時の現象 | Research

接続の問題...?

なんか嫌な予感

とりあえず以下のコマンドでそもそも検出されているかどうかも確認します。

$ vcgencmd get_camera
supported=1 detected=0

検出されていない。。。

ケーブルの接続をし直したり、再起動したりどうやっても、最初に上げたエラーのままでした。

藁にもすがる思いで、 raspi-config で出てくるアップデートをしてみます。

f:id:kojirooooocks:20191208033505p:plain

そして、検出チェック...

$ vcgencmd get_camera
supported=1 detected=1

きました!!

実際に撮影してみます!

$ raspistill -o test.jpg

$ ll test.jpg 
-rw-r--r-- 1 pi pi 3668114 12月  8 03:32 test.jpg

できてました!

さっとく取得して撮影具合を見てみます。

f:id:kojirooooocks:20191208034038j:plain

無事にデブ活をしている、うちの猫(こじろう)を撮影することができました!!!

動画撮影

次は参考サイトでも書かれている通り動画も撮影してみます。

すでにカメラモジュールは検出済みなので、コマンドを打てば動きます。

$ raspivid -o test.h264

$ ls -la test.h264 
-rw-r--r-- 1 pi pi 10033476 128 03:41 test.h264

作成されました! 次にmp4に変換します。そのためにgpacというツールをインストールします。

$ sudo  apt-get install gpac -y
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  gpac-modules-base libfreenect0.5 libgpac4
以下のパッケージが新たにインストールされます:
  gpac gpac-modules-base libfreenect0.5 libgpac4
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 111 個。
1,787 kB のアーカイブを取得する必要があります。
この操作後に追加で 5,340 kB のディスク容量が消費されます。
取得:1 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libgpac4 armhf 0.5.2-426-gc5ad4e4+dfsg5-5 [1,287 kB]
取得:2 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf libfreenect0.5 armhf 1:0.5.3-1 [38.2 kB]
取得:3 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf gpac-modules-base armhf 0.5.2-426-gc5ad4e4+dfsg5-5 [200 kB]
取得:4 http://ftp.jaist.ac.jp/pub/Linux/raspbian-archive/raspbian buster/main armhf gpac armhf 0.5.2-426-gc5ad4e4+dfsg5-5 [262 kB]
1,787 kB を 3秒 で取得しました (674 kB/s)
以前に未選択のパッケージ libgpac4:armhf を選択しています。
(データベースを読み込んでいます ... 現在 161131 個のファイルとディレクトリがインストールされています。)
.../libgpac4_0.5.2-426-gc5ad4e4+dfsg5-5_armhf.deb を展開する準備をしています ...
libgpac4:armhf (0.5.2-426-gc5ad4e4+dfsg5-5) を展開しています...
以前に未選択のパッケージ libfreenect0.5:armhf を選択しています。
.../libfreenect0.5_1%3a0.5.3-1_armhf.deb を展開する準備をしています ...
libfreenect0.5:armhf (1:0.5.3-1) を展開しています...
以前に未選択のパッケージ gpac-modules-base:armhf を選択しています。
.../gpac-modules-base_0.5.2-426-gc5ad4e4+dfsg5-5_armhf.deb を展開する準備をしています ...
gpac-modules-base:armhf (0.5.2-426-gc5ad4e4+dfsg5-5) を展開しています...
以前に未選択のパッケージ gpac を選択しています。
.../gpac_0.5.2-426-gc5ad4e4+dfsg5-5_armhf.deb を展開する準備をしています ...
gpac (0.5.2-426-gc5ad4e4+dfsg5-5) を展開しています...
libfreenect0.5:armhf (1:0.5.3-1) を設定しています ...
libgpac4:armhf (0.5.2-426-gc5ad4e4+dfsg5-5) を設定しています ...
gpac-modules-base:armhf (0.5.2-426-gc5ad4e4+dfsg5-5) を設定しています ...
gpac (0.5.2-426-gc5ad4e4+dfsg5-5) を設定しています ...
man-db (2.8.5-2) のトリガを処理しています ...
libc-bin (2.28-10+rpi1) のトリガを処理しています ...

その後以下のコマンドで変換を実行します。

$ MP4Box -fps 30 -add test.h264 test.mp4
AVC-H264 import - frame size 1920 x 1080 at 30.000 FPS
AVC Import results: 146 samples - Slices: 3 I 143 P 0 B - 0 SEI - 3 IDR
Saving to test.mp4: 0.500 secs Interleaving

$ ls -la test.mp4 
-rw-r--r-- 1 pi pi 10034938 12月  8 03:43 test.mp4

Image from Gyazo

デブ活をみられたこじろうの逆襲ドアップ動画がとれました!

終わりに

一時はどうなるかと思いましたが、なんとかなりましたw

やっぱカメラ楽しいですね!

もうちょい色々としたいのですが、ラズパイの記事は今回で終了になります。

次からはアプリの記事を予定してますが、仕事が忙しくなって、そもそも記事をあげられない可能性ありです...

現場からは以上です。