Windows10
のリリースが近づいてきたころにMicrosoftのサイトで情報収集していると、緑色の基板やらブレッドボードなどが目に入る。.NET Micro Frameworkで動作するマイコンがあるのは知ってたので、それのことだろうと思っていた。Arduino
やRaspberryPi
などARMプロセッサ上でLinuxベースのOS
を稼動させるのが主流であり、まったく食指が動かなかったが、よく見ると「For Raspberry Pi2」とある。
Visual Studio 2015
から従来のProfessionalエディション相当がCommunity
となって無償化
された。移行・変換ツールなども提供されて、AndroidやらiOSアプリも食ってしまおうという意気込みである。細かい内容など確認もせずAmazonで久々の衝動買い。熱が冷めないうちに備忘録を書き溜めていく。
※投稿時はWindows10 Insider Preview版で検証しており、Core OSもほとんどα、β版相当なので、
この数ヶ月で内容が大きく変わるかもしれない。
まず、関連あるMicrosoftのリンク
- Windows IoT Coreのホームページ。Core OSの入手やアップデート情報、チュートリアルなど (URL)
- Windows IoT Core開発のDownloads and Tools (URL)
- Windows 10 IoT Core for Raspberry Pi2のISOイメージダウンロード(URL)
- Windows IoT Core開発のドキュメントやサンプルコード (URL)
- hackster ioのWindows IoTページ(ほかにもさまざまなマイコン開発のプロジェクトがある) (URL)
そもそも
Windows IoT Core
とはなにか?
Windows10
から、PC、スマホ、タブレット、Xbox・・などのさまざまなプラットフォーム内に共通するコア
を持たせることによって、APIを共通化し、ビルドされたプログラムモジュールが、どの端末でも動作するようにしている。
このようなインターフェイスをユニバーサル Windows プラットフォーム (UWP)
と呼んでおり、これらのインタフェースで作成したアプリケーションがUWPアプリ
であり、今後はこれらがメインストリームになるようにMSは画策している。要するにUWPに準拠していれば、作成したアプリやドライバはWindows製品全て
で動作すると言っている。
IoT(Internet of Things)
は、PCやスマホ、プリンタなど、もともとインターネットに接続する前提のデバイスではない、さまざまな機器(マイコン
などの小型コンピュータもここに含まれる)をインターネットに接続する技術と定義されている。Windows IoT Core
は、これらのデバイス向けに開発された最小のOS
になる。要するにすごい小さいWindows10ということになる。これがRaspberry Pi2
に乗っかることになってちょっとした騒ぎになった。
Windows IoT CoreをRaspberry Pi2に乗せるには、まずどうするのか?
- Windows Insider Programに参加して、Windows10 Insider Previewをインストールする(仮想環境でOK)
- Visual Studio 2015 RC版、IoT Core Toolsを入手してインストールする (URL)
- Raspberry Pi2、MicroSD(8GB以上)、MicroUSBケーブル(type-b)、HDMIケーブル、HDMI対応モニタ、LANケーブル、USBタイプの充電器や電源アダプタ、マウスを入手する
- Windows IoT Coreを入手してSDカードインストールする (URL)
- Raspberry Pi2にSDカード、ケーブルをセットして電源ON
Download Windows 10 IoT Core for Raspberry Pi 2 from Official Microsoft Download Center
Windows IoT Coreを入手してSDカードインストールするまで
IoT Core Tools
をインストールすると、C:\Program Files(x86)\Windows IoT
ディレクトリ以下に、ツールと最新のIoT Coreのイメージファイル(*.ffu)が展開される。この中のIoTCoreImageHelper.exe
というツールがあるのでアプリを起動し、SDカードとffuイメージを選択して実行すると、ffuファイルがSDカードに焼かれる。
IoT Core イメージ書き込み後のSDカードのパーティション構成は以下のとおり、16GBのカードを用意したが、8GB以降は未定義
になるので、8GBのSDカードで十分。
ブートパーティションを見ると、WindowsのCドライブとよく似た構成になっており、config.txt
にはハードウェアに関する設定が記載されている。hdmiに関する設定があるので、モニタにあわせて設定がチューニングできるようになっている。
Raspberry Pi2のセットアップとWindows IoT Coreを起動するまで
Raspberry Pi2に対し、SDカード、LANケーブル、HDMIケーブルでモニタに接続した後、最後にMicroUSBケーブルで電源アダプタに接続するとOS起動が開始する。電源スイッチのようなものは存在しない。
しばらくすると、モニタにWindows10と同じロゴが表示され、Windowsの初期画面へと続く。USBマウスを接続すれば、選択肢を選ぶことができる。
ちなみに、現状ではWifiやBluetoothなどの無線デバイスはサポートされていないチュートリアルのキャプチャを見ると、メイン画面でWifiのアクセスポイントを掴んでいる様子もあったので、すぐにでも対応されると思われる。
※flash.ffuの日付が7/10以降のバージョンだとWifi、Bluetoothに対応した模様。
下記リンクにドキュメントあり。
Using WiFi on your Windows 10 IoT Core device
Bluetooth Support
メイン画面からチュートリアルなど参照できるが、マウスなどを接続しても基本的には何もできないと思ってよい。Raspbian
などをイメージして期待するとたぶんガッカリするかもしれない。ただ、IoTデバイスなので40個あるピンをUWPアプリで制御してネットに繋がって通信できればそれで良いと思う。ただRaspberry用の専用LCDやカメラには早めに対応しないと、わざわざWindowsを稼動させる意義が薄れてしまう。
電源まわりの注意点
一応仕様だと、最低5V 1A以上
と明記されている。手元にあった最大定格1Aの電源アダプタだと、起動しないケースが多発した。最大定格1Aのアダプタを使う予定の場合は注意する必要がある。できれば1.5~2.0Aぐらいを用意したほうが良い。(ダイソーの1A充電器だと怪しい)
不安定だった1AのUSB充電器。ヘタっているのか、もともとなのか不明
家に転がっていた最大定格2.3A
の電源アダプタ。先端をカットしてUSB(メス)をつないだもの
クランプメータで起動中のRaspberry Pi2 + Windows IoT Coreの消費電力をチェックしたところ2.1W
となった。変換効率を100%と考えると420[mA]程度で動作している?
1Aアダプタだと起動が不安定だったが、スタンバイ状態だとほとんど電力消費してない模様。アプリケーションを実行させられるようになったら、再度計測してみることにする。
次回は、PCからRaspberryにネットワーク経由でアクセスする方法をまとめる。Power ShellやSSHで接続したり、ブラウザからアクセスできるようだ。