注目キーワード

【Raspberry Pi 】カメラが認識しないとき、まずやること!

すけろく
うーむ。
このカメラは、Raspberry Pi では使えないのか?
げんろく
どうした。
カメラを見つめて。
すけろく
Raspberry Pi でカメラがうまく認識できないのだ。
公式のカメラではないからなのか。
わからなくてな。
げんろく
Raspberry Pi では、カメラの自動認識機能があって
認識範囲外のカメラを使うときはコツがいるぞ。
今回はそのあたりを紹介してみよう。
Raspberry Pi やJetsonなどいろいろなコンピュータで使えるカメラ。
最近はロボットや認識装置などでの活用が進んでいるカメラというセンサー。
最新のRaspberry Pi 5では、MIPI(Mobile Industry Processor Interface)接続のカメラが
2台接続できるようになるなど、いろいろと動きが出てきています。
Raspberry Pi 公式からは、Raspberry Pi Camera(ラズパイカメラ)が販売されていて、
Raspberry Pi に接続して簡単に使えるようになっています。
でも、製作したいものによっては、公式のラズパイカメラは高価であったり、違う特徴を持ったカメラを使いたかったりしますよね。
しかし、Raspberry Pi に対応したカメラケーブルを使い、
市販のカメラモジュールを接続してもうまく認識せず、
ハマることが多いのではないでしょうか。
今回は、公式以外のカメラをRaspberry Pi で認識させるためのノウハウをご紹介します。
Raspberry Pi への接続方式は以下のものを対象としています。
  • Raspberry Pi のMIPI接続コネクタに接続するカメラ
  • 接続用のケーブルは、フレキシブルケーブルを使って接続します。
※USB接続系のカメラについては、今回の記事では紹介していません。
記事では、次のように順を追って説明しています。
  1. カメラとRaspberry Pi の接続方法
  2. カメラが認識されているか確認する方法
  3. Pythonでの制御プログラミング方法
今回ご紹介する方法は、以下のRaspberry Pi 機種で動作確認をしています。
今回使用したRaspberry Pi とカメラはこちら!
Raspberry Pi 5 8GB with Active Cooler Set
created by Rinker
Traskit
¥15,500 (2025/01/22 03:25:57時点 Amazon調べ-詳細)
Raspberry Pi 4 4GB 
使用しているカメラは以下のセンサーを搭載したも種類です。
IMX219 搭載カメラ

カメラとRaspberry Pi の接続方法

Raspberry Pi とカメラの接続には、以下のようなフレキシブルケーブルを使って接続します。

接続するポートは、Raspberry Pi のMIPI接続コネクタになります。

MIPIって何?

MIPIは、Mobile Industry Processor Interfaceの略で、「モバイル業界におけるプロセッサーのインターフェース」となります。

モバイル機器に内蔵されるプロセッサーのインターフェースを規定した規格がMIPIです。

MIPIが規定するのは、スマートフォンやタブレット、ラップトップなどのモバイルデバイス、ポータブルデバイス向けのインターフェースです。

特に5G対応モバイルデバイスやIoT、コネクテッドカーにおいて、長期的に重要な役割を果たすことが期待されている高速インターフェース規格の一種です。

MIPI以外の代表的な高速インターフェース

MIPIのほかには、高速インターフェースとして次のようなものがあります。

  • USB
  • Thunderbolt
  • HDMI
  • DisplayPort
  • SATA
  • LVDS

 

MIPIってあんまり聞かないよね

前述したUSBなどの高速インターフェースと異なり、MIPIはあまり一般的ではありません。

USBやHDMIなどはゲーム機とテレビなどの周辺機器の接続にも使われるので、広く知られています。

MIPIはモバイルに特化した規格としてスタートしたものです。

主にSoC(システム・オン・チップ)とカメラ、またはSoCとディスプレイの間をつなぐ画像信号を伝達するために使われています。

多くの場合、例えばマートフォンなど、内部でMIPIを使っている機器はその機器単体で機能が完結しているものが多いため、使う人が意識してMIPI接続するということが少ないため、あまり広く知られていないのでしょう。

 

通信方法の規格

