Knurling Sessions 2020Q4 をやる (1) 〜環境構築〜

はじめに

knurling-rs では Ferrous Systems が、スポンサー向けに組込み Rust の教材 knurling-session を提供しています。

github.com

knurling-session では、3ヶ月ごとに1つのテーマを取り上げています。 最新のもの以外は、公開されています。スポンサーになると最新のものも見れます。 また、スポンサーが増えると、knurling-rs に割く時間が増やせるため、ツールの改善や教材の整備が増えることが期待できます。 興味を持ったらスポンサーしましょう!

現在公開されている knurling-session の 2020 Q4 をやっていきます。 2020 Q4 は、nRF52840-DK と CO2 センサーを使ったプロジェクトです。

2020 Q4 のレンダリングされているドキュメントはこちら。

session20q4.ferrous-systems.com

ハードウェア

ferrous-systems.com

主要なもの - nRF52840-DK (¥6,000くらい) - Mouser とか Digikey とかマルツで購入できます - SCD30 CO2 センサ (¥6,000くらい) - Digi-Key

あと、ePaper ディスプレイが挙げられていますが、いくつか SPI / I2C 接続可能なディスプレイデバイスを持っているので、それで代用することにします (embedded-graphics 使っているので大丈夫なはず) 。

ケーブル類など - RGB LED / 220Ω 抵抗器3つ - なくても nRF52840-DK の LED で代用可能 - ジャンパワイヤ - ピンヘッダ

ツール

cargo install でインストールします。

cargo install cargo-generate
cargo install probe-run
cargo install flip-link

Linux

USB ドライバと udev の設定をします。

sudo apt-get install libudev-dev libusb-1.0-0-dev

udev は knurling-session の手順では、JLink の Product ID が異なる場合があります。

$ cat /etc/udev/rules.d/50-knurling.rules
# udev rules to allow access to USB devices as a non-root user

# nRF52840 Development Kit
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1015", TAG+="uaccess"

nRF52840-DK を接続して、lsusb で Product ID を確認して、udev rule を書き換えるとうまく動きます。 私の場合は、0105 でした。

$ lsusb
Bus 001 Device 012: ID 1366:0105 SEGGER J-Link
sudo udevadm control --reload-rules

これで準備完了です。