
【エッジAI】Raspi5でYOLOリアルタイム物体検出チャレンジ!~検出実行編 vol.20ではRaspi5で重い物体検出をかけた結果をお伝えしました。"精度を保ったままリアルタイム"の要件が厳しすぎるきらいはあるものの、特定用途では「使えるかもね」の結果を得ました。
今回は、Raspi5そのものの環境設定のお話です。
私のようななんちゃって開発者であっても、"Pythonでコードを書いて動くのを見たい!"が本能であって、ハードウェア工作とか環境設定とかは付帯作業でしかありません。(ごめんなさい、実は割と好きです)
その辺、ノートPCでの開発とかって楽でいいなぁ・・なんですが、環境構築のハードルがあるなぁと思いますので、備忘録として残しておく意図です。
私自身、多くの記事を読んで&Copilotによる導きにより環境構築しましたので、同じようなことを実現しようとしている方へ、足跡を残します。
Raspiをリモートのコンピュータとしてヘッドレス※で実行して、開発も動作検証も開発機で操作できます。
これでRaspi本体が手元に無くても、デバッグできます。
※ヘッドレス:ディスプレイ、キーボード、マウスと繋げないことを恰好付けてこのように言う
■実現したかったこと
詳しく書き残してくれている人の記事がたくさんありますので、ここでは簡潔に手順だけ列挙します。
ここは本当に"サクッと"行きました。
・PC上で最初のブートイメージを作成
Ubuntu24 64bitDesktop LTS
・microSDで起動したUbuntu上でimagerをインストール
sudo apt install rpi-imager
・PCIe HATの取り付け
Geekworm X1001 V1.1 PCIe NVMe M.2 SSD 2280拡張ボード
・NVMe SSDの取り付け
fanxiang SSD 256GB NVMe PCIe Gen3.0x4 2800MB/s TLC 3D NAND M.2 2280
・NVMe SSDへOSのインストール
rpi-imagerを起動して、お好みのOSをNVMe SSDにインストールします。
・microSDを抜いてNVMe SSDでブート
綺麗にいくとそのままNVMe SSDでブートしてきます。
※上手く行かない場合は、microSDで起動して、NVMeSSD上にインストールされた起動ファイルを調節しなければならないようです。(割愛)
| [PCIe3拡張HAT] |
![]() |
| [02:PCIe3 NVMeSSD] |
![]() |
| [03:Pi imager] |
![]() |
詳しく書き残してくれている人の記事がたくさんありますので、ここでは簡潔に手順だけ列挙します(その2)。
実は、ここもサクッと動きました。工作もRaspi-Configも何も必要ありませんでした。
ケーブルを差して(差し込む方向だけは注意!)そのまますんなりブートしてきました。
Freenove 5インチタッチスクリーンモニター for Raspberry Pi 5 4B 3B+ A+、800x480ピクセルIPSディスプレイ
但し、後述するリモートデスクトップ環境との共存や、自動グラフィカルログインの部分は、少しだけ調整がありましたが割愛します。
| [04:5インチタッチパネル装着] |
![]() |
| [05:5インチUbuntuログイン] |
![]() |
| [06:リモートデスクトップ] |
![]() |
ここは過去の記事はあまり参考にしない方が良いと思います。
なぜなら最新のUbuntuではRDP(リモートデスクトップ)に対応しているからです。VNCの記事がたくさん出てきますし、もっと軽量な別のウィンドウマネージャを使う記事がありますが、割と鬼門だと感じています。
レッツRDP!
・Wi-Fi(またはLAN)のアドレスを固定化
Wi-Fiで取得するDHCPアドレスではなく、IPv4アドレスを固定化します。
・SSHを有効化
PCのTeraTermから最低限のコマンド実行はSSHでしたいです。
・リモートデスクトップの構成
UbuntuDesktopでは、VNCとかを別途入れなくても、元々RDPが出来るように設定されています。Windowsのリモートデスクトップで快適に動作します。
「RDPがデフォルトで準備されている!」というのは後で知ったことで、実はその前に、VNCを入れて、ウィンドウマネージャーの競合とかでバタバタしました。少し前はVNCでgnomeっていうのが私のデフォルトでした。
ともあれ、UbuntuのServerをWindowsのRDP(リモートデスクトップ)でサクサク扱えるのは本当に助かります。
しかも動作はかなり安定しており、常時接続で、マルチ画面での開発(動作確認)が快適です。
※WindowsのRDPから接続する際には、ポート番号の:3389を忘れずに指定してください。
詳しく書き残してくれている人の記事があまりないようです。
私はCopilotに聞きながらなんとか漕ぎつけました。
ここでは簡潔に手順だけ列挙します(その3)。
| [07:VSCode] |
![]() |
・Raspi上での仮想環境の準備 venv
venvで仮想環境を構築します。
Raspiでは本体機能で使うPythonが激しく制限を掛けるので、venvで別環境を準備するのが鉄則のようです。試しにユーザ領域でpip installを実行して見てください。
「それは外(ユーザ環境を別に作って)でやってよ」と良く怒られます。
・venv
rm -rf /home/[user_name]/edgeai
python3 -m venv /home/[user_name]/edgeai
source /home/[user_name]/edgeai/bin/activate
・パーミッション変更
ls -la /home/[user_name]/.venv
sudo chown -R [user_name]:[user_name] /home/[user_name]/venv
sudo chown -R [user_name]:[user_name] /home/[user_name]/edgeai
which python
which pip
chmod +x /home/rdcenter/venv/edge/bin/pip3
・VSCodeでSSHログイン VSCode機能拡張"Remote - SSHの導入"
ここはcopilotさんに教えてもらいました。
VSCodeからRaspiに接続する環境を構築します。
WindowsPCのユーザディレクトリに.ssh.configファイル作成し、SSH接続設定を保存しておきます。
Host raspi5
HostName 192.168.x.x
User xxxx
IdentityFile ~/.ssh/id_rsa
・VSCode上で笑ってお仕事 .vscode
接続の度にSSHのパスワードを求められますが、それ以外は従来の環境と何ら変わりありません。
また、VSCodeの設定を同じくWindowsユーザディレクトリの.vscode/settings.jsonに保存しておきます。
.vscode/settings.json
{
"python.defaultInterpreterPath": "/home/rdcenter/edgeai/venv/bin/python"
}
VSCodeのワークスペースに現在の設定を保存しておきます。
VSCodeで(他のPC上でのPythonプログラムの開発同様)Pythonの開発が出来るのは快適です。
何が素晴らしいって、ディレクトリやファイルの操作もVSCode上でできるのでプログラムが生成するログや画像をそのまま確認できる!
▼この記事を書いたひと

R&Dセンター 松井 良行
R&Dセンター 技術戦略担当部長。コンピュータと共に35年。そしてこれからも!
●富士見事務所 TEL : 052-228-8733 FAX : 052-323-3337
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711 地図
交通部 R&Dセンター