MIPIの通信規格としては、次の2種類があります。

  • CSI-2(Camera Serial Interface 2)
    映像データの転送に特化したプロトコルで、単方向データ転送を行います。
  • CCI(Camera Control Interface)
    カメラモジュールの制御インターフェースで、双方向データ転送を行います。

今回はカメラで使用しますので、単方向のデータ転送規格(CSI)を使います。

 

Raspberry Pi のMIPI接続コネクタ

Raspberry Pi 標準 MIPI接続コネクタには、15 ピンと 22 ピンの 2 種類があります。

  1. 15 -15ピン(1㎜ピッチ) コネクタ
    Raspberry Pi モデル (A および B シリーズ) と Pi カメラ モジュールで使用されます。
  2. 15-22 ピン(0.5㎜ピッチ) コネクタ
    Raspberry Pi 5、Pi Zero シリーズ、などで使用されます。

 

15-15ピンコネクタ

15-15 ピン コネクタは、カメラやプラットフォームで最もよく使用されているコネクタです。

カメラなどの15ピンコネクタとRaspberry Pi の15ピンコネクタを接続する形式です。

例:Raspberry Pi 4 のMIPIコネクタ
例:Raspberry Pi 4 のMIPIコネクタ

 

特に明記されていない限り、Raspberry Pi カメラに関しては「デフォルト」のコネクタです。

Raspberry Pi モデル A および B シリーズや V1 および V2 カメラ モジュールなどの主流の Raspberry Pi 製品でこのコネクタが使用されています。

 

Raspberry Pi 15ピンMIPI-CSIコネクタのピン配置

カメラ ボードのピン配置は次のようになります。信号は入力または出力タイプです。

Raspberry Pi ボード上のピン配置は逆方向になります。

 

ピン番号
カメラ
ピン番号
Raspberry Pi
名前 説明
1 15 GND 接地
2 14 CAM_D0_N MIPI データレーン 0 ネガティブ
3 13 CAM_D0_P MIPI データレーン 0 ポジティブ
4 12 GND 接地
5 11 CAM_D1_N MIPI データレーン 1 ネガティブ
6 10 CAM_D1_P MIPI データレーン 1 ポジティブ
7 9 GND 接地
8 8 CAM_CK_N MIPI クロック レーン ネガティブ
9 7 CAM_CK_P MIPI クロック レーン ポジティブ
10 6 GND 接地
11 5 CAM_IO0 電源有効化
12 4 CAM_IO1 LEDインジケーター
13 3 CAM_SCL I2C SCL
14 2 CAM_SDA I2C SDA
15 1 CAM_3V3 3.3V電源入力

 

 

15-22ピンコネクタ

15-22 ピン コネクタは、カメラやプラットフォームで最もよく使用されているコネクタです。

カメラなどの15ピンコネクタとRaspberry Pi の22ピンコネクタを接続する形式です。

例:Raspberry Pi Zero のMIPIコネクタ
例:Raspberry Pi Zero のMIPIコネクタ

 

Raspberry Pi 22ピンMIPI-CSIコネクタのピン配置

カメラ ボードのピン配置は次のようになります。信号は入力または出力タイプです。

 

ピン番号
カメラ
名前 説明
1 GND 接地
2 CAM_D0_N MIPI データレーン 0 ネガティブ
3 CAM_D0_P MIPI データレーン 0 ポジティブ
4 GND 接地
5 CAM_D1_N MIPI データレーン 1 ネガティブ
6 CAM_D1_P MIPI データレーン 1 ポジティブ
7 GND 接地
8 CAM_CK_N MIPI クロック レーン ネガティブ
9 CAM_CK_P MIPI クロック レーン ポジティブ
10 GND 接地
11 CAM_D2_N MIPI データレーン 2 ネガティブ
12 CAM_D2_P MIPI データレーン 2 ポジティブ
13 GND 接地
14 CAM_D3_N MIPI データレーン 3 ネガティブ
15 CAM_D3_P MIPI データレーン 3 ポジティブ
16 GND 接地
17 POWER-EN 電源有効化
18 LED-EN LED Enable/XCLK
19 GND 接地
20 SCL I2C SCL
21 SDA I2C SDA
22 VCC 3.3V電源入力

 

 

