ラズパイ5でスピードメーターを自作、Yoctoで専用Linuxごと組み上げる

デスクトップで動くアプリケーションを書けることと、それを組み込み機器の製品として仕立てることは別の作業にあたる。Raspberry Pi OSにアプリを置けば動きはするが、製品を名乗るなら不要な部分を削ぎ落としたOSを自分で組み、その中へ正規の手順で組み込む必要がある。

Mark Kitur氏は、PyQt5で作った自動車用スピードメーターのダッシュボードを、Yocto Projectで一から構築したLinuxイメージに載せてRaspberry Pi 5で動かした。Yocto Projectは、組み込み機器向けのLinuxディストリビューションを部品から組み立てるためのビルド基盤で、ビルドの実行はBitBakeというツールがレシピと呼ばれる定義に従って担う。

速度の値は外から受け取る。Arduinoが送るデータをUARTでRaspberry Pi 5へ渡し、Qt Serial Port経由で受けた値を速度に変換して画面に描く。表示はアナログのメーターとデジタルの数値、警告灯を備え、リアルタイムに更新される。

手順は、画面を設計してPythonアプリケーションを配布できる形にまとめ、独自のYoctoイメージを作り、アプリ用のBitBakeレシピを書き、ルートファイルシステムへ組み込んで実機で確かめる、という流れをたどった。組み上がったシステムでは、spedoと打つだけでメーターが立ち上がる。

途中で解いた問題として4点を挙げている。YoctoのdevtoolによるGitを軸にした進め方、Pythonパッケージの配置、組み込み環境に合わせたリソースパスの修正、そしてBitBakeが取得や適用、ビルドの各段階で出す不具合の切り分けだ。アプリのコードを書くだけでなく、ソフトウェアとOS、ハードウェアを1つのシステムに統合する工程を通して、組み込み製品の作られ方の理解が深まったとしている。

OSの側は「Mark OS」という別のリポジトリで公開している。位置づけは組み込みLinuxの学習用プラットフォームで、独自レイヤーのmeta-root_v1と、local.confやbblayers.confといった設定ファイル、Yoctoの内部構造に関する学習メモを収める。

ダッシュボード側は自動車のHMI開発の土台として設計しており、シリアル通信を介して実車のセンサーにつなぐ拡張を想定する。今後の項目にはCANバスへの対応、GPSからの速度入力、OBD-IIとの連携、起動時の自動実行、ROS 2との統合が並ぶ。ライセンスはMITを採る。

関連情報

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!

最新記事

YouTube / PodCast

【PR】読んで役立つ注目記事

目次