Raspberry Piでカメラ実験 ナニー・チュートリアル

### はじめに
最近、あるプロジェクトを行うとき、ターゲットを検出し、ターゲットと比較し、その後の実験を行う必要があります。

だから最近、カメラを購入するために20元を費やし、最初にカメラのビデオカメラやその他の機能を達成するためにを通して

は、ROSシステムのRaspberry Piを使用して、オブジェクトの認識やその他の機能を達成するためにカメラを続行することができる

テキストの次の部分が始まった

### 準備
この実験を行うためにRaspberry Pi 4Bボードを使用しました。

カメラは限られた資金に起因するので、CSIビデオインターフェイスカメラを購入し、唯一の500Wピクセルので、お金はより良い機器を検討することができます：
サードパーティのカメラモジュールを使ってみることもできます：
[Raspberry Pi用カメラモジュールのサポート](https://www.sinoseen.com/Products)
カメラのオブジェクト：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3814122/7e12c4dc-3e2d-1cf8-6d27-100210ea04a0.png)

インテグラル・コネクション：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3814122/3f991bb0-705b-f1e0-2ec0-09bfcb521673.png)

カメラとRaspberry Piの接続が完了したら、その後の実験だ！

#### ステップ1：ソフトウェア・ドライバのアップデート操作
まず、ターミナルを開き、以下の2行のコマンドを入力する：
```
sudo apt-get update
sudo apt-get upgrade
```
しかし、コマンドの1行目を入力すると、次のようなエラーが出ることがある：
```
W: Failed to fetch http://archive.raspberrypi.org/debian/dists/jessie/Release.gpg  Could not resolve 'archive.raspberrypi.org'

W: Some index files failed to download. They have been ignored, or old ones used instead.
```
この問題の解決策
```
// 以下のコマンドを入力する。
sudo nano /etc/resolv.conf
//その内容は以下のようなものです。
ネームサーバー 192.168.3.1
//最後にipアドレスを次のように変更する。
114.114.114.114
```
この方法で、最初のコマンドは問題なく実行される。

しかし、2番目のコマンドは次のようなエラーで実行されることがある。

```
E: ダウンロードできない http://mirrors.opencas.cn/raspbian/raspbian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2q-1~deb9u1_armhf.deb mirrors.opencas との接続を開始できない .cn:80 (2001:cc0:2020:4075::211) - 接続 (101: ネットワークに到達不能)
E: ダウンロードできない http://mirrors.opencas.cn/raspbian/raspbian/pool/main/o/openssl/libssl1.1_1.1.0j-1~deb9u1_armhf.deb mirrors.opencas.co.uk:80 (2001:cc0:cc0:2020:4075::211) との接続を開始できない。 80 (2001:cc0:2020:4075::211) - 接続 (101: ネットワークに到達できません)
E: ダウンロードできません http://mirrors.opencas.cn/raspbian/raspbian/pool/main/o/openssl/openssl_1.1.0j-1~deb9u1_armhf.deb mirrors.opencas.co.uk:80 ( 2001:cc0:2020:4075::211) - 接続 (101: ネットワークに到達できません)
E: いくつかのパッケージがダウンロードされません。apt-get update を実行するか、-fix-missing オプションを指定して再試行する必要がありますか？
```

これは、Raspberry Piのデフォルトのダウンロードソースが外国にあるためで、ダウンロード速度が遅すぎるため、ダウンロードソースを変更する必要があります。

まず、ソースファイルをバックアップします：
```
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
```
それから変更を加える
```
sudo nano /etc/apt/sources.list
```
このファイルの内容は以下のようになる：
```
deb http://mirrors.aliyun.com/raspbian/raspbian/ bullseye main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ bullseye main non-free contrib
```
次に、別のファイルの内容を変更する。
```
sudo nano /etc/apt/sources.list.d/raspi.list
```
変更点は以下の通り：
```
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ stretch main ui
```
これで最初のステップの問題は解決するはずです

### ステップ2：カメラの写真機能をオンにする：
VNC接続、またはPUTTY接続、XSHELL接続でこのステップを行うことができます。 ここで接続にPUTTYを使用することを選択します。
コマンドを入力する
```
sudo raspi-config
```

インターフェイスは以下の通り：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3814122/eba4e62d-9410-e409-4293-62119e6a8227.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3814122/225f4917-b618-f6e0-f15b-a85e22753ab3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3814122/63e4482c-735d-0db5-3182-0db79e5365ec.png)

保存して終了し、Raspberry Piを再起動します。

### ステップ 3: カメラの電源を入れる
他の記事でこのコマンドを紹介するかもしれない：

```
raspistill -o hello.jpg -t 1000
```
しかし、最新のシステムでは、このコマンドは2021年10月以降は使用できなくなり、libcameraコマンドに置き換えられる。

スクリーンショットやビデオを撮るためのコマンドもいくつか紹介されている。

1、libcamera-hello
2、libcamera-still -e png -o test.png
3、libcamera-jpeg -o test.jpg
しかし、私が使ったこれらのコマンドは動かない：

まずは以下のコマンドで動くかどうか試してみよう：
```
libcamera-hello
```
もしうまくいったら、カメラはすでに設定されています：

まず、次のコマンドを実行します。
```
vcgencmd get_camera
```
カメラが機能すれば、以下のようになるはずだ：
```
support=1,detected=1
```
support=0,detected=0の場合、カメラドライバがオープンされていないため、前面が0になります！

検出された場合の解決策は以下の通りです（カメラが正しくインストールされていることが前提です）。

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

```
sudo nano /boot/config.txt
//元のカメラの自動検出をコメントアウトし、「start_x=1 」と 「gpu_mem=128 」を追加する。

#camera_auto_detect=1
gpu_mem=128
スタート_x=1
```
それからだ：
```
sudo nano /etc/modules
bcm2835-v4l2 を追加 //ここではV4L2であり、1ではなくLである。
```
その場合は、Raspberry Piを再起動してから実行してください：
```
vcgencmd get_camera
```
の後に表示されるはずだ。
```
support=1,detected=1
```

これは、コンフィギュレーションが成功したことを示しています。

次に以下のコマンドを実行する：
```
ffplay -f v4l2 -framerate 60 -video_size hd720 /dev/video0
```
現時点ではlibcameraからアクセスすることはできません。
最後に、ビデオ映像を表示することができるはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3814122/c235ec76-76a7-1b22-0a04-13c58ea28f6e.png)
最後に
もしモニターやその他の機能を使いたいのであれば、インターネット上のチュートリアルを参照することができる！
エンベデッド・ビジョン・アプリケーションが[必要な場合](https://www.sinoseen.com)は、ここを訪問して詳細を知ることができます。