今回使うカメラのコネクタ仕様

今回使用するカメラ側のMIPI接続コネクタは15ピン(1㎜ピッチ)になります。

カメラの中には、22ピン(0.5㎜ピッチ)のコネクタ形状をしているものもあるため注意してください。

 

IMX219 搭載カメラ

 

 

Raspberry Pi とカメラの接続

Raspberry Piとカメラの接続します。

接続方法を次の2つに分けて紹介します。

  1. Raspberry Pi 4 とカメラの接続方法(15-15ピン)
  2. Raspberry Pi 5 とカメラの接続方法(15-22ピン)

 

Raspberry Pi 4 とカメラの接続方法

まず、Raspberry Pi 4 のMIPI接続コネクタは次の場所にあります。

15ピン(1㎜ピッチ)のコネクタが1つ搭載されています。

 

カメラと接続するケーブルは、15-15ピン(1㎜ピッチ)のフレキシブルケーブルを使います。

15-15ピン(1㎜ピッチフレキシブルケーブル)
15-15ピン(1㎜ピッチフレキシブルケーブル)

 

まず、Raspberry Pi 4のMIPI接続コネクタのストッパーを上げます。

ストッパーが手で持ち上げにくい場合は、ピンセットなどを使うとスムーズに操作できます。

 

フレキシブルケーブルを次の写真のような向きで差し込みます。

Raspberry Pi 4 のMIPI接続コネクタのストッパーを下げて固定します。

 

最後にカメラ側のMIPI接続コネクタのストッパーを上げます。

 

フレキシブルケーブルを写真のような向きで差し込みます。

カメラ側のMIPI接続コネクタのストッパーを下げてケーブルを固定すれば完成です。

 

 

今回使用したRaspberry Pi はこちら!

Raspberry Pi 4 4GB 

Raspberry Pi 5 とカメラの接続方法

まず、Raspberry Pi 5 のMIPI接続コネクタは次の場所にあります。

22ピン(0.5㎜ピッチ)のコネクタが2つ搭載されています。

 

 

カメラと接続するケーブルは、15-22ピン(1㎜-0.5㎜ピッチ)のフレキシブルケーブルを使います。

 

15-22ピン(1㎜-0.5㎜ピッチフレキシブルケーブル)
15-22ピン(1㎜-0.5㎜ピッチフレキシブルケーブル)

 

まず、Raspberry Pi 5のMIPI接続コネクタのストッパーを上げます。

ストッパーが手で持ち上げにくい場合は、ピンセットなどを使うとスムーズに操作できます。

 

フレキシブルケーブルの22ピン(0.5㎜ピッチ側)を次の写真のような向きで差し込みます。

Raspberry Pi 5 のMIPI接続コネクタのストッパーを下げて固定します。

テスト環境では、アクティブ冷却用ファンのついた状態で行っているので、ピンセットが大活躍しました。

 

 

最後にカメラ側のMIPI接続コネクタのストッパーを上げます。

 

フレキシブルケーブルの15ピン(1㎜ピッチ側)を写真のような向きで差し込みます。

 

カメラ側のMIPI接続コネクタのストッパーを下げてケーブルを固定すれば完成です。

 

今回使用したRaspberry Pi はこちら!

Raspberry Pi 5 8GB with Active Cooler Set
created by Rinker
Traskit
¥15,500 (2025/01/22 03:25:57時点 Amazon調べ-詳細)

 

Raspberry Pi上でのカメラの認識確認

Raspberry Pi OSでは、起動時にカメラの自動認識機能が実行され、事前に定義済みのカメラが接続されている場合は、簡単に認識してくれます。

特にRaspberry Pi 公式のラズパイカメラを使う場合は、自動認識が可能です。

 

しかし、今回使用したカメラは、自動認識外のものでしたので、起動時の設定変更が必要です。

 

カメラの認識確認を行う手順は次の通りです。

  1. Raspberry Pi OS上でのカメラの認識状態の確認
  2. 起動時のカメラ認識設定の見直し
  3. 再起動後に再度カメラの認識状態の確認

 

Raspberry Pi OS上でのカメラの認識状態の確認

