HOME → 1 Raspberry Pi → 03 作品集 → 

Raspberry Pi 「bullseye」で レガシーカメラ「OV5647」を使う

Raspberry Pi 作品集
Raspberry Pi Camera v1.3
Bullseye - libcameraモード で使う
 
Raspberry Pi の「bullseye」には、オープンソースのカメラドライバ「libcamera」が標準でインストールされており、従来の「raspistill」や「Picamera」などが「libcamera-apps」に置き換わった。
 
「libcamera-apps」の新しいアプリケーション。
 ● 簡単なカメラコマンド:「libcamera-hello」
 ● 高解像度の静止画コマンド:「libcamera-jpeg」
 ● 高度な静止画コマンド:「libcamera-still」
  ← raspistill の代替コマンド
 ● 高度な動画コマンド:「libcamera-vid」
  ← raspivid の代替コマンド
 
以下、最新OSの「bullseye」で、レガシーカメラの「OV5647」を使う方法をまとめた。
 
 

 

スポンサー リンク

 

 
 
 
 
 
1. 使用機器
 
Raspberry Pi。
Pi-1 Model B+
 
Camera。
Raspberry Pi Camera v1.3(2013年)Omnvision OV5647
 
Pi Camera v1.3。
Pi Camera v1.3
 
 
OSのバージョンと、カメラ ソフトウェア スタックの選択。
OSのバージョンと、カメラ ソフトウェア スタックの選択
 
カメラ スタックには「legacy」と「libcamera」モードがあり、
今回は、「Bullseye」で「libcameraモード」を使うことにした。
 
 
 
2. Raspberry Pi OS のセットアップ
 
「Raspberry Pi Imager」で OS を microSDカードに書き込む
 
Raspberry Piデバイスの選択:Raspberry Pi 1。
Raspberry Piデバイスの選択:Raspberry Pi 1
 
OSの選択:Raspberry Pi OS (Legacy, 32-bit)。
Raspberry Pi OS (Legacy, 32-bit)
 
 
セットアップ実行後、OSのバージョンを確認:cat /etc/os-release。
セットアップ実行後、OSのバージョンを確認:cat /etc/os-release
Debian 11 (Bullseye)
 
 
 
3. 「Bullseye」でのカメラモジュールのセットアップ
 
Bullseye」で、カメラ ソフトウェア スタックを「libcameraモード」にする設定。
 
「Bullseye」をインストールすると、raspi-configが「/boot/config.txt」にstart_x=1 を書き加えており、この記述によりデフォルトでは「legacyモード」になっている。(「/boot/config.txt」の56行目。)
raspi-configが「/boot/config.txt」にstart_x=1 を書き加えており
 
 
①.raspi-configでLegacy Cameraをdisableに設定
 
「libcameraモード」にするには、raspi-configでLegacy Cameraを「disable」に設定する必要がある。
 
raspi-configで「3 Interface Options」を選択する。
raspi-configで「3 Interface Options」を選択する
 
「11 Legacy Camera Enable/disable」を選択する。
「11 Legacy Camera Enable/disable」を選択する
 
「いいえ」を選択する。
「いいえ」を選択する
 
Legacy Camera supportが「disabled」になるので「了解」する。
Legacy Camera supportが「disabled」になるので「了解」を選択する
 
「reboot」する。
「reboot」する
 
raspi-config で Legacy Cameraを「disabled」に変更すると、 /boot/config.txt に 「camera_auto_detect =1 」が追記される。(「/boot/config.txt」の56行目。)
raspi-config で Legacy Cameraを「disabled」に変更すると、 /boot/config.txt に 「camera_auto_detect =1 」が追記される
 
 
②.raspi-configでAdvanced Options → Glamorをenableに設定
 
Glamorがdisableになっている場合は下記のエラーが表示される。
libEGL warning: DRI2: failed to authenticate
Made X/EGL preview window…
 
raspi-configで「6 Advanced Options」を選択する。
raspi-configで「6 Advanced Options」を選択する
 
「A8 Glamor」を選択する。
「A8 Glamor」を選択する
 
enabled?と聞かれるので「はい」を選択する。
enabled?と聞かれるので「はい」を選択する
 
Glamor accelerationが「enabled」になるので「了解」を選択する。
Glamor accelerationが「enabled」になるので「了解」を選択する
 
「reboot」する。
「reboot」する
 
 
③.「/boot/config.txt」にカメラモジュールを指定する
 
「/boot/config.txt」を編集し、末尾に以下を追記。
dtoverlay=ov5647
 
「/boot/config.txt」にカメラモジュールを指定する
 
