Raspberry Pi5 購入からカメラを動かすまで

# はじめに
Rasberry Pi5の購入から、カメラを動かすまでの手順です。
Rasberry Piバージョンや、カメラの種類、アプリのバージョンなどで細かい設定が異なるので、現状確認がとれた方法を残しておくのが目的。

# 購入したもの
- [TRASKIT Starter Kit For Raspberry Pi 5 /ラズベリーパイ5 RAM 8GB 技適マーク付 ——64GB ラズベリーパイOSをプリインストール（金属ケース）](https://www.amazon.co.jp/dp/B0CZT4FD6B/)
    - <img width="200" alt="starter kit" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540259/7a32f8ff-e3e8-b4f3-c42c-ac33a7139b33.jpeg">
    
- [Yahboom Raspberry Pi 5 カメラモジュール Raspberry Pi カメラ 500万画素 Raspberry Pi4B/3B+/3B/2B+/ZERO1.3/ZERO 2W/ZERO W Raspberry Pi用 透明スタンド*1、ワイヤー*2](https://www.amazon.co.jp/dp/B0CQVLDHBZ/)
    - <img width="200" alt="71hQ-1ol+vL._AC_SY300_SX300_.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540259/e9b6bbd9-0076-2171-2063-aa53c1a17632.jpeg">

:::note warn
Zeroと5は他Rasberry Piシリーズとコネクタが異なるので注意
   - 公式
       - https://www.raspberrypi.com/documentation/accessories/camera.html  
       - > Raspberry Pi 5 and all Raspberry Pi Zero models require a different camera cable.
   - 参考: [Interface 2024/5月号 ラスベリーパイ5大研究](https://shop.cqpub.co.jp/detail/2915/)
       - <img width="400" alt="camera connecter" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540259/4412ab45-7652-397a-1e47-7702468e1478.jpeg">
:::
- 上記以外に必要なもの
    - マウス、キーボード、ディスプレイ

# 本体組み立て
本体にファンをつける
特に迷うところはなし
<img width="400" alt="" src="">
<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540259/eac043ad-0899-7a75-74f3-c694cc70408c.png">

# OSインストール 
OSプリインストール済の商品だったが、最新をインストールした。
公式マニュアル
https://www.raspberrypi.com/documentation/computers/getting-started.html#install-using-imager

PCにSDカードをカードリーダーで接続して
マニュアルにあるRaspberry Pi Imagerを起動

64bit CPUなので、32bitにする意味もないので、64bitを選択
<img width="300" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540259/9e424748-3969-77c1-eb76-0b0b492fdfea.png">
5分くらいで書き込み終了

# 起動、初期設定
:::note
途中でwifi設定があるので、有線LANケーブルを一度も接続なしで後半のアップデートができた
:::
- ユーザー名、パスワード設定
- wifi設定(skip可能)
- defalut browserをchromium or firefoxからえらぶ。chroniumがデフォルト設定なのでそのままにした
- software update(５分くらいで終了)
- 再起動

## Wifiがつながらなくなった
初期設定時には繋がっていたが、デスクトップ画面になるとすぐに切断されてしまう
https://zenn.dev/funnythingz/articles/059747fe690c36
の設定をするとつながるようになった。
※リンク先がなくなると困るのでコピペで残しておく。
```bash
$ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
        ssid="SSID" # 自分の環境に合わせて変更する
        psk="PASS"  # 自分の環境に合わせて変更する
        scan_ssid=1  #コレを追記
}
```

# カメラ
## 組み立て、接続
Amazonのレビューでは組み立てマニュアルがないとのことだったが公式ページにあった
http://www.yahboom.net/study/Camera-GJ
組み立てると↓のようになる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540259/1e2e9d5d-f124-03bc-8845-9ee69141cd9e.png)
<font color="red">フレキの接続向きを間違えないように注意</font>


## 設定
カメラのソフトウェアマニュアルは
https://www.raspberrypi.com/documentation/computers/camera_software.html#rpicam-apps

APIの名前が2種類ある
> Raspberry Pi OS Bookworm renamed the camera capture applications from libcamera-* to <font color="#ff0000"> rpicam-* </font>. Symbolic links allow users to use the old names for now. Adopt the new application names as soon as possible. Raspberry Pi OS versions prior to Bookworm still use the libcamera-* name.

ここにある通り、Raspberry5では新しい `rpicam`を使うのが良い

カメラ接続後`rpicam-hello`を実行すると
`Fail to start streaming: Remote I/O error` や `ERROR: *** no cameras available ***` が発生して起動できなかった。

ラスパイでカメラが動かないときの対応を件すると色々出てくるが、
結局のところ、どれも関係なく、**コネクタの接続が甘かったことが原因**だった。
きっちり垂直に奥まで挿せば認識した

<font color="gray">※ちなみに今回の構成では不要だった対応<font>
> カメラが接続できない場合の対応で検索するといくつかヒットするが、今回の構成ではすべて不要だった
> - `sudo raspi-config`でのカメラの有効化
>     - そもそもconfigメニューでカメラ設定がなかった。ラズパイ5だとない？
> - `/boot/firmware/config.txt`の編集
>     - https://zenn.dev/thorie/scraps/663b022248e67a
>     - 非公式のカメラは0に設定する対応が書かれているが、camera_auto_detectは1のままでOKだった

`rpicam-hello`でキャプチャ画像を見ることができた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540259/a2bd5389-fc0f-51a0-dee6-540f2b67ed6b.png)

# その他
- キャプチャ画をWindows PCで見たいときにはsamba設定をしておくと楽
    - https://qiita.com/danjiro/items/28bb17ab3e2aaf79e572