「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Windows 10 IoT]]

* 目次 [#afd73fd3]
#contents

*概要 [#r83f0bc8]
Windows 10 IoT Coreの評価を実施中。

*基本 [#x1829430]
**Headモード、Headlessモード [#vb07d84b]

***Headモード [#zb49acc7]
-GUI有りモード

***Headlessモード [#e8ef7773]
-GUI無しモード
-リソース消費を抑えることが出来る。

***切替方法 [#e24c9190]
以下のコマンドで切り替え可能。

-Headlessモードに変更
 setbootoption.exe headless
 shutdown /r /t 0

-Headlessモードに変更
 setbootoption.exe head
 shutdown /r /t 0

-参考
--Headed/Headless devices | Windows IoT~
https://developer.microsoft.com/en-us/windows/iot/docs/headlessmode

**ドライバの種類 [#x7c0a154]
***Inboxドライバ [#tf570855]
-プラグ・アンド・プレイに対応した機器をパソコンに接続すると、~
Windowsに同梱されるドライバの中から自動的にドライバが選択され組み込まれる。

-このため、すぐに周辺機器が使えるようになる。

-この、Windowsに同梱されているドライバを、Inboxドライバと呼ぶ。

***DMAPドライバ [#d07f25ae]
-DMAP : Direct Memory Mapped
-[[Inboxドライバ>#tf570855]]よりもGPIOパフォーマンスの向上を実現する開発用ドライバ

-以下のケースでは、安全にDMAPドライバを使用できる。
--信頼できるアプリケーションのみのマシン上で使用する。
--Lightningプロバイダ(Microsoft.IoT.Lightning.Providers.*)経由でのみ使用する。
--または、「[[Arduino Wiring sketches>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?Arduino%20Wiring%20sketches]]」のみ使用する。
---Arduino Wiring for Windows 10 IoT Core | Windows IoT~
https://developer.microsoft.com/en-us/windows/iot/Docs/ArduinoWiring

-悪意のあるアプリはH/W、Securityの問題を引き起こす可能性がある。

*準備 [#a112e823]

**作業用のPC [#p56a97c1]
-OSは、Windows 10とする。
-企業内なら、開発用NWへの接続が許可されているもの。

**IoT機器 [#wa4465fe]
***本体 [#i2baa07c]
Raspberry Pi 3 MODEL B

***電源 [#x4c3a174]
micro USB(Androidと同じ)

**周辺機器 [#k9059277]
***ストレージ [#c7bfbb17]
-microSDメモリーカード(Raspberry Pi 3に挿す)
-microSD から メモリーカード への 変換アダプター(PCに挿す)

***ネットワーク [#i5f96c0d]
スイッチとして機能する機器(PCとRaspberry Pi 3を接続する)

-有線LANの場合: L2スイッチとLANケーブル
-無線LANの場合: プライバシー・セパレータ機能を搭載したWifiルーター

***入出力 [#qe08c680]
-モニタとHDMI ケーブル。
-USB マウス, USB キーボード

*セットアップ [#a7892242]

**Windows 10 IoT Coreのインストール [#d214299e]
***Windows 10 IoT Core Dashboardのダウンロード [#mb138c4c]
-Downloads | Windows IoT~
https://developer.microsoft.com/ja-jp/windows/iot/downloads

--Get Windows 10 IoT Core Dashboardをクリック
--setup.exeがダウンロードされるのでダブルクリックして実行
--Windows 10 IoT Core Dashboardをインストールする。

***microSDにWindows 10 IoT CoreのOSイメージを書き込む。 [#z083771f]
-インストール後、そのままWindows 10 IoT Core Dashboardが起動する。
-「microSD から メモリーカード への 変換アダプター」をPCに挿す。
-[新しいデバイスのセットアップ]で以下の入力を行う。

-[ダウンロードとインストール]をクリックしてmicroSDにOSイメージを書き込む。
--はじめに、Windows 10 IoT Coreがダウンロードされる。
--次に、microSDにOSイメージを書き込まれる(フラッシング)。~
この際、コマンド・プロンプトで進捗表示がされる。
--書き込みが完了すると「SDカードは準備が完了しています」と表示される。

-この画面で表示されている「3.デバイスを検索します」の「自分のデバイス」ボタンを押下し、~
「Dashboard」と「Raspberry Pi 3」との通信を許可しておく。~
Windows10IoTCoreDashboard.exeのインバウンドが許可される。

***Raspberry Pi 3へ機器を接続 [#j4cd151e]
-電源
--micro USB(Androidと同じ)

-周辺機器
--OSイメージを書き込んだ microSD を挿す。
--有線接続の場合、LANケーブルに接続する。

--入出力
---USB マウス、USB キーボード
---モニタ(HDMI ケーブル)

**Windows 10 IoT Coreの初期設定をする。 [#t0d354c2]
***起動時 [#fe32df20]
-言語を選択する(日本語を選択)。

-無線LANの場合、
--Wifiを選択可能
--IPアドレスはDHCPで自動配布される。

-有線LANの場合、
--起動前にLANケーブルを接続しておく。
--IPアドレスはAPIPAのアドレスになっている。

***その他、適宜 [#f4416a6f]

**Windows 10 IoT Core Dashboardから接続・操作する。 [#bbd556e0]
-PC側のIPアドレスの設定
--無線LANの場合、DHCPで自動配布されるアドレスで通信可能なので設定は不要。
--有線LANの場合、APIPAのアドレスを確認し、ホストPCのアドレスを設定・変更する。
---IPアドレス       : 169.254.x.x
---サブネットマスク : 255.255.0.0

-Windows 10 IoT Core Dashboardを起動する。
-「自分のデバイス」からRaspberry Pi 3を選択、

***Device Portal [#v88f9fcc]
-接続
--右クリック、[Device Portalで開く]を選択する。
--Administratorのログイン・アカウント情報を入力する。
--ログイン後、Device Portalが表示される。

-操作
--Device Portalから操作する。
--HOME:タイムゾーンの変更
--PROCESS: 電源(再起動など)
-,etc.

***SMB [#o74961ed]
-接続
--右クリック、[ネットワーク共有を開く]を選択する。~
上手く行かない時は、「\\[Raspberry Pi 3のIPアドレス]\C$」を直打ち。
--Administratorのログイン・アカウント情報を入力する。
--「\\[Raspberry Pi 3のIPアドレス]\C$」が開く。

-操作
--[[イベント・ログ]]のファイルなどを取出し、確認できる。

***[[PowerShell]] [#z7b42565]
-接続
--右クリック、[PowerShellを起動]を選択する。
--Administratorのログイン・アカウント情報を入力する。

-操作
--コマンドやコマンドレットを実行できる。
--[[Headモード、Headlessモードの切換>#vb07d84b]]
--IPアドレスの設定(APIPAアドレスなら、必要に応じて変更すると良い)
 ipconfig /all
 netsh interface ip show config
 netsh interface ip set address "Ethernet" static [IPアドレス] [サブネットマスク] [デフォゲ]

*開発環境 [#m85a98cc]
**開発用PCをの準備 [#b3444611]
Windows 10がインストールされたPCを準備する。

**開発環境のセットアップ [#x26cd015]
-[[Visual Studio]] 2017をインストールする。
--ターゲットがCreators Updade対象になっているようで、[[Visual Studio]] 2015ではなく2017が必要。
--インストール時に、ユニバーサル Windowsアプリ開発ツールをインストールすること。
--参考
---VisualStudio 2017がリリース、さっそくインストールしてみた | 純規の暇人趣味ブログ~
https://jyn.jp/visualstudio-2017/

-開発者モードを有効にする。
--[Windows] Windows 10 で開発者モードにする~
https://www.ipentec.com/document/document.aspx?page=windows-windows-10-set-developer-mode

***Windows SDKのインストール [#m891396f]
Windows 10 用のWindows SDKをダウンロードしてインストールする。~

-Windows 10 用のWindows SDKをダウンロード

--Windows 10 SDK – Windows アプリ開発~
https://developer.microsoft.com/windows/downloads/windows-10-sdk

--以下から選択可能だが、ここでは1台だけの構築なのでEXEを選択する。
---.EXE をダウンロードする
---.ISO をダウンロードする

-Windows 10 用のWindows SDKをインストール
--winsdksetup.exeをダブルクリックしてインストーラを実行。
--インストーラーが起動したら既定値でインストールする。

-インストールが完了したら、OSを再起動する。

***“Hello World”的にサンプルを実行する準備 [#n996cedb]
-サンプルプログラムをGitHubからDownloadZIPする。

--ms-iot/samples: Windows 10 IoT Core Samples~
https://github.com/ms-iot/samples

-解凍して、HelloWorldとHelloBlinkyを入手する。

***HelloWorldする。 [#yd263ef0]
-HelloWorld.slnをダブルクリックしてVS 2017を起動する。
-[Debug]ボタンのドロップダウンから[リモート コンピューター]を選択。
-以下の入力を行う。
--アドレス: IPアドレスを手打ち(自動検出できなかった場合)
--認証モード: ユニバーサル(暗号化されていないプロトコル)
--[選択]ボタンを押下する。
-[Debug]ボタンを押下する。

-Hello Worldのメッセージが表示される。

***HelloBlinkyする。 [#g7e13525]
-HelloWorld.slnと同じ手順で、HelloBlinky.slnをDebug実行する。
--(2回目なので、)自動検出されているRaspberry Pi 3を選択する。
--GPIO pinsの初期化が正しく行われた旨のメッセージが表示される。

*いろいろな処理を実装する。 [#m9b9f8bf]

**空のプロジェクトから実装を始める。 [#p73c6d25]

***プロジェクトの新規作成 [#q6a301ad]
-[新規作成]-[プロジェクト]
-[テンプレート]-[Visual C#]-[Windows ユニバーサル]-[空白のアプリ]を選択

***UWP バージョンを選択する [#q1ab8a0d]
[ターゲットバージョン]と[最小バージョン]を選択する。

-UWP バージョンの説明
--ターゲットバージョン :一般ユーザー向けのコードを新しく開発する場合、常に最新ビルドの Windows (14393) を使う。
--最小バージョン :エンタープライズ アプリを開発する場合は、最小バージョンで古いバージョンをサポートすることを検討する。

-参考
--UWP バージョンの選択 - UWP app developer | Microsoft Docs~
https://docs.microsoft.com/ja-jp/windows/uwp/updates-and-versions/choose-a-uwp-version

***Debug実行 [#m0aa48fb]
-この状態だと、[[選択したUWP バージョン次第で>#q1ab8a0d]]、ローカルでのDebug実行も可能。
-しかし、移行、H/Wに関する処理を実装していくとローカルでのDebug実行はできなくなる。

-[[HelloWorld.sln>#yd263ef0]]、[[HelloBlinky.sln>#g7e13525]]と同じ手順でコレをDebug実行する。
--[ターゲットCPU]を[x86]から[ARM]に変更してから、
--[リモート コンピューター]でDebug実行する。

-空のウィンドウが表示されることを確認する。

***色々設定を行う [#o7187b4c]

-参照設定で[Universal Windows]-[拡張]-[Windows IoT Extension for the UWP]をチェックする。

-NuGetから「Direct Memory Mapped Driver」の「Microsoft.IoT.Lightning」をインストールして参照設定を追加。


-以下の「Direct Memory Mapped Driver」の「Microsoft.IoT.Lightning」を利用するための設定を行う。

--[[[Device Portal>#v88f9fcc]]]からドライバを切替える。
---[Devices]をクリックしてページを切り替える。
---[Default Controller Driver]を[Direct Memory Mapped Driver]に設定する。
---[Update Driver]をクリックして設定を更新する。
---リブートするかどうかのメッセージが表示されるのでリブートする。

--以下のコードをマニフェストファイル(Package.appxmanifest)に追加。
 <Capabilities>
     <!-- アプリケーションがカスタムデバイスにアクセスできるようにする -->
     <iot:Capability Name="lowLevelDevices" />
     <!-- LightningインターフェースのデバイスGUID ID -->
     <DeviceCapability Name="109b86ad-f53d-4b76-aa5f-821e2ddf2141"/>
 </Capabilities>
--また、マニフェストに上記のiot名前空間を追加する。
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10"
  IgnorableNamespaces="uap mp iot">

--参考
---Using Microsoft.IoT.Lightning.Providers library and sample code | Windows IoT~
https://developer.microsoft.com/en-us/windows/iot/docs/lightningproviders
>Option 2: Referencing the library

**Lチカを実装する。 [#g55fff11]

*参考 [#u312157d]
**電子工作 [#k0189bc1]
-電子工作 - .NET 開発基盤部会 Wiki~
https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C

**Hello, blinky! | Windows IoT [#m46c22ac]
https://developer.microsoft.com/en-us/windows/iot/samples/helloblinky
-ms-iot/samples: Windows 10 IoT Core Samples~
https://github.com/ms-iot/samples
--samples/HelloBlinky at develop · ms-iot/samples~
https://github.com/ms-iot/samples/tree/develop/HelloBlinky

**Windows 10 IoTCore ハンズオントレーニング [#xec2e2c3]
-1章 Windows 10 IoTCore 概要~
http://download.microsoft.com/download/F/C/4/FC488185-8F87-4B40-B9EF-0850110A50A2/IoT_Core_1.pdf
-2 章 Windows 10 IoT Core のインストール~
http://download.microsoft.com/download/F/C/4/FC488185-8F87-4B40-B9EF-0850110A50A2/IoT_Core_2.pdf
-3章 UWP アプリの開発~
http://download.microsoft.com/download/F/C/4/FC488185-8F87-4B40-B9EF-0850110A50A2/IoT_Core_3.pdf
-4章 UI をもたないデバイスへのリモートアクセス~
http://download.microsoft.com/download/F/C/4/FC488185-8F87-4B40-B9EF-0850110A50A2/IoT_Core_4.pdf
-5 章 センサーデータをクラウドへ集約~
http://download.microsoft.com/download/F/C/4/FC488185-8F87-4B40-B9EF-0850110A50A2/IoT_Core_5.pdf

----
Tags: [[:インフラストラクチャ]], [[:Windows]], [[:IoT]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS