Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IoT ALGYAN ハンズオンのソースコード解説します

59 views

Published on

Techfair.jp 2016年3月 (2016年3月19日開催) セッション資料

Docs.com サービス停止のため、資料を引っ越しました。
Slideshare 公開時点では古い内容ですが、記録・参考として公開します。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

IoT ALGYAN ハンズオンのソースコード解説します

  1. 1. 瀬尾佳隆 (@seosoft) Microsoft MVP for VS Dev Tech / Windows Dev Techfair.jp 2016年3月 2016年3月19日 IoT ALGYAN ハンズオンの ソースコード解説します
  2. 2. おことわり 本資料は、2016年3月19日時点の内容です Slideshare 公開した 2018年1月時点では 古い内容ですが、記録・参考として公開します
  3. 3. 自己紹介 瀬尾佳隆 (せおよしたか) • MVP for Visual Studio and Dev Tech • MVP for Windows Development • http://yseosoft.wordpress.com/ • 乃木坂46 / AKB48G、仏像 / 屏風絵が好き  Techfair 主宰 (http://techfair.jp/)  IoT ALGYAN 運営委員 (https://www.facebook.com/groups/ioytjp/)
  4. 4. 本日のお題 環境構築 ハンズオンのソースをざっくり見る GR-PEACH + NETMF を使ってみる ライブラリを使ってみる Raspberry Pi 2 を使ってみる
  5. 5. 最初に この資料を参照してください • http://bit.ly/algyan_source_explain 説明用のサンプルコードをダウンロードしてください • http://bit.ly/netmf_samplecode
  6. 6. 環境構築
  7. 7. Visual Studio + NETMF SDK Visual Studio • http://visualstudio.com/ NETMF SDK v4.3 (QFE2-RTM) • http://netmf.codeplex.com/ 手順はMS 太田さんブログ • https://blogs.msdn.microsoft.com/hirosho/201 5/09/13/2015910iot2106/ 会場にいる方はインストール済みのはず・・・
  8. 8. GR-PEACH の初期設定 手順はハンズオン資料の 9ページから GR-PEACH を無償で入手した方 • ファームウェアインストール済み • MAC アドレス設定済み 購入した方、環境を壊してしまった方 • ハンズオン資料の手順で初期設定をします
  9. 9. VS の拡張機能には注意 自動で降ってくる NETMF 用拡張機能は NETMF 4.4 用 • これが有効だとビルドも デバッグ実行もできません ひとまず自動アップデートを 止めておきます
  10. 10. VS の拡張機能には注意 4.4.0.0 がインストールされてしまった場合 • http://bit.ly/netmf_ext_downgrade • アンインストールしてから 再インストール
  11. 11. ハンズオンのソースをざっくり眺める
  12. 12. ハンズオン資料とソースコードの入手 ハンズオン資料 • https://docs.com/ota-hiroshi/2325/iotver3 ハンズオンのソースコード(支援フォルダー) • http://aka.ms/IoTKitHoLV2Support 2016年3月15日付の V3 の資料とソースを使い ます
  13. 13. ハンズオンのソースをざっくり眺める Visual Studio の CodeMap があると便利 • Enterprise Edition が必要です 「さすがにそれは無理」という方は・・・ • 地道にコードを追いましょう • ただし、ハンズオンのソースは特に難しい構造ではないです
  14. 14. ハンズオンのソースをざっくり眺める
  15. 15. ハンズオンのソースをざっくり眺める まずは Program, ProgramInitialize
  16. 16. ハンズオンのソースをざっくり眺める 加速度センサー 温度センサー LED LED を点滅 させてるらしい
  17. 17. ハンズオンのソースをざっくり眺める NIC 初期化と IP アドレス取得 ※今回の対象外 NTP で時刻合わせ ※今回の対象外 Web接続テスト ※今回の対象外 見てみましょう
  18. 18. ハンズオンのソースをざっくり眺める 定期的にセンサー データを取得する タイマー 定期的にクラウドに アップするタイマー ※今回の対象外 IoT Hub の設定 ※今回の対象外
  19. 19. ハンズオンのソースをざっくり眺める 加速度センサー 改めて LED温度センサー
  20. 20. ハンズオンのソースをざっくり眺める I2C デジタル出力デジタル入力 今日はここ
  21. 21. GR-PEACH + NETMF を 使ってみる まずは Lチカ
  22. 22. まずは Lチカ (開発の手順の確認) 1. Visual Studio 起動 2. [Micro Framework]-[Console App]
  23. 23. まずは Lチカ (開発の手順の確認) 3. “Microsoft.SPOT.Hardware” を参照設定
  24. 24. まずは Lチカ (開発の手順の確認) 4. Program.cs を開く 5. コード入力 http://bit.ly/grpeach_lchika_cs
  25. 25. まずは Lチカ (開発の手順の確認)
  26. 26. まずは Lチカ (開発の手順の確認) 6. 転送先は “GR_PEACH_GR_PEACH”
  27. 27. GR-PEACH + NETMF を 使ってみる NETMF の要素を順に確認
  28. 28. デジタル出力 OutputPort • 文字通り “汎用的に利用できる入出力ポート” • ピンアサインで “D” で始まるピンが使える http://bit.ly/netmf_outputport GPIO (=General Purpose I/O) ポート番号はボードによってまちまち • ここが分かりづらい・・・
  29. 29. デジタル出力
  30. 30. GR-PEACH のポート番号 http://www.core.co.jp/product/m2m/gr-peach/
  31. 31. GR-PEACH のポート番号 P6_12 ならば、ポート番号は 0x6c (※10進数の 12 は16進数では C)
  32. 32. (関連)デジタル入力 InputPort センサーや電子部品の On/Off を識別 • ピンアサインで “D” で始まるピンが使える http://bit.ly/netmf_inputport データ取得は明示的に読みに行く
  33. 33. (関連)デジタル入力
  34. 34. (関連) 割り込み付きデジタル入力 InterruptPort センサーや電子部品の On/Off を識別 • 入力値の High/Low が切り替わったタイミングで イベントを投げてくれる • ピンアサインで “D” で始まるピンが使える • http://bit.ly/netmf_interruptport ポーリングしなくてもいい!
  35. 35. (関連) 割り込み付きデジタル入力
  36. 36. アナログ入力 AnalogInput 電子部品が接続されたピンの電圧を取得 • PinKit でいうと、サーミスター(温度センサー) • ピンの電圧を A/D 変換した値が取れます • GR-PEACH の分解能は 4096 • http://bit.ly/netmf_analoginput
  37. 37. アナログ入力
  38. 38. アナログ入力の注意点 AnalogInput コンストラクターの引数 • チャンネルを指定する • ポート番号ではない ピン アナログチャンネル AD0 0 AD1 1 AD2 2 AD3 3 AD4 5 AD5 7
  39. 39. (少し脱線) サーミスターから温度取得 サーミスターは温度によって抵抗値が変わる素子 温度を求める計算式があります • http://bit.ly/thermistor_to_temp https://ja.wikipedia.org/wiki/%E3%82%B5%E3%83%BC%E3%83%9F%E3%82%B9%E3%82%BF
  40. 40. I2C (Inter-Integrated Circuit) I2CDevice • ただし少し使いづらいので継承クラスを用意するとよい • http://bit.ly/netmf_i2cdeviceex_cs 電源線 2本で双方向通信できるモジュール • http://bit.ly/netmf_i2c 複数の I2C モジュールで信号線を共用できる • マイコンボードのピンの消費が少ない
  41. 41. I2C (Inter-Integrated Circuit) I2CDeviceEx
  42. 42. I2C (Inter-Integrated Circuit) Adxl345
  43. 43. I2C (Inter-Integrated Circuit) Program
  44. 44. ライブラリを使ってみる
  45. 45. GR Family Library の入手 http://bit.ly/grfamilylib
  46. 46. GR Family Library の使い方 単なる DLL です プロジェクトで 参照設定すれば OK
  47. 47. GR Family Library の使い方 DLL 名 用途 Peach.dll GR-PEACH およびピン定義 Sakura.dll GR-SAKURA およびピン定義 SensorBoard.dll PinKit センサーボード NetworkUtility.dll ネットワーク関連のユーティリティ ModuleBase.dll センサーモジュールの基底クラス(現在は I2C 用基底クラスのみ) AnalogSensor.dll アナログ入力の汎用クラス LiquidCrystal.dll 液晶キャラクターディスプレイ (GPIO 接続) I2CLiquidCrystal.dll 液晶キャラクターディスプレイ (I2C 接続) Adxl345.dll 加速度センサー ※2016年3月現在
  48. 48. デジタル出力 – オンボード LED
  49. 49. デジタル入力 – オンボードスイッチ
  50. 50. アナログ入力 – サーミスター
  51. 51. I2C – 加速度センサー
  52. 52. I2C – 加速度 + LCD
  53. 53. Raspberry Pi 2 を使ってみる
  54. 54. Windows 10 IoT の環境構築 http://ms-iot.github.io/content/en- US/GetStarted.htm IoT Core Dashboard で Window 10 を インストールします • DragonBoard 410C は Dashboard を使わずに インストール
  55. 55. Windows 10 IoT の環境構築 OS インストール直後に必要なもの • HDMI ディスプレイ • キーボード • マウス 一度起動できれば、あとは本体だけで OK • センサーデバイスとして使う場合
  56. 56. NETMF との違い センサーはファクトリークラスに作ってもらいます • var gpio = GpioController.GetDefault(); • ストアアプリでセンサーを使う時の流儀と同じ 必ずシャットダウンしてから電源を切ってください • ファイルシステムが壊れると起動しなくなるかも ラズパイはアナログ入力を持ってない • I2C なモジュールを用意してください
  57. 57. (脱線) ラズパイのお供に GHI のシールドがあると便利 • http://tinyclr.jp/ • https://www.ghielectronics.com
  58. 58. デジタル出力
  59. 59. デジタル入力
  60. 60. I2C
  61. 61. Rpi Library はないの? 検討中・・・です • PEACH の新センサーボードもありますし、少し長い目で見て ください • もしくは一緒に / 率先して作ってください!
  62. 62. まとめ マイコンボードは決して難しくないです • 慣れていないだけ • ポイントが分かれば誰でも書けます 面倒な部分は、ヘルパークラスやライブラリを利用 http://bit.ly/grfamilylib • ぜひ活用してください • 大事なのは皆さんがそれぞれソリューションを作ること
  63. 63. IoT ALGYAN https://www.facebook.com/groups/ioyt jp/

×