Raspberry PI 2 + Windows10 IoT Core でアプリ開発
前回、RasPI2に Windows 10 IoT Coreをインストールして、なんじゃこりゃぁってなって、VS2015でアプリが作れるらしいぞ、ってなって、今回に至ります。
繰り返しになりますが、Windows10 IoTだけでは何もできないので、アプリを作ってインストールする必要があるわけです。で、VS2015の出番と。
VS2015のインストールは、まぁ適当にすればOK.(をぃ
まずは、プロジェクトの作成
「Windowsユニバーサル」というのが、RasPI2で動くいわゆるマルチプラットフォーム用のプロジェクトです。とりあえず、C#で作成。
VS2015のインストール時にユニバーサルアプリの機能をインストールしていなかった場合は、ここで追加インストールするか選択肢が出てきて追加することができます。
フツーにプロジェクトを作成しますが、ここで気を付けないといけないのが2点。
- プラットフォームの設定をARMにしておく
- ターゲットをリモートにしておく。+認証は無しに設定。
前者は、思わず「ユニバーサルちゃうんかい!」と独りツッコミを入れたところです。
後者のリモートターゲットのIPアドレスはもちろんWindows10IoTCoreが動いているRasPI2のIPアドレスです。
また、設定しておくと後々都合がよさそうのが
- パッケージ名
です。デフォルトではGUIDのような長ったらしい16進文字列なのですが、後でビルドしたパッケージを削除したり起動したりするのに名前を付けておくとわかりやすいです。
さぁ、ビルド&実行だ。
ん?プログラム書いてませんね。。
何かつくろうとおもったんですが、ストアアプリ書いたことが無くて、XAMLが分からんくてあきらめました←
ということで、スケルトンのままです。動くことが確認できればよろしい。
普通にビルドして、リモートデバッグで実行すると。。。
おー。うごいた。って面白くも何ともないですね。デフォルトのアプリが隠れちゃってます。
で、ここでハタと気が付くわけです。「これって、どうやってプロセス管理やらインストールやらするんだ??」
管理はPowerShell!なんだろうけど、Webでもいろいろできる。
先の疑問をGoogle先生に問いかけてみると、どうも開発PCからPowerShellでリモート接続してコンソールコマンドでごちゃごちゃやるのが正当らしいです。
が、PowerShellってどうも苦手。。で、実は今までずっとスルーしていた「Windows IoT Core Watcher」をいじってたら、
ネットワーク上のRasPI2が勝手に検出されていて、しかも右クリックすると "Web Browser Here" っていうメニューが。
『ひょっとしてブラウザで管理できるんじゃね?』
ってことでクリックすると、ブラウザに飛んでRaspi2の8080ポートへ接続しました。
ユーザー名とパスワードを聞かれるので、PowerShellでログインするときの設定でユーザ名="Administrator",パスワード="p@ssw0rd"を入れてみたら、ビンゴでした。
上の画面は"AppX Manager"となっていて、いわゆるパッケージ管理画面と思われます。先ほどVS2015の設定で「パッケージ名を設定しといた方が便利」っていってたところの設定ファイルが実は”Package.appxmanifest"っていう名前で、こことつながってるわけですね。
”Installed apps"のところに"TestApp1_1.0.0.0_arm_xxxx"っていうパッケージ名が見えていますが、このTestApp1がVS2015で設定した名前です。その後ろはバージョン番号とプラットフォーム名、あとは開発環境か開発者IDか、そんな感じでしょう。
AppX以外にも、プロセス一覧やデバイス一覧、今はまだ使えないWiFi&Bluetoothの設定画面もここにあります。興味のある方は8080ポートにつないで覗いてみてください。
でも、バッテン出すだけじゃぁねぇ。。。
RasPIのテストアプリといえば「Lチカ」ですが、限りなくソフト屋さんの自分は敢えてグラフィック周りを。っつーてもやっぱりスケルトンのみですが。
VS2015のプロジェクト新規作成で、C#ではなくてC++からWindowsユニバーサルアプリを選ぶと、「DirectXのアプリ」が作れたりします。
こいつをひな形にしてビルド&実行すると、プロジェクト作成画面のサムネ画像のような四面体がグリグリ回ってFPSが表示されます。RasPI2で!
RasPIでDirectX11とかが動くのって不思議な感じですね。
まぁ、でもしかし、こんな単純なCubeですが15FPSくらいです。遅いです。
raspbianのOpenGLデモに比べれば、ハエが止まりそうです。
Web管理からデバイスドライバの一覧っぽいのも見えるんですが、ディスプレイドライバが "Microsft Basic Display Driver" ってなっていて、どうもアクセラレーションは特に効いてなさそうな雰囲気です。
が、無線関係も含めてまだ改善はされていきそうな気配なので、今後に期待したいところです。