16
Windows 10 IoT Coreハードウェアプロトタイピング 2015年8月22日 じゅげむ めとべや 東京#9

Windows10 IoT Coreとハードウェアプロトタイピング

Embed Size (px)

Citation preview

Page 1: Windows10 IoT Coreとハードウェアプロトタイピング

Windows 10 IoT Coreとハードウェアプロトタイピング2015年8月22日じゅげむ

めとべや東京#9

Page 2: Windows10 IoT Coreとハードウェアプロトタイピング

00 おことわり• 本資料は正式リリース前のバージョンのOSを使用し、作成されています。(Windows 10 IoT Core Insider Preview for Respberry Pi 2)• 正式リリースされてますが、未確認です。(すみません)• 本資料に記載されている内容は個人の見解であり、所属する組織を代表するものではありません。

2

Page 3: Windows10 IoT Coreとハードウェアプロトタイピング

00 自己紹介• じゅげむ

• Twitter : @jugemsan• http://pichi.net/jugemsan/

• 本業:某社でマネージャ• 経営企画(事業計画・イベント)・情報システム・リスク管理・広報 etc.

• 趣味:1997-2003 同人誌の作成2000-2004 同人誌即売会(オンリーイベント)の主催者2004-2011 >> 暗黒の社畜時代 <<2011- Windows Phoneのアプリ開発

3

Page 4: Windows10 IoT Coreとハードウェアプロトタイピング

01 Windows 10 と Windows 10 IoT

4

⇒Windows 10 IoT

⇒Windows 10 desktop⇒Windows 10 mobile

• Windows 10 =「ユニバーサル Windows プラットフォーム」• いろんなデバイス

• PC/タブレット• スマートフォン(Windows Phone)• ゲーム機(XBOX One)• VRデバイス(HoloLens)• 産業機器(キオスク端末、サイネージ、ハンディターミナル,etc.)• マイコン機器(Raspberry Pi 2,etc.)

Page 5: Windows10 IoT Coreとハードウェアプロトタイピング

02 Windows 10 IoTには3つのバージョンがある

5

ベースOS CPU シェル アプリストア 標準アプリ サードパーティアプリ 拡張SDKサポートUWP ストアアプリfor Win8.1 クラシックWin32/.NET IoT Desktop Mobilefor industry devicesキオスク端末、デジタルサイネージ向け

desktop x86 ◎ ○ ○ ○ △ ○ ○ ○ ×

for mobile devicesハンディターミナル、モバイルPOS向け

mobile ARM ○ ○ ○ ○ △ × ○ × ○

Core小型マイコンボード向け(Core) ARMx86 ×

リモート

のみ

× × ○ × × ○ × ×

Page 6: Windows10 IoT Coreとハードウェアプロトタイピング

03 Windows 10 IoT Core• より小さいデバイスを、Windowsのメリットを生かしてサポート