カメラモジュール別「dtoverlayの文字」一覧。
カメラモジュール別「dtoverlayの文字」一覧
 
「vcgencmd get_camera」で、カメラモジュールの接続を確認する。
「 libcamera interfaces=0」となっている。
「vcgencmd get_camera」で、カメラモジュールの接続を確認する
 
「libcamera-hello --list-cameras」で、カメラモジュールを確認する。
「 ov5647 」を検出。
「libcamera-hello --list-cameras」で、カメラモジュールを確認する
 
「v4l2-ctl --list-devices」 で、認識されたカメラデバイスの情報を表示する。
「/dev/video0」を検出。
「v4l2-ctl --list-devices」 で、カメラの一覧を取得する
 
 
 
4. libcamera コマンド
 
libcamera」は、
複雑なカメラ システムを Linux オペレーティング システムから直接サポートすることを目的とした新しいソフトウェア ライブラリで、
libcamera_dev」と「libcamera_apps」で構成されている。
 
「libcamera-apps」にはいくつかの新しいアプリケーションが含まれる。
 
 
libcamera-hello
 
libcamera-hello
 
カメラが正しく機能しているかを確認するコマンドで、プレビューが5秒間表示される。
 
libcamera-hello -t 0
 
オプションを使用して無限時間プレビューを表示。

終了は、プレビューの✖か、ターミナルで「Ctrl+Cを入力する。

無期限でプレビューを表示することで、レンズの絞」りと焦点を微調整することができる。

 
libcamera-jpeg
 
libcamera-jpeg -o ~/work/test_01.jpg
 
フル解像度のJPEG画像がキャプチャできる。
デフォルトでは、5秒間のプレビューが表示された後、フル解像度( ov5647 = 2592 x 1944)の画像が「test_01.jpg」というファイル名で保存される。
 
フル解像度のJPEG画像がキャプチャできる
 
 
libcamera-jpeg -o ~/work/test_02.jpg -t 2000 --width 640 --height 480
 
オプションで「時間」と「解像度」を指定する。
この例は、プレビューの表示時間が2000ms=2秒、解像度が640×480、JPEGのファイル名「test_02.jpg」が保存される。
 
-t:プレビューの表示時間 [ms]
–width:横の解像度
–height:縦の解像度
 
 
libcamera-still
 
以前のラズパイでのカメラコマンド「raspistill」の互換コマンド。
 
libcamera-still -o ~/work/test_03.jpg
 
ほとんどのオプションが類似している。
 
libcamera-still -e png -o ~/work/test_04.png
 
-eオプションで保存形式(png, bmp, rgb,yuv420)を変更できる。
 
libcamera-still -t 30000 --timelapse 3000 -o ~/work/image_%04d.jpg
 
タイムラプスで撮影するコマンドの例。
 
-t 30000:ータルの撮影時間 [ms] 30000ms = 30s
–timelapse:3000 撮影間隔 [ms] 3000ms = 3s
-o image%04d.jpg:連番でファイルを出力 (image0000.jpg image0001.jpg ・・・)
 
 
libcamera-vid
 
「libcamera-vid」は以前のラズパイで標準的なカメラコマンド「raspivid」の互換コマンド。
 
libcamera-vid -t 10000 -o ~/work/test_05.h264
 
10秒間の動画を撮影し、「test_05.h264」として保存するコマンド。
オプションで「h264、mjpeg、yuv420」のファイル形式を選択できる。
 
 
 
5. ストリーミング配信(VLCを使用)
 
「libcamera-vid」で、動画をストリーミング配信することもできる。
 
ラズパイで次のコマンドを実行する。
libcamera-vid -t 0 --inline --listen -o tcp://0.0.0.0:8080
 
他のパソコンで「VLC」を起動する。
他のパソコンで「VLC」を起動する
 
 
「メディア」→「ネットワークストリームを開く」の順にクリックする。
「メディア」→「ネットワークストリームを開く」の順にクリックする
 
URLを次のように入力し、「再生」をクリックしする。
tcp/h264://192.168.11.113:8080
 
「192.168.11.113」は、ラズパイの固定アドレス。
URLを次のように入力し、「再生」をクリックしする
 
ストリーミング画像。
ストリーミング画像
 
 
nオプション(プレビュー無し)をつければ、SSH越しでも写真や動画が撮れる。
libcamera-vid -t 0 -n --inline --listen -o tcp://0.0.0.0:8080
 
nオプションをつければ、SSH越しでも写真や動画が撮れる
 
 
以上。
(2024.01.05)
 

 

スポンサー リンク

 

             

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください