.NET nanoFrameworkはC#を用いて組み込みシステムを開発することができるプラットフォームです。
今回は開発に必要な環境を準備していきます。
必要なもの
ハードウェア
・PC(Windows、Mac、Linuxどれでも大丈夫だと思いますが今回はWindowsマシンです)
・ESP32デバイス(入手しやすいです。Devkitでもいいし、M5シリーズでも可。おすすめは M5StickC or M5ATOM)
ソフトウェア
・Visual Studio 2019 or VS Code (VS2019の方が簡単かな・・・)
・.NET SDK or .NET Runtime (5.0以上)
環境の構築
・VisualStudio2019 と .NET SDK のインストールは済ませてください。
・デバイスをPCに接続してデバイスマネージャーを起動し、COMポートの番号を確認しておきます。
・ターミナルを起動しファームウェア書き込みツールをインストールします。
> dotnet tool install -g nanoff
・デバイスにあったファームウェアを検索します。
> nanoff --listtargets --preview
.NET nanoFramework Firmware Flasher v2.0.9+947a088d7c
Copyright (C) 2019 .NET Foundation and nanoFramework project contributors
Listing targets from 'nanoframework-images-dev' repository [PREVIEW]...
Listing targets from 'nanoframework-images-community-targets' repository...
Available targets:
ESP32_PSRAM_XTAL26_REV0
1.7.3-preview.106
1.7.3-preview.105
ESP32_PICO
1.7.3-preview.106
1.7.3-preview.105
M5Core2
1.7.3-preview.105
ESP32_PSRAM_REV3
1.7.3-preview.106
1.7.3-preview.105
ESP32_OLIMEX
1.7.3-preview.106
1.7.3-preview.105
M5StickCPlus
1.7.3-preview.105
ORGPAL_PALTHREE
1.7.3-preview.106
ST_NUCLEO64_F091RC
1.7.3-preview.106
TI_CC1352R1_LAUNCHXL_868
1.7.3-preview.106
1.7.3-preview.105
M5StickC
1.7.3-preview.105
1.7.3-preview.91
ESP32_REV0
1.7.3-preview.105
M5Core
1.7.3-preview.105
KALUGA_1
1.7.3-preview.105
ESP32_REV3
1.7.3-preview.105
ESP_WROVER_KIT
1.7.3-preview.156
FEATHER_S2
1.7.3-preview.156
ESP32_LILYGO
1.7.3-preview.156
ESP32_BLE_REV0
1.7.3-preview.156
ESP32_PSRAM_REV0
1.7.3-preview.156
ST_STM32F769I_DISCOVERY
1.7.3-preview.156
TI_CC1352R1_LAUNCHXL_915
1.7.3-preview.156
ST_STM32F429I_DISCOVERY
1.7.3-preview.156
NXP_MIMXRT1060_EVK
1.7.3-preview.156
WIN32_nanoCLR
1.7.3-preview.42
ST_NUCLEO144_F439ZI
1.7.0.62
1.7.0.60
ST_NUCLEO144_F746ZG
1.7.0.62
1.7.0.60
NETDUINO3_WIFI
1.7.0.45
1.7.0.43
ST_STM32F4_DISCOVERY
1.7.0.62
1.7.0.60
TI_CC1352P1_LAUNCHXL_915
1.7.0.62
1.7.0.60
TI_CC1352P1_LAUNCHXL_868
1.7.0.62
1.7.0.60
PybStick2x
1.7.0.62
1.7.0.60
ST_STM32F411_DISCOVERY
1.7.0.62
1.7.0.60
WEACT_F411CE
1.7.0.62
ST_NUCLEO144_F412ZG_NF
1.7.0.62
1.7.0.60
ST_NUCLEO64_F401RE_NF
1.7.0.62
1.7.0.60
MBN_QUAIL
1.7.0.62
1.7.0.60
GHI_FEZ_CERB40_NF
1.7.0.62
ST_NUCLEO64_F411RE_NF
1.7.0.62
I2M_OXYGEN_NF
1.7.0.62
1.7.0.60
I2M_ELECTRON_NF
1.7.0.62
BrainPad2
1.7.0.33
1.7.0.31
・デバイス用のファームウェアを書き込みます。例としてM5 ATOM Matrixに書き込んでみました。M5 ATOM Matrixはリストには載っていませんが、チップはESP32 PICOですのでtargetをESP32_PICOとしています。書き込みに失敗する場合は --baud 115200 を指定して転送速度を落としてみてください。
> nanoff --target ESP32_PICO --serialport COM8 --preview --update
.NET nanoFramework Firmware Flasher v2.0.9+947a088d7c
Copyright (C) 2019 .NET Foundation and nanoFramework project contributors
Using COM8 @ 1500000 baud to connect to ESP32.
Reading details from chip...
OK
Connected to:
ESP32 (ESP32-PICO-D4 (revision 1))
Features WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Flash size 4MB GD25Q32 from GIGADEVICE (manufacturer 0x200 device 0x16406)
PSRAM: not available
Crystal 40MHz
MAC 50:02:91:xx:xx:xx
Trying to find ESP32_PICO in development repository...OK
Downloading firmware package...OK
Extracting ESP32_PICO-1.7.3-preview.106.zip...OK
Updating to 1.7.3-preview.106
Erasing flash...
OK
Flashing firmware...
Wrote 24192 bytes (15088 compressed) at 0x00001000 in 0.4 seconds (effective 495.3 kbit/s)...
Hash of data verified.
Wrote 1013872 bytes (664299 compressed) at 0x00010000 in 9.6 seconds (effective 848.3 kbit/s)...
Hash of data verified.
Wrote 3072 bytes (136 compressed) at 0x00008000 in 0.0 seconds (effective 524.3 kbit/s)...
Hash of data verified.
OK
・ファームウェアの書き込みが終了したら一度デバイスはPCから外しておきます。
・VisualStudio2019を起動し「コードなしで実行」をクリックします。
・右上の検索ボックスに「nanoframework」と入力すると「.NET nanoFramework Extension」が見つかるのでダウンロードをクリックします。
・ダウンロード後一度VisualStudioを終了すると拡張機能のインストールが行われます。
・VisualStudioを再び起動します。プロジェクトテンプレートに「Blank Application(nanoFrmework)」が追加されているので選択して、「次へ」をクリックします。
・表示>その他のウィンドウ>Device Explorerを選択します。
・ここでデバイスを接続すると画面右側 Device ExplorerのDevicesに認識したデバイスが表示されます。
・デバイスが認識されているのを確認できたら、画面上部中央の.NET nanoFramwork Deviceボタンをクリックしてプログラムを実行します。
・画面下部の出力ウィンドウに「Hello from nanoFramework!」と表示されたらプログラムは問題なく実行されました。
以上 ここまでできればC#でマイコンプログラミングを行うための環境が整いました。
次は温度センサーを使ったプログラムを作ってみたいと思います。