Raspberry Pi OS(64bit版)には、カメラ認識用の機能がインストールされています。

確認用のコマンドは次の通りです。

rpicam-hello --list-cameras

 

Raspberry Pi OSの準備

Raspberry Pi OSは、Rasberry Pi ImagerというソフトウェアでOSをSDカードに書き込んだものを使います。

Rasberry Pi Imagerについては、別の記事で紹介していますので参考にしてください。

 

Rasberry Pi への接続(SSH)

Rasberry Pi へSSHを使用して接続します。

Windowsであれば、コマンドプロンプトなどから接続してください。

 

接続後、以下のようにコマンドを入力して結果を確認します。

【カメラが認識されている場合】

rpicam-hello --list-cameras

Available cameras
-----------------
0 : imx219 [3280x2464 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@88000/imx219@10)
Modes: 'SRGGB10_CSI2P' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop]
1640x1232 [41.85 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]
'SRGGB8' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop]
1640x1232 [83.70 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

【カメラが認識されていない場合】

rpicam-hello --list-cameras

No cameras available!

 

今回の記事では、上記の「No cameras available!」が表示されてしまった(認識されない)場合の方法を紹介します。

 

起動時のカメラ認識設定の見直し

カメラが認識されない場合、Rasberry Pi の自動認識機能の対象外である可能性があります。

この場合、Rasberry Pi の自動認識を無効化して、手動でカメラを定義する必要があります。

 

Rasberry Pi の起動設定ファイル修正

Rasberry Pi の起動設定ファイルは以下の場所にあります。

 /boot/firmware/config.txt

ファイル編集コマンドを使って以下の通り修正します。

【config.txt】

~

# Automatically load overlays for detected cameras
camera_auto_detect=1
<修正後>
camera_auto_detect=0

~

[all]
<追加>
dtoverlay=imx219,cam0 ※imx219はカメラのイメージセンサになります。
              環境に応じて変更してください。
dtoverlay=imx219,cam1 ※Rasberry Pi 5で2つのカメラを
              認識させる場合は、左のように記載します。

 

Rasberry Pi の再起動

Rasberry Pi の起動設定ファイルの修正が完了したら、Rasberry Pi を再起動させます。

sudo reboot now

 

 

再起動後に再度カメラの認識状態の確認

再度、次のコマンドを実行し、カメラの状態を確認します。

rpicam-hello --list-cameras

 

Rasberry Pi 5で2つのカメラが認識された場合は、次のような実行結果が返ってきます。

rpicam-hello --list-cameras

Available cameras
-----------------
0 : imx219 [3280x2464 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@88000/imx219@10)
Modes: 'SRGGB10_CSI2P' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop]
1640x1232 [41.85 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]
'SRGGB8' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop]
1640x1232 [83.70 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

1 : imx219 [3280x2464 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@80000/imx219@10)
Modes: 'SRGGB10_CSI2P' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop]
1640x1232 [41.85 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]
'SRGGB8' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop]
1640x1232 [83.70 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 692)/1920x1080 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

2つのカメラが認識されていることが確認できます。

 

Pythonでの制御プログラミング方法

認識されたカメラを使って写真を撮るプログラムをPythonで組んでみます。

以下のプログラムを実行してみてください。

 

実行すると、カメラで取得した画像が保存されます。

 

Pythonを使ったカメラの調整や、プログラミングについては、今後記事にする予定です。

今回の目標であったRasberry Pi 公式のラズパイカメラ以外のカメラを無事認識することができました。

 

編集後記

いかがだったでしょうか。

Rasberry Pi でカメラを使う場合に苦労するカメラの認識方法についてご紹介しました。

今後は、Pythonを使って色々とカメラの制御をしていく予定です。

ご期待ください。

 

最後までご覧いただきありがとうございました。

今回の記事は以上です。

 

今回使用したRaspberry Pi とカメラはこちら!

Raspberry Pi 5 8GB with Active Cooler Set
created by Rinker
Traskit
¥15,500 (2025/01/22 03:25:57時点 Amazon調べ-詳細)
Raspberry Pi 4 4GB 
使用しているカメラは以下のセンサーを搭載したも種類です。
IMX219 搭載カメラ