Windows10 IoT CoreとRaspberry Pi 2の概要とセットアップ


#はじめに
前回はQiitaとはてなブログの相互運用の試用で、[C++でHello Worldのプログラムを書いてみました。](http://qiita.com/kanaharu/items/25583b32e8121629b609)今回は、タイトルに上げたWindows 10 IoT CoreとRaspberry Pi 2の概要を説明しつつ、セットアップまでを行いたいと思います。

なお、はじめに伝えておきますが長文失礼です。本当は画面上にHello Worldまで表示させたかったんですけど、セットアップまでで長文になってしまったので分けました。
また、同様の内容をすでに[プログラミング生放送勉強会 第35回@株式会社DMM.comラボ（恵比寿）](https://atnd.org/events/68320)で登壇し発表をしています。その時のスライドは下記URLです。
[Windows 10 IoT Core上でのRaspberry pi 2 開発について](http://www.slideshare.net/YasuharuNakane/windows-10-io-t-coreraspberry-pi-2)

#Raspberry Piとは
ARMを搭載したシングルボードコンピュータです。

##特徴
**格安**　本体と必要なものをそろえても1万円以下で済みます。
**軽量**　軽く手のひらに載るサイズです。
Raspberry Piはイギリスのラズベリーパイ財団によって教育向けコンピュータとして開発され、[累計500万台(2015年2月18日時点)](https://www.raspberrypi.org/blog/five-million-sold/)を売り上げています。

##対応OS
Linuxと今回取り上げるWindows 10 IoT Core(Raspberry Pi 2のみ)です。

なお、Raspberry Pi対応Linuxのディストリビューションは、主に下記があります。
**Raspbian**　DebianをRaspberry Pi向けにカスタマイズ
**Pidora**　Fedoraを同じくカスタマイズ

##Linuxを使ってできること
###デスクトップパソコンとして利用
Linuxのディストリビューションをインストールすることができるため、そのデスクトップ環境を利用することができます。

###サーバーとして利用
上記と同じく、サーバーアプリケーションを実行してWebサーバーなどのサービスを提供することができます。

###電子工作に利用
プログラムを開発し、Raspberry Pi本体の接点からGPIO(汎用入出力)やI²Cデバイスを使用することができるため電子回路を作り、例えばロボットを制御することもできます。

#Windows10 IoT Coreとは
IoTデバイスで動作する**無料**のWindowsです。

##Windows10 IoT Editionsの一部
従来の組み込み向けWindowsであるWindows Embeddedがリニューアルし、Windows 10 IoT Coreのほかに下記のエディションがあります。
**for industry devices**　POSやATMなどを想定
**for mobile devices**　業務用ハンディーターミナルなどを想定

##対応デバイス
* Raspberry Pi2
* MinnowBoard Max
* Arduino 

##Windows10 IoT Coreでできること
###Universal Windows Platform(UWP)アプリの実行
これは、この後記載のHello World画面表示で説明します。

###サーバーアプリケーションの実行
[IISは今のところ提供されていません](https://social.msdn.microsoft.com/Forums/en-US/ca00fc68-b2bc-403a-a78f-6e2dc6e038de)が、[UWPアプリでサーバーを開発する](http://ms-iot.github.io/content/en-US/win10/samples/BlinkyWebServer.htm)ことができ、ブラウザ上からGPIOを制御することもできます。

##Windows10 IoT Coreではできないこと
###デスクトップパソコンとしての利用
シェル(GUI)やブラウザなどのアプリケーションが提供されていないため、デスクトップパソコンとして利用することは難しいです。この理由は、デスクトップアプリケーションをUWPで作ってしまえば可能ですが、難しいですよね。

###直接のデバイス設定
キーボードとマウスは利用できますが、シェルが提供されていないため直接設定することができず、リモート接続したPower ShellかSSHかブラウザ画面から設定することになります。
###無線LAN接続(2015年8月23日現在)
IoT Coreが提供している無線LANドライバが[Officel Raspberry Pi WiFi dongle](https://www.raspberrypi.org/products/usb-wifi-dongle/)のみでこれが国内販売されていないため、有線LAN接続が必要になります。多分ですが、技適通っていないっぽいです。

#セットアップ
##必要なもの
###Raspberry Pi 2本体のほか
* USB電源(2A出力)
* microSDカード(8GB以上 Class10以上のもの)
* ケース
* モニターとHDMIケーブル
* LANケーブル

###Windows10 IoT Core
* Windows10 パソコン
* MicroSDカードリーダー
* Windows10 IoT Core for Raspberry Pi 2
* Visual Studio 2015(Community Edition以上)

##[PCのセットアップ](http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm)
###Windows10(Version 10.0.10240以上)をインストールする
Windows7以上からのアップデートは今のところ無料ですし、アップデートしちゃいましょう。

###[Visual Studio 2015(Community Edition以上)](http://go.microsoft.com/fwlink/?LinkID=534599)をインストールする
[ProfessionalやEnterpriseでも使用できるみたいです。](http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm)その他、インストール時に**カスタム**インストールで**Tools and Windows SDK**を有効にする必要があるそうです。

###[Windows IoT Core Project Templates](https://visualstudiogallery.msdn.microsoft.com/55b357e1-a533-43ad-82a5-a88ac4b01dec)をインストールする
Visual Studioのプロジェクトの新規作成にIoT Core開発のテンプレートを追加します。

###[Windows10の開発者モード設定を有効にする](https://msdn.microsoft.com/library/windows/apps/xaml/dn706236.aspx)
設定 ⇒ 更新とセキュリティ ⇒ 開発者向け
![更新とセキュリティ.png](https://qiita-image-store.s3.amazonaws.com/0/96177/43e8fc7b-3260-2625-3f5d-aca6b3da8372.png)

##[Raspberry Piのセットアップ](http://ms-iot.github.io/content/en-US/win10/SetupRPI.htm)
###[Windows10 IoT Core tools](http://ms-iot.github.io/content/en-US/Downloads.htm)をパソコンにインストールする
インストールするとプログラムフォルダにイメージファイルがインストールされているはずです。(C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2)

###SDカードにイメージを書き込む
スタートメニューに**WindowsIoTImageHelper**と入力し、Windows IoT Core Image Helperを起動し、上記のイメージを指定して、[Flash]ボタンをクリックします。
![setup.png](https://qiita-image-store.s3.amazonaws.com/0/96177/c6a5f6ca-5dc1-46dc-14d7-9a26adc27cc8.png)

###Raspberry Pi 2を起動します
以下の手順で起動します
1. SDカード挿入
2. LANケーブル
3. HDMLケーブル
4. USB電源

しばらくすると下記画面が表示されると思います。
![iort.png](https://qiita-image-store.s3.amazonaws.com/0/96177/6548c665-dbe2-601d-43ac-df0239360448.png)


#参考文献
[Raspberry Pi - Wikipedia](https://ja.wikipedia.org/wiki/Raspberry_Pi)
[Windows IoT - Setup your PC for Raspberry Pi 2](http://ms-iot.github.io/content/en-US/win10/SetupPCRPI.htm)
[Windows IoT - Setup your Raspberry Pi 2](http://ms-iot.github.io/content/en-US/win10/SetupRPI.htm)
[鈴木淳也の「Windowsフロントライン」：「Windows 10 IoT」とはどのようなOSなのか？ (1/3) - ITmedia PC USER](http://www.itmedia.co.jp/pcuser/articles/1505/30/news016.html)