40.環境構築のおさらい (2023.3.23-2023.11.18)

新たに庭の監視用のシステム(GARDEN-TEC)を作ろうと考え、手持ちのRasPiモデル3Bを使って環境構築をすることにしました。2023年3月下旬の時点でRaspberry Pi Imagerの最新バージョンは1.7.4です。新たなインストーラーのおかげでRasPiのOSセットアップ自体はずいぶん簡単になりました。一方で、Pythonを使って様々なプログラムを動かそうとすると、別途環境構築作業が必要になります。これが案外面倒な上、バージョンによる変更等も加わって厄介です。しかも、しばらくするとやり方自体を忘れてしまうから困ります。そのため、環境構築作業は確認も兼ねて定期的に行った方が良さそうです。今回は覚書きとするために、おさらいをしながら作業を進めることにしましょう。

まず必要なのはRaspberry Piの設定です。これはデスクトップ左上のメニュー(RasPiアイコン)からこの項目を選択します。設定の中でディスプレイはHDMIの解像度1920×1080にします。またヘッドレス解像度(ディスプレイを接続しない場合の画面解像度)も同じに設定します。ここは各々の環境に合わせて設定すれば良いと思います。次にインターフェースです。以前はカメラを有効にするか無効にするかも設定できたのですが、最新では項目自体が無くなってしまいました。元々Configの設定で行うものだったので、追って旧来の方法での設定を説明します。カメラ以外では次の項目を有効にしました。これもRasPi/Pythonで利用するかどうかで判断して下さい。
・SSH
・VNC
・SPI
・IIC
・1-Wire

SSHやVNCは別のコンピューター(WindowsやMac等)からRasPiをリモートで操作するのに必要になります。RasPiは庭に設置するため直接操作するのは困難なことから、室内のPCからのリモート操作は必須と言えます。同様に、組み込みコンピューターとして利用する場合には、やはりリモートの方が扱い易いと思います。他の3つはPythonでGPIOを使う際に通信方法として使う機能なので有効にしておくと良いでしょう。カメラを有効にするために、旧来のConfigで設定するにはターミナルで次の操作をします。
sudo raspi-config
そうするとConfigの設定ダイアログが表示されるので、3.Interface Optionsを選びます。表示された選択肢からI1 Legacy Camera Enable/disable legacy Camera supportを選び、その後、はい、了解、Finishの順に選択して設定を完了します。

続いてカメラを簡単に扱えるようCV2をインストールします。注意点として、CV2はこの時点で最新が4.7.0.72となっていますが、実際にインストールしようとするといつまでたっても処理が終わらず、最終的にシステムが不安定になってリモートも切断されてしまいました。何か不備があるようです。そこで以前のバージョンを指定してインストールすることにします。ネットで確認すると4.6.0.66でインストールできそうだったので選択しました。次のようにターミナルで操作します。
sudo apt install -y libatlas-base-dev
pip install numpy --upgrade
pip install opencv-python==4.6.0.66

因みにnumpyのバージョンは1.24.2になっていました。

ディスプレイにGARDEN-TECの情報を表示するウインドウを用意するため、CANVASと呼ばれる描画のためのモジュールを導入します。この時に必要になるのがPILのImageとImageTkで、ターミナルを使ってインストールします。
sudo apt-get install python3-pil.imagetk

カメラは手持ちのRasPiカメラを使いますが、固定では面白く無いので周囲を見渡せるようにカメラにパン・チルト機能を追加したいと思います。以前に紹介したように、既にサーボモーター2個を組み込んだ台があるので、これを制御するためにPWMドライバが使えるようにします。RasPiにはPWMをGPIOで使う機能が用意されていますが、今回はPCA9685と呼ばれる外部ハードウェアによって実現します。これは16個までのサーボ等をPWM制御できる便利なボードで、I2C通信でRasPiから簡単に制御できます。

<追記(2023.11.18)
2023年11月現在、この環境構築のおさらいは有効では無くなったようです。同じRaspberry Pi Imagerのバージョン1.7.4(現時点での最新は1.8.1)で同じように進めたのですが、エラーが多発して環境構築ができませんでした。この記事を書いた今年の始めには問題ありませんでしたが、その後色々と変更されたものと思われます。そもそもリモートのためのVNCサーバーが起動せず、ネットで調べてみましたが有効な対策が見つかりませんでした。また、IPアドレスの固定化においても、従来のdhcpcd.confの編集では対応できなくなっています(ファイルそのものが存在しない)。これはNetwork Managerでの管理に変更されたためらしく、タスクバー右上のネットワークアイコンから編集作業を行う(Advanced Optionsにて)必要があります。未だ発展途上なのかもしれませんが、使用する立場からすればコロコロ中身が変わるよりも平易に本来の作業に没頭できることが重要で、環境構築すらままならないようでは困ります。結局、新規にセットアップするのは断念しました。

仕方無いので、BOUHAN-TECで使用していた過去のOSのバックアップ(本記事を書いた時点のもの)を使って復元しました。今のところ3種のTECシリーズで使うには不足は無さそうです。当分はこれを元にして新たなセットを組むつもりです。いずれは最新版でのセットアップを再度試みたいと思います。復元のための手順は「48.RasPiシステムのバックアップ」で紹介しています。