この文章は、ZephyrRTOS Advent Calendar 2024 1 の20日目のエントリとして書かれました。
はじめに
nRF Connect SDK Fundamentals 2 (以下、コース)は、nRFファミリーで、Zephyrを使って開発していくハンズオン教材です。
開発環境には、VSCodeが使われています。
手順が親切丁寧に説明されており、必要な概念もしっかり解説されているので、nRFでZephyrの入門をするのには、適した教材だと思います。
以下、コースの説明に従って、micro:bitでLチカ(ディスプレイチカ?)ができるところまでを試してみます。
一部、コース通りではなく、micro:bit利用のための独自事項がありますので、そこを詳しく説明していきます。
環境構築
以下のように、動作に必要な環境を構築していきます。
VSCode開発環境
ここでの開発は、VSCode上で行います。
そのための準備を行います。
コースの中で、動画付きで詳しく環境構築の方法について解説されているので、ここでは詳細は省略します。
概略は、以下の通りです。
- nRF Command Line Toolsのインストール
- VSCode関連
- VSCodeのインストール
- nRF Connect拡張機能のインストール
- ツールチェーンのインストール
- nRF Connect SDKのインストール
micro:bitをJ-Link用にする
デフォルトでは、VSCodeからはJ-Linkを経由した書き込みが仮定されています。
このため、J-Link用のデバイス(J-Link Edu 3 など)が必要になるのですが、micro:bitには以下のようなJ-Link化するファームウエアが用意されています。
導入は、このページの説明の通りに行えば大丈夫です。
ただし、ここで提供されているファームウエアは、現在普通に流通しているmicro:bit v.2.2では使えないようです。v.1.5かv.2.0を用意してください。
概略は以下の通りです。
- micro:bitをメンテナンスモードで起動します。
- リセットボタンを押しながら、電源を投入します。
- ファームウエアのHexファイル(
JLink_OB_BBC_microbit_22-11-16.hex
(v.1.5用),JLink_OB_BBC_microbitV2_22-11-15.hex
(v.2.0用)を現れたMAINTANANCEフォルダーにコピーします。
デモコードの実行
サンプルにmicro:bit用のデモコードが3つ用意されています。
- display: 5x5 LED画面に数字、文字、パターンなどを表示します。
- sound: 音を出し、その周波数をボタンで変更します。
- pong: pongゲームで、マルチプレーヤーにも対応しています。
はじめに、"Create a new application"を選び、"Copy a sample"を選択します。
次に検索ペインに"micro"などと入力すると、micro:bitで利用可能な選択肢が出てきます。
ここでは、"BB micro:bit Display"を選択しました。
これで、デモのソースコードにアクセスできるようになりました。
次に、ビルドを行います。
- "APPLICATIONS"で"+ Add build configuration"を選択します。
右のような表示が現れるので、"Board target"で"bbc_microbit/nrf51822"(v.1.5用)か"bbc_microbit_v2/nrf52833"(v.2.0用)の利用する方を選びます。あとはデフォルトで大丈夫です。 - 一番下の"Build Configuration"ボタンで設定が保存されます。
"ACTIONS"で、"Build"することでソースがBuildされます。
Buildが成功した後で、"Flash"すると実際にボードにプログラムが書き込まれ、プログラムが実行されます。
デモは、下の画像のようにmicro:bitの5x5LEDに数字やパターン、文字などを表示するものになっています。
おわりに
nRF Connect SDK Fundamentalsに従って、micro:bitでハンズオンをしてみました。
今回の内容は、Lesson 1 – nRF Connect SDK Introduction 5までの内容になっています。
これを終わらせても、まだコースの9%しか終わってません。これからどんな内容なんでしょうか?楽しみですね!!
Enjoy your Zephyr life with micro:bit!!
About 610t
むとうたけし(武藤武士(wǔ téng wǔ shì)) a.k.a 610t
- 奈良在住
- 専業主夫
- 54歳(1970/06/19生まれ)
- 詳細: https://scrapbox.io/610t/610t
私、専業主夫だから、
端切れでパッチワークする様に、
http://github.com/610t でpatch workするの。
BSDとScratch/SqueakとM5Stackの狭間で生きているニッチな生き物。自転車とものづくりと人にものを教えていやがられるのが好き。
-
https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/ ↩
-
https://embeddedcomputing.weebly.com/segger-j-link-edu-programmer-debugger.html ↩
-
https://www.segger.com/products/debug-probes/j-link/models/other-j-links/bbc-microbit-j-link-upgrade/ ↩
-
https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-1-nrf-connect-sdk-introduction/ ↩