Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microからnanoへ、進む.NET組込みアプリ開発環境の今

 Microからnanoへ、進む.NET組込みアプリ開発環境の今

(1) 最新の.NET組込みアプリ環境
(2) 実デバイスで実行するには
(3) M5Stackで環境を測定する
(4) Azure IoT Centralとは
(5) M5StackからAzure IoT Centralに接続する
(6) まとめ

HATSUNE, Akira

July 23, 2022
Tweet

More Decks by HATSUNE, Akira

Other Decks in Technology

Transcript

  1. Microからnanoへ、 進む.NET組込みアプリ 開発環境の今 2022/07/23 14:10 - 14:40 初音 玲 Microsoft

    MVP - Windows Development https://hatsune.hatenablog.jp/ 2022/07/23 NETラボ 勉強会 2022年07月
  2. 本日のアジェンダ 1. 最新の.NET組込みアプリ環境 2. 実デバイスで実行するには 3. M5Stackで環境を測定する 4. Azure IoT

    Centralとは 5. M5StackからAzure IoT Centralに接続する 6. まとめ 2022/07/23 NETラボ 勉強会 2022年07月
  3. .NET nanoFramework .NET nanoFrameworkとは ◼オープンソース ◼動作ターゲットは、組込みシステム(SoC) ◼開発言語はC# ◼.NET CLRと.NET基本クラスライブラリのサブセット(UWPベース) ◼Visual

    Studioを使って、開発、実デバイスへの転送とデバッグが可能 最小ハードウェア要件 2022/07/23 NETラボ 勉強会 2022年07月 .NET nanoFramework CPU ARM Cortex-M Xtensa LX6 (=ESP32) / L7 メモリ 64KB以上 ストレージ 256KB以上
  4. .NET nanoFrameworkアーキテクチャ 2022/07/23 NETラボ 勉強会 2022年07月 Hardware Mscorlib (System) System.Net

    その他の名前空間 アプリ Hardware Abstraction Layer (HAL) Platform Abstraction Layer (PAL) Common Language Runtime (CLR) Specific drivers .NET nanoFramework
  5. あれ?.NET MicroFrameworkは? .NET MicroFrameworkとは ◼.オープンソース ◼動作ターゲットは、組込みシステム(SoC) ◼開発言語はC# ◼.NET CLRと.NET基本クラスライブラリのサブセット ◼Visual

    Studioを使って、開発、実デバイスへの転送とデバッグが可能 2016年12月16日にGHI Electronicsが独自実装(TinyCLR OS)発表 ◼.NET MicroFrameworkのメンテナンスが実質止まっていたため 2017年1月23日に.NET nanoFrameworkへスピンオフ ◼.NET MicroFrameworkの一部流用 ◼大部分は書き直し(コードクレンジングと改善) ◼2018年10月12日に最初のバージョンを発表 ◼.NET IoT Librariesのターゲット 2022/07/23 NETラボ 勉強会 2022年07月
  6. .NET nanoFrameworkの開発環境 Visual Studio + .NET nanoFramework Extension ◼テンプレート ◼

    Blank Application ◼ Class Library ◼ Unit Test ◼nanoFramework.CoreLibrary 2022/07/23 NETラボ 勉強会 2022年07月
  7. .NET nanoFrameworkの実行環境 .NET nanoFramework Firmware Flasher (nanoff)で実行環境を転送 ◼.NET Core Tool

    ◼.NET Core CLIで「dotnet tool install --global nanoff」でインストール nanoFrameworkファームウェアを実デバイスに転送可能 ◼nanoff --target M5Core2 --update --serialport COM4 2022/07/23 NETラボ 勉強会 2022年07月
  8. nanoFrameworkのターゲット nanoff --listboardsでtargetに指定できる指定値一覧が表示可能 2022/07/23 NETラボ 勉強会 2022年07月 ESP32ボード ◼ ESP32_PSRAM_REV0

    ◼ ESP32_REV0 ◼ ESP32_PSRAM_XTAL26_REV0 ◼ ESP32_PSRAM_REV3 ◼ ESP32_REV3 ◼ ESP32_BLE_REV0 ◼ ESP32_BLE_REV3 ◼ ESP_WROVER_KIT ◼ ESP32_PICO ◼ ESP32_LILYGO ◼ FEATER_S2 ◼ KALUGA_1 ◼ ESP32_OLIMEX M5Stack ◼ M5Core ◼ M5StickC ◼ M5StickCPlus ◼ M5Core2 STM32ボード ◼ ST_STM32F429I_DISCOVERY ◼ ST_NUCLEO64_F091RC ◼ ST_STM32F769I_DISCOVERY ◼ ORGPAL_PALTHREE NXPボード ◼ NXP_MIMXRT1060_EVK TIボード ◼ TI_CC1352R1_LAUNCHXL_868 ◼ TI_CC1352R1_LAUNCHXL_915 ◼ TI_CC3220SF_LAUNCHXL Community Targets ◼ NETDUINO3_WIFI 他…
  9. M5Stackシリーズ ATOM Lite ◼ 24 x 24 x 10 ◼

    ESP32 PICO ◼ 520 KB 2022/07/23 NETラボ 勉強会 2022年07月 M5StickC Plus ◼ 48.2 x 25.5 x 13.7 ◼ ESP32-PICO-D4 ◼ 520 KB M5Stack Core 2 ◼ 54 x 54 x 16 ◼ ESP32-D0WD-V3 ◼ 16 MB
  10. M5Stack Core 2向けに整える 環境拡張 ◼.NET nanoFramework Firmware Flasher (nanoff)導入 ◼.NET

    nanoFramework Extension導入 ファームウェア転送 ◼nanoff --target M5Core2 --update --serialport COM4 ハードウェア固有ライブラリ(NuGet) ◼nanoFramework.M5Core2 注意 ◼ファームウェアとハード固有ライブラリは最新合わせ ◼2022/07/22現在の最新:ファームウェア(1.8.0.431) vs ライブラリ(1.1.12) 2022/07/23 NETラボ 勉強会 2022年07月
  11. HelloWorldコード public class Program { public static void Main() {

    Setup(); Console.WriteLine("HelloWorld"); } private static void Setup() { M5Core2.InitializeScreen(); } } 2022/07/23 NETラボ 勉強会 2022年07月
  12. M5Stack Core 2のインターフェース USB ◼電源 ◼シリアル接続 (TXD3, RDX3) PORT.A ◼I2Cシリアルバス規格

    ◼I2CはArduinoでもおなじみの規格 M-Bus ◼ESP32のピンを取り出しているI/F M5StackのStackとは ◼サイズとM-Busの位置を合わせた モジュールを積み重ねて機能拡張 2022/07/23 NETラボ 勉強会 2022年07月
  13. Azure Azure IoT Central 2022/07/23 NETラボ 勉強会 2022年07月 MQTT IoT

    Device IoT Device MQTT AzureのSaaSサービス ◼IoTデバイスとの双方向通信を実現 ◼収集したデータの蓄積 ◼収集したデータの表示 ◼収集したデータの分析 IoT Central IoT Hub DPS Stream Analytics Data Explorer
  14. 初期化:追加コード Wi-Fi初期化 DSP接続 IoT Central接続 2022/07/23 NETラボ 勉強会 2022年07月 ←ルートCA証明書

    ←ルートCA証明書 ←IoT Centralでのデバイス定義 ←IoT Centralでのデバイス定義 ↓DSPホスト名