IoTの始め方~.NET Micro Framework編

3,804 views

Published on

MVP Community Camp 2015名古屋会場での発表資料です。
IoTのデバイス側を構成するマイコンボードの代表機種を紹介するとともに、.NET Micro Framework対応のマイコンボードによるプログラミング例を紹介します。

デモにつかったプログラムは後日スライドに補足するとともに、GitHubで公開します。

Published in: Engineering

IoTの始め方~.NET Micro Framework編

  1. 1. IoTの始め方 ~.NET Micro Framework編~ @2015 MVP Community Camp(名古屋会場) 2015/1/31 まどべんよっかいち 青木 宣明 (@kumar0001)
  2. 2. 概要 .NET Micro Framework対応マイコン ボードとMicrosoft Azureを使ったIoTの 始め方を紹介します 内容 • マイコンボードの種類、できること • .NET Micro Frameworkの開発環境 • プログラミング例 センサーの読み取り .NET MFとAzure Mobile Serviceとの連携
  3. 3. IoTの構成要素 IoT~Intenet of Things~モノのネットワーク
  4. 4. de:code 2014 “DE-003 Internet Of Things を Windows プラットフォームで実践”より IoT~デバイスとクラウド
  5. 5. デバイスの要素 マイコンボード 環境センサ GPS サーボ 通信
  6. 6. デバイスの構成 マイコンボード 環境センサ GPS スマートフォン 独立したデバイス スマートデバイス +マイコンの補助 マイコンボード +Bluetooth 環境センサ 今回はここを 第10回まどべん
  7. 7. マイコンボードの代表例 mbed .NET Micro Framework Arduino Raspberry Pi Intel Edision NXP LPC1768 Netduino Plus 2 Arduino UNO R3 Raspberry Pi B+ Intel Edision
  8. 8. .NET Micro Framework • 組み込み向け.NET Framework • ARM, SH, x86などに 対応 • 256KB Flash ROM, 64KB RAMの小さな環 境向け • 言語はC#, VB.NET • オープンソースとし て開発 • http://netmf.codeplex.com/
  9. 9. .NET Gadgeteer • GHI Electronics社の マイコンボード • ガジェッターソケッ トを備えたタイプ • Arduinoシールド互換 のタイプ • mbed NXP LPC1768の ようなDIPタイプ • 購入先 • http://tinyclr.jp/ FEZ Spider FEZ Cerb40 FEZ Cerbuino Net
  10. 10. .NET Gadgeteer情報源 MSDNブログ • 「デバイスとITの架け橋」 http://blogs.msdn.com/b/hirosho/ 学習サイト • Internet of Things キット ハンズオン ト レーニング http://ms-iotkithol-jp.github.io/
  11. 11. Netduino • オープンソースの マイコンボード • Arduinoシールド互換 • 購入先 • スイッチサイエンス • 若松通商 • など Netduino Plus 2
  12. 12. mbed ARM社が提供する組み込み機器のプロ トタイプ開発環境 • ワンボードマイコン OSはない • オンラインコンパイラ Webブラウザでコード作成、バージョン管理 からコンパイルまで実行できる 豊富なライブラリ、サンプル 開発言語はC/C++ • オフラインコンパイル環境も
  13. 13. mbedの種類 http://developer.mbed.org/platforms/
  14. 14. Edison Intelが2014年9月に発売した超小型 コンピュータ • Atomプロセッサ搭載 • OSはLinux 公式のYocto Linux 1.6や、Debianなど • Wi-Fi, Bluetooth 2.1/LE搭載 • 開発言語は C/C++, Python, node.js monoも利用可能(検証中) • リモートデバッグが可能な開発環境 C/C++はEclipseベースのIDE
  15. 15. Edisonのボード Intel Edison Board for Arduino Intel Edison Breakout Board 秋月電子通商 Edison 2.54mm ピッチ変換基板
  16. 16. マイコンボードの選択 基本的な使い方は同じ • 外部入出力(GPIO, I2C, SPI, Analog, PWM, …) • クラウドへのアクセス(REST, JSON, …) など マイコンボード間の差異 • 価格 • 搭載機能 • OS搭載 vs OS非搭載 • 開発言語(C/C++, C#, Python, node.js, …) • 開発のしやすさ mbed: ライブラリの公開・利用、Wikiでの情報共有の 仕組み .NET MF: NuGetでのパッケージ公開・利用
  17. 17. .NET Micro Framework での開発例
  18. 18. Netduino Plus 2 1× I2C 14×デジタルI/O UART,PWM,SPI兼用 6×アナログI/O電源micro SD DC IN 7.5V-9V イーサネット (10Mbps) micro USB コード領域 384KB RAM 100KB リセットボタン OR GPIO入力
  19. 19. 入出力端子 GPIO • General Purpose Input/Output 汎用入出力 • 0 / 1の入出力 スイッチとかLEDの点灯などに使える
  20. 20. 入出力について I2C (Inter-Integrated Circuit) • 同期式の2線式のシリアル通信I/F シリアルデータ信号SDA シリアルクロック信号SCL • 複数のデバイスがバス接続される アドレスで区別される • 転送モード 標準モード(最大100kbps) ファースト・モード(最大400kbps) 高速モード(最大3.4Mbps) GND SDA SCL GND SDA SCL デバイス1 デバイス2
  21. 21. 部品などの配線 • ブレッドボード • リード線やピンを穴 に挿して配線する • 両側の各列が導通 (青色) • 電源・GNDは横方向 に導通(赤色) • はんだ付けせずに 配線を試せる
  22. 22. 配線例
  23. 23. プログラム開発 開発環境 SDK デモ
  24. 24. 開発環境 Visual Studio 2013 • .NET Micro Framework v4.3 (QFE2- RTM)からVS2013を正式にサポート! • サポートされるバージョン VS2013 Pro/Ult/Express VS2012 Pro/Ult/Express VS2014 CTP2~(実験的)
  25. 25. SDKのインストール .NET Micro Framework v4.3 (QFE2-RTM) • http://netmf.codeplex.com/releases/view/611040 • SDK同梱のVisual Studio拡張も導入する Netduino 4.3.1 SDK • http://www.netduino.com/downloads/netduinosdk_NE TMF43.exe Netduino Plus 2 Firmware v4.3.1 • http://forums.netduino.com/index.php?/topic/10479- netduino-plus-2-firmware-v431/
  26. 26. .NET Micro Framework 2015/1/26 v4.3 QFE2 RTMがリリース
  27. 27. ファームウエアアップデート MFDeploy MACアドレス DNSサーバアドレス 設定すること ファームウェア実施後に
  28. 28. デモ GPIO (Lチカ) I2C クラウドとのHTTP通信 Azure Survice Bus シリアル通信・アナログ入力・PWM SDカード 今日はここまで
  29. 29. プログラムの例① GPIO - Lチカ • 0 / 1の入出力 スイッチとかLEDの点灯などに使える • 基本は以下の3点 ① ポートの入出力に合わせて InputPort/OutputPortを生成 ② ポートを読み書きする
  30. 30. プログラムの例② • I2C • ADT7410(温度セン サー)での計測 • 処理の流れ ① 設定情報の初期化 ② I2Cの初期化 (アド レスを指定) ③ 読み込む位置を指 定 ④ 値の入力 (サイズは 配列長で指定)
  31. 31. プログラムの例② Mobile Serviceへのアップロード ① POSTでJSONを送信する ② Microsoft.Azure.Zumo.MicroFramewo rkを利用 Windows Azure Mobile Servicesクライアン トを.NET MFへ非公式に移植したもの データのEntityクラスを定義 モバイルサービスクライアントを使ってCRUD を実行する “400 Bad Request”が発生するため調査中…
  32. 32. まとめ
  33. 33. まとめ .NET Micro Frameworkでのデバイス作成 • GPIO/I2C/UARTなどの外部入出力は他のマイコンと 同じ 開発環境・言語 • Visual Studio 2013が使える • C#のこれまでのノウハウを使える • NuGetでライブラリが使える
  34. 34. 今後の課題 サービスバスを使ったデータ登録 • 頻度、測定箇所が増えた場合への対応 検証から本番への移行 • 外に持ち出して使えるように基板、電源、通信方法を検討

×