• アプリ開発をVisual Studioでできる(インテリセンス、C#)• IoT開発に必須のバスアクセスや電波関連デバイス用APIが整備• Alljoyn規格対応APIにより、周辺デバイスとの接続・連携が容易

• 現在サポートするデバイスは3機種限定

6Intel® Galileo Raspberry Pi 2 MinnowBoard Max

Page 7: Windows10 IoT Coreとハードウェアプロトタイピング

04 Raspberry Pi 2 とハードウェアプロトタイピングRaspberry Pi 2• もともとはIT教育を目的に開発• 標準OSはLinux(Debian based)• PC向けインタフェース搭載(HDMI、USB、LAN…)• 電子回路向けインタフェース搭載(GPIO、I2C…)

• GPIO(汎用I/Oポート):デジタル信号(High/Low)の入出力• I2C(シリアル通信):信号線2本で112個のアドレスにデータ送受信可能

7

ハードウェアプロトタイピング• 電子回路のアイディア検証や試作に、プロトタイピング手法を導入• 安価なプログラマブルデバイスの登場、IoTへの注目により活発化• デバイス例

• Raspberry Pi/Raspberry Pi 2(Linux/Windowsが動作)• Arduino(クローン多数)• mbed(ブラウザで開発できる)

Page 8: Windows10 IoT Coreとハードウェアプロトタイピング

05 Raspberry Pi 2でWindows 10 IoTを使う(環境設定)• 手順はこちら

• http://ms-iot.github.io/content/en-US/GetStarted.htm• RP2にWindows 10 IoT Core(Preview版)をインストールする

• RP2用のOSイメージをダウンロードする• microSDカードへの展開ツールあり(要Windows 10インストール済PC)

• 開発用PCに開発環境をセットアップする• Windows8.1 または Windows10のPCを用意する• Visual Studio 2015をインストールする(Community版で可)

• 「ユニバーサルWindowsアプリ開発ツール」を含めること• 開発者モードを有効にする• ローカルグループポリシーエディタ(gpedit.msc)で設定変更• 管理ツールをインストールする(同一NWにあるWin10IoTデバイスを表示)• RP2のOSイメージに同梱の「WindowsDeveloperProgramForIoT.msi」

8

Page 9: Windows10 IoT Coreとハードウェアプロトタイピング

06 Windows 10 IoT Coreにおける開発環境• 開発形態

• 開発用PCからターゲットデバイス(RP2)へ、リモート接続して開発• 同一ネットワークでの接続必須

• ツール• Visual Studio 2015• IoT Core Watcher(同一NW内のWin10 IoTデバイスを検出)• ブラウザモニタ(タスク一覧やCPU/メモリの使用状況など)• PowerShell(Administratorのパスワード変更など)

9

Page 10: Windows10 IoT Coreとハードウェアプロトタイピング

07 今回の開発テーマ• 課題:離れた場所から、在席状況がわかるようにしたい• 方法:赤外線を検知する焦電センサーを使い、人が近づいたら通知する

10

Page 11: Windows10 IoT Coreとハードウェアプロトタイピング

08 プロトタイプ開発:ハードウェア• RP2のGPIOポートを使う• 焦電センサー信号を入力し、検知したらLEDを点灯させる• ちなみに、部品は秋葉原で購入可能(全部で7,000円くらい)

11

Raspberry Pi 2焦電センサー

LED(検知通知)

Page 12: Windows10 IoT Coreとハードウェアプロトタイピング

09 プロトタイプ開発:ソフトウェア• Visual Studio 2015で「Windows Universal」の新規プロジェクトを作成

12

Page 13: Windows10 IoT Coreとハードウェアプロトタイピング

09 プロトタイプ開発:ソフトウェア• 参照から「Windows IoT Extension SDK」を追加

13

Page 14: Windows10 IoT Coreとハードウェアプロトタイピング

09 プロトタイプ開発:ソフトウェア• MainPage.xaml.csにコードを記述• 例:GPIOポートの初期化

• 今回、MainPage.Xaml(画面)は不要なので実装しない• 画面には真っ白な画面が表示されているはず• 検知結果などを表示させてもいい 14

using Windows.Devices.Gpio;int LED_PIN = 5;GpioPin ledPin;var gpio1 = GpioController.GetDefault();ledPin = gpio1.OpenPin(LED_PIN);If (ledPin != null) {

ledPin.Write(GpioPinValue.High);ledPin.SetDriveMode(GpioPinDriveMode.Output);

}

Page 15: Windows10 IoT Coreとハードウェアプロトタイピング

09 プロトタイプ開発:動作確認と作りこみ• アプリを書いたら、基本部分の確認を行う

• 焦電センサーで、どのくらいの距離、角度で検知できるか?• 検知が不十分なら、センサー部品を別のものにする

• 基本部分が固まったら、実使用(課題解決)を意識した作りこみへ• 例:検知結果をLED表示でなく、別の場所に表示するには?

• 別の表示専用機器を作って、無線で飛ばす• クラウド上にデータを置いて、Webアプリにする

15

Page 16: Windows10 IoT Coreとハードウェアプロトタイピング

10 まとめ• デジタル回路の知識は必要だけど、単純なことなら覚えることは少ない• 「○○を作ってみた」に挑戦するのに、Windows 10 IoTは強い味方!

16