組み込みもDockerで環境構築できる時代
開発環境の悩み
だいぶ前に買ったRaspberryPi Picoの無印や無線が付いたHW。
RaspberryPi Pico自体の開発環境はいくつかありますが、少し前からRustでできる事を確認していて、気になっていました。
遊んでみたい気持ちはぼちぼちありましたが、ネイティブな開発環境を用意する例が多く、実際様々なツールをPCに入れても良かったのですが、PCの入れ直しなどでまた環境構築をし直すとなるとめんどくさいですよね。
そこでDockerでどうにかできないかと調べてみたところちょうど良さげなプロジェクトがあったのでそれを採用することにしました。
Baker link. Env
以前よりよく使っているVSCodeの拡張機能のDevContainers機能(+Docker)とrustで書かれたデバッグツールキットのprobe-rsをセットアップするだけでRustの組み込み開発環境ができます
本来Rustの開発環境を構築する必要がありますが、テンプレートとDockerによりRasberryPi Picoの開発環境が簡単に手に入ります
また、ARMのデバッグプローブを採用しているマイコンも書き込みデバッグができます。
今回はこのツール群のセットアップとprobe-rsのサーバーを立ててくれるBaker link. Envを使うことにしました。
これでセットアップすれば開発環境が手に入ります
Baker link. Dev
同じ作成者が開発したRaspberryPiPico互換のボードです
Type-Cを採用していたり、デバッグプローブの代わりにRS2040が搭載(Pico互換とデバッグプローブの2つ)されていたりと本家より機能が豊富です
今回はチュートリアルのサンプルを動かすために用意しました
(一応プローブデバイスとしても動作します)


RasberryPiPico二つと追加のLEDがいくつか付いています
今回はテンプレートに内蔵されているチュートリアル通りに動かしてみます
信号機(光るだけ)
テンプレートで作成したプロジェクトのtraffic_light.rsをmain.rsにコピーして動かします
現時点だとDockerビルド=Dev Containerの起動ができないので修正します
FROM rust:1.79.0-bullseye RUN rustup target install thumbv6m-none-eabi RUN cargo install flip-link --version 0.1.9
現時点でflip-linkの最新バージョンが変更があったのか動かないのでバージョン指定しています(大体1ヶ月前ぐらいにアプデがあったらしい)
後はDev Containerを起動して、F5を2回押すだけで接続した Baker link. Dev が光りますヤッター
ところでRustである必要があるのか
しょーじきな話まだまだ情報が出てないのがなんとも言えない感じですが、Rust自体安定かつ安全な言語であるので、言語を理由にいろいろ環境を変えてきた身としては主要言語にしたい気持ちがほぼ占めています。
まぁもちろんC/C++で開発しても良いですが(情報も多いし)…何かねおもしろくないじゃん(?)
MicroPythonはなんか違う気がする(試したことはない)
参考




コメント