この記事を書いている2023年1月末時点での、
最新のRaspberryPi OSはbullseye(ブルズアイ)です。
おそらく今年あたり次のOSがリリースされるようですが、
現行のBullseyeでも情報が少なくてカメラ接続に手間取った話をします。
「RaspberryPiでカメラを使うなんて、
設定でカメラをONにして終わりでしょ?」
なんて思うじゃないですか。
たしかに一つ前のOSのBusterだったらそれでよかったんです。
最新のBullseyeだとひと手間必要なんです…その話をします。
Bullseye(RasbperryPiOS)でカメラを認識させる方法がわかる。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
本ブログはアフィリエイトを用いた広告を掲載しています。
まずはRaspberryPiに正しくカメラを接続する。
まずはハード的に正しく接続されていないと、
そもそもRaspbrryPi側で認識されません。
いくら正しい設定にしたところで、
物理的につながっていないものを使えませんからね…
わたしが今回用意したカメラについて。
今回ご用意したカメラはこちら。
Amazonで購入したお安めのカメラです。
RaspberryPi純正のカメラでもよかったのですが、
貧乏性なのでお安いサードパーティー製を選びました。
ケース付きなので、撮影時カメラの位置を固定できるのも
グッドなポイントですね。
具体的にどうやってつなげるか?
さて、接続方法に戻りましょう。
この部分がポイントなのですが、
この銀色の膜のようなものを、
RaspberryPiのこの金属部分と接続するわけです。
注意点ですが、カメラの接続部はピンとピンの距離が短いので、
基本的にはRaspberryPiの電源は完全にOFFしてください。
ACアダプターも抜いてください。
ショートして最悪RaspberryPi本体がやられます。
注意点はこれくらいして、本題に戻ります。
まずはカメラを接続する端子ですが、
基板上に、CAMERAと印字されいるほうです。
似たようなというか同じ形状の端子で、
DISPLAYも存在します。
DISPLAYと印字されているほうにカメラを接続しても
永遠にカメラは使えないので注意しましょう。
接続する端子がわかったところで、
接続部にこのままケーブルを差し込みたくなりますが、
ただ力任せにこの状態でケーブルを差し込んでもダメです。
まずのプラスチックでできた耳のようなものを
引き上げてあげる必要があります。
引き上げた状態でカメラのケーブルを差し込んで、
しっかり奥まで刺さったことを確認して、
最後に耳を押し下げて完了です。
ここまで来たらACアダプターは接続して大丈夫です。
RaspberryPiの設定でカメラの使用を許可する。
この内容はいろんなところで紹介されていますので、
ちょっといまさら感がありますが解説しておきます。
ちなみにこのカメラの使用を許可する手順ですが、
ひとつ前のOSのbusterでも全く同じことをします。
ですから情報としては結構出てきます。
それでは、具体的に何をするのか解説しましょう。
RaspberryPiの設定を開く。
まずはRaspberryPiのターミナルで、
sudo raspi-config
と打ち込んでEnterを押しましょう。
すると、このような設定画面が表示されます。
この中の上から3つ目。Interface Optionsを選択します。
※キーボードの上下キーでしか操作できませんので注意が必要です。
その後、I1のLegacy Cameraを選択します。
すると、カメラを使えるようにしますか?
と聞かれますので<はい>を選択します。
その後、使えるようにしたと表示されます。
このまま了解を押すと、再起動を促されるので、それに従って
再起動させましょう。
busterまでのOSであればこれで終了です。
が、まだやることはあります…
カメラが接続されているか確認する。※ここでは接続されない。
さて、物理的にカメラが接続されて、
RaspberryPiの本体側でカメラの使用許可を出しました。
ひとつ前のOSのbusterではこれで終わりだったのですが、
最新版のOSのbullseyeでは一味違います。
いったんここで接続されているか確認してみましょう。
カメラが正しく接続されているか確認する方法。
確認するには、このコマンドをターミナルで打ち込みます。
vcgencmd get_camera
このコマンドを打ち込むことで、
RaspberryPi側で正しくカメラが認識されているか確認することができます。
ひとつ前のbusterとの違い。
この結果は、BusterとBullseyeで異なります。
Busterの場合は、
supported=0or1 detected=0or1
と表示されますが、
Bullseyeはこうなります。
libcamera interfacesという項目が増えます。
これは後ほど説明しますが、Bullseyeから登場しました。
supportedとdetectedの説明を簡単にしておくと、
supportedは先ほどカメラの有効化でONになると1になります。
detectedはカメラが接続されているば1になります。
「あれ、画像だとdetected=0だから接続できないじゃん。」
鋭いですね。ただ、これはそれでいいんです。
なぜなら、このdetectedはbusterまでのOSで認識していたもので、
bullseyeからは接続されていようがいまいが、0になります。
とんでもなくわかりにくいですよね。
【本題】改めて接続するためにする手順【解決方法】
さて、ここまででもbullseyeの特殊性がわかってもらえたと思いますが、
このままではカメラは使えません。
ここからは、bullseyeでカメラを使えるようにする手順です。
カメラに使用されているセンサーの型番を調べる。
カメラには、レンズと、イメージャーと言われる画像センサーが
内部に組み込まれています。撮像素子なんて言われたりもします。
そのセンサーをまずは調べる必要があります。
例えば、今回用意したカメラは、型番がGeeekPi 5MP 1080Pとなっています。
さて、ここからセンサーの型番が乗っていればよかったのですが、
この商品ページには、センサーの型番は記載されていません。
メーカー名と、5MP1080Pを頼りにググると、このように、
Omnivision5647が搭載されているとの記載が見つかります。
センサーと言えば天下のSONYがメジャーです。
SONYの場合は、IMX○○という感じの型番なので一目見ればわかります。
Omnivisionについて少し調べてみましたが、
車載カメラやスマホなどで結構なシェアを持っているようでした。
分野によってはSONYを超えるシェアを持っているんです…
全然知らなかった。
記事は直接関係ないですが、
この記事内にOmnivisionのシェアが記載されているグラフがあります。
↓↓↓↓
センサーの型番を設定ファイルに追記する。
前の章でセンサーの型番が必要と言いましたが、
実はこれRaspberryPi側で型番を記載する必要があるんです…めんどくさ。
もちろん、このカメラ以外、厳密には、
他のセンサーが乗ったカメラを使いたい場合は同じ作業が必要です。…めんどくさ。
それでは、どこに記載するかの説明をしましょう。
raspberryPiのターミナルで、
このように打ち込んでください。
sudo nano /boot/config.tex
RaspberryPiの設定ファイルを開いて編集することが可能です。
開いたら、一番下のとこをこんな感じにしてみてください。
重要なのは、dtoveray=というやつです。
ラズベリーパイの公式ページで、
どのセンサーはどういう風に記載してね。という表があります。
Omnivisionは省略されてovと記載されています。
ほかにもIMX系列(SONY製)も設定することで使用可能です。
config.txtに上記のov5647を追記したら、^Xして終了(保存も)して、
再起動しましょう。
最後に動作確認して終了。
さて、ここまで来たらやっとカメラが使えます。
(正確には、Omnivisionの5647を積んだカメラが使えます)
では実際に撮影してみましょう。
コマンドはこうです。
libcamera-jpeg -n -o test.jpg
このコマンドを打つと、
カメラで1枚写真を撮ります。
保存されるところは、homeフォルダ内の、
ドキュメントや画像フォルダが入っているフォルダです。
ここのフォルダの名前は人それぞれですので、
ドキュメントなどが入っているフォルダだと思ってもらえれば大丈夫です。
実はお試しとして、
コンソールソフトでいうところの、Hello,world!が用意されています。
それが、このコマンドです。
libcamera-hello
これが正しく実行されるはずなのですが、
私の場合、error19が出ました。こんなの↓↓
terminate called after throwing an instance of 'std::runtime_error'
what(): failed to import fd 19
ちょっとこの話は別の記事で解決策も含めてご紹介します。
結局なんでこんなにめんどくさくなったか?
めんどくさくなった原因ですが、
単純に言って、libcameraというものが実装されたからです。
それに加えて、2021年にBullseyeと同時に実装されたため、
比較的最近の情報が無いわけですね…
この情報が無い。ということについては以前の記事で紹介しています。
↓↓以前の記事↓↓
今回のまとめ
今回は記事執筆時点での最新OSであるBullseyeで
カメラの接続から、画像を保存するところまでご紹介しました。
情報が少ないので、困っている人のためになれば幸いです。
コメント
ちょうど、「detected=0」で悩んでました。
解決して、カメラ撮影ができるようになりました。
ありがとうございました!
カービーさん
コメントありがとうございます!
お役に立てて光栄です。detected = 0はわかりにくいですよね…
とてもわかりやすい情報ありがとうございます!!
私もv2カメラが認識せずに、無駄にv3カメラを買うところでした。
おかげ様で、無事カメラでの撮影が出来ました。
コメントありがとうございます!
わかりやすいと言っていただけて、今後の励みになります。
無事v2で撮影できたとのことで良かったです。
継続してラズベリーパイ関係の情報も発信していきますので、宜しかったらまた来てくださいね!