LoginSignup
1
0

More than 1 year has passed since last update.

Zero + Bullseye + Node-RED + CHIRIMEN環境のセットアップ覚書

Last updated at Posted at 2022-10-17

はじめに

CHIRIMENにZero/Zero2用のBullseyeイメージがアップされてたので早速使ってみたのですが、Node-REDがうまくはいらなかったので、Bullseye 32bit lite上にNode-RED + CHIRIMEN環境を作ります。

基本環境

・Raspberry Pi Zero W
・Bullseye 32bit lite
のmicro sdを作って、Wi-FiとかUSB OTG SSHとかで操作します。

Node-REDをインストール

sudo apt-get update -y
sudo apt-get upgrade -y
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

以上でサクッとNode-REDが入りました

今後は自動起動するようにしておきます。 環境次第かと思いますが、以下のコマンドだと、メモリ不足のせいか起動しないことも。

sudo systemctl enable nodered.service

公式推奨の省メモリ起動をcrontabで自動起動させます。
まずはスクリプトを作っておいて

nano node-red-start.sh

スクリプト中身

node-red-pi --max-old-space-size=256

crontabにコマンド追加

crontab -e

初めて起動するときはエディタに何を使うか聞いてくるのでお好みで。
よくわからない人はnanoを選んでおくとよいかな。
設定ファイルの一番最後に一行追加して保存

@reboot /home/airpocket/Workspace/node-red-start.sh

airpocketのところは自分のuser名を。

Web-I2C-API と Web-GPIO-APIをインストール

作業用フォルダとしてWorkspaceを作ってインストールします。

mkdir Workspace
cd Workspace
npm init -y
npm install node-web-gpio node-web-i2c

CHIRIMEN関係のライブラリは$HOMEに置くことにしました。

cd $HOME
wget https://github.com/chirimen-oh/chirimen/archive/refs/heads/master.zip
unzip master.zip
mv chirimen-master/ chirimen/

OpenCV をインストール

RasPiをセットアップしたらとりあえずOpenCVを入れておくのがお作法です。
Bullseye lite版にはpipが入ってなかったので、pipをインストールするところからです。

sudo apt install python3-pip

以前の記事通り進めて、numpyのバージョンアップをしたらOKでした。

sudo apt-get -y install python3-dev python3-pip libgl1-mesa-dev libopenjp2-7-dev libavcodec-extra58 libavformat58 libswscale5 libgtk-3-dev liblapack3 libatlas-base-dev
pip install opencv-python opencv-contrib-python
sudo apt-get -y install libgl1-mesa-dev
sudo pip install numpy --upgrade

Raspberry Camera V1設定

今回の用途ではRaspberry Camera V1相当のSpy Cameraを使います。イメージセンサはOV5647が載っているためこのカメラ使用の設定も行います。

sudo raspi-config

でメニューを立上げ、「3 Interface Options」⇒「I1 Legacy Camera Enable/disable legacy camera support」⇒「yes」⇒「ok」とし、rebootして設定を有効にします。

/boot/config.txtの最後に次の1行を追加します。

dtoverlay=ov5647

v4l2を使って、カメラのステータスが読めます。

v4l2_ctl -L

libcamera-stillで画像を取得してみます。

libcamera-still -n -o test.jpg

動作テスト

では、Node-REDでlibcamera-stillを使って静止画を撮ってみます。
使用するのは「inject」ノードと「exec」ノードです。
二つのノードを接続して設定します。
image.png
image.png
image.png
image.png
設定ができたら、デプロイして実行してみましょう。
Workspacesフォルダに画像ファイルが出力されていれば成功です。

i2cの有効化

sudo raspi-config
3 Interface Optins => P5 I2C => yes

i2ctoolsのインストール

sudo apt install i2ctools
これでi2cdetect -y 1が使える

まとめ

Raspberry Pi Zero にCHIRIMEN +αの環境構築をしました。
Node-REDでの画像取得には「node-red-contrib-camerapi」というノードがありますが、Bullseyeではカメラの取り扱いが変わった為使用できません。execノードから直接libcamera-stillコマンドを使って撮影するのが簡単でした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0