Microsoft 系のあれこれ

港区の SIer で よくわからんことをしている人です。Xamarin 中心でした。(過去形)

Raspberry Pi 2 Model B に Windows 10 IoT Core for Raspberry Pi 2 をインストールする

毎年、弊社では社内ハッカソンを行っているのですが、私はWindows系が本業なのでそれを生かしつつ、ちょっと新しいことをやりたいなと。
そして昨年のde:Codeの抽選で当たったラズパイが埋もれていたのでこいつを使うことにしました。
とりあえず環境構築を行いました。
(何を作るかはまた後日。。。)

諸々を購入

本体はあるものの、周辺機器が何もないので、社内ハッカソン経費で以下を購入
無線LANアダプター(※後述しますが、これは使用しませんでした)

BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2

BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2

・SDカード

・ディスプレイ

・カメラ

・色々入っているキット

Raspberry Pi電子工作エントリーキット(Premium)

Raspberry Pi電子工作エントリーキット(Premium)

ヒートシンク

Raspberry Pi Model B+ / Pi2用 ヒートシンクセット

Raspberry Pi Model B+ / Pi2用 ヒートシンクセット

LEGO(本体ケースやカメラケースを自作しようかなと思い)

レゴ クラシック アイデアパーツ<エクストラセット> 10702

レゴ クラシック アイデアパーツ<エクストラセット> 10702

SDカードにWindows 10 IoT Core for Raspberry Pi 2をインストール

色々調べた結果、「raspberry pi windows10」でググると一番上にくる(2016/1/26時点)↓のサイトの様にPCでファイルをダウンロードして、イメージファイルをどうのこうの。。。とかは全く必要ありませんでした。
ascii.jp

Microsoftさんが、丁寧にまとめてくれていたので、こちらを参考にしました。
ms-iot.github.io

PCでこのサイトの真ん中へんの「Get the Windows 10 IoT Core Dashboard」をクリック
f:id:ShunsukeKawai:20160126210016p:plain

すると、IoT端末を管理するためのデスクトップアプリがPCにインストールされます。
インストール後、起動すると、、
f:id:ShunsukeKawai:20160126210812p:plain
え?勝手にやってくれる系?
すごい簡単そう。。。

んで、指示通りにSDカードをPCに接続し、インストール実行!
f:id:ShunsukeKawai:20160126211002p:plain
f:id:ShunsukeKawai:20160128155747p:plain
終わったけど、ちゃんとやってくれたのか不安を抱えながらラズパイにSDカードを接続して起動してみました。
ちなみにラズパイの起動は電源を挿すと起動します。

f:id:ShunsukeKawai:20160126212159j:plain

起動した!!
簡単過ぎ!!!

ネットワークに接続

インストールはできたけど、Windows 10 IoTはネットワークにつないでPCと通信ができないと何もできません。
※私も勘違いしていたのですが、「Windows」と銘打つからにはデスクトップがあって、エクスプローラーがあって、、とかと想像してましたが違います。
(そうなっていた方が「Windows」としての強み、他のOSとの差別化としてはいいと思うんですがね。。)

なので、ネットワークにつなぎます。
ここで無線LANアダプターの登場です。
「Raspberry Pi 無線LAN」とかでググるとたくさん出てきたので、(どうせ会社の金だし!と)あまり調べず購入したのですが、結論から言うと使えませんでした。
挿しても認識してくれません。

Raspbian OSだと大丈夫の様ですが、Windows 10 IoTでは
ms-iot.github.io
こちらに書いてある機器しかサポートしていないらしい。。。

そのため、なぜか会社にあったコイツ↓を使用してエセ無線LAN環境を構築しました。不幸中の幸いです。
これはちょっと高いですが、コンバーターとして使えるラズパイとLANケーブルでつなぐようなモノは探せばもっと安いのがあると思います。

PCと同じネットワークに接続して、こちらに書いてある通りにPCからラズパイにアクセスします。
ms-iot.github.io

・ラズパイからIPアドレスを確認
IPアドレス+「:8080」をブラウザでたたく
・ユーザーID:Administrator、パスワード:p@ssw0rdで接続

以上でラズパイの管理画面に接続できました。
めでたし、めでたし。


後日、作成したアプリとかをインストールしたいと思います。

※※※※※※※※※※※※※※※※※
2016/1/29 追記
カメラモジュールも使えませんでした...orz

Windows 10 Mobile でアプリケーションのフォルダーを参照したい

=================================================

追記:最新のバージョンでは下記手順はできなくなってます。

どうしよう。。。

=================================================

 

UWPの開発で ApplicationData.Current.LocalFolder(= ms-appdata:///local/) とかにログを出力したりするケースがあると思います。

 

ですが、Windows 10 Mobileの標準エクスプローラーでは大したところは見えません。

↓ このぐらいです。

f:id:ShunsukeKawai:20160107193942p:plain

 検索しても見つけてくれません。

f:id:ShunsukeKawai:20160107205325p:plain

なので、どうにかしてログファイルをみたいな、と。

 

調べてみたところ、以下のサイトに行きつきました。

<参考サイト>

forums.windowscentral.com

参考にして試行錯誤の末、なんとかできましたのでまとめときます。

もっとスマートな方法があったら教えてください。。。

 

1.PCでCドライブ直下のショートカットを作成する

なんでやねん。

なんでMobileってゆーのにいきなりPCが登場するんじゃい。

と突っ込みを入れたくなりますが、そこはこらえてください。

 

  • Cドライブを右クリック

f:id:ShunsukeKawai:20160107195201p:plain

  • ショートカットの作成

f:id:ShunsukeKawai:20160107200038p:plain

2.作成したショートカットをMobileに移動する

参考サイトの通り、実機でやるとUSBで簡単なのですが、今回はエミュレーターでの手順を記載しておきます。

f:id:ShunsukeKawai:20160107200831p:plain

  • SD Card タブを選択
  • ショートカットを置いた適当なフォルダーを指定
  • Insert SD Card を選択

f:id:ShunsukeKawai:20160107201213p:plain

f:id:ShunsukeKawai:20160107201441p:plain

  • SDCARD が生まれているので選択

f:id:ShunsukeKawai:20160107201557p:plain

  • 作成したショートカットがある

f:id:ShunsukeKawai:20160107201655p:plain

 

これで、Windows 10 Mobile のCドライブ直下を参照することができました。

 

3.アプリケーションのフォルダーを見つける

あとは簡単じゃーん。と思いの方もいるかもしれません。

そう思っていた時期が私にもありました。

 

答えから言うと、インストールしたパッケージたちは

C:\Data\Users\DefApps\AppData\Packages

にあります。

 

では見てみましょう。

  •  Cドライブ直下

f:id:ShunsukeKawai:20160107202422p:plain

  • Data フォルダ

f:id:ShunsukeKawai:20160107202532p:plain

  • Users フォルダ

f:id:ShunsukeKawai:20160107202611p:plain

  •  DefApps フォルダ

f:id:ShunsukeKawai:20160107202642p:plain

  •  AppData フォルダ

f:id:ShunsukeKawai:20160107204811p:plain

はい、空ですー!

隠しフォルダなのでしょうかね。

ということで・・・

  • DefApps フォルダに戻って検索ボタン

f:id:ShunsukeKawai:20160107202642p:plain

 

  • 「Package」と検索するとヒット!!

f:id:ShunsukeKawai:20160107205519p:plain

  • お目当てのアプリのパッケージ名を選択

f:id:ShunsukeKawai:20160107205743p:plain

LocalStateがありましたよー!!

 

あとはふつうに中に入っているログファイルでもなんでも見れる!!

 

こんな面倒なことしないといけないのでしょうか。。。

ひとまずよかった。

 

Windows 10 × Visual Studio 2015 でAndroid実機デバッグ(Xamarin)

すでに、色んな方がサイトで公開してますが、自分用にまとめ。

 

Androidで実機デバッグするための手順。

  • 端末の設定
  • PC側に端末のドライバーをインストール
  • PC側での接続確認
  • Visual Studioからの起動

端末の設定

ここは簡単なので割愛します。

①端末の開発者オプションを有効にし、USBデバッグを許可にする

PC側に端末のドライバーをインストール

ここは結構手こずりました。

Google USB Driverのインストール

Android SDK ManagerからGoogle USB Driverを指定してインストール。

 

android_winusb.infの編集

  • USBで実機を接続した状態で、デバイスマネージャーからその実機のハードウェアIDをメモ。
  • AndroidSDKがある場所(以下は一例)のandroid_winusb.infを編集する。

%USERPROFILE%\AppData\Local\Android\android-sdk\extras\google\usb_driver

  もしくは

C:\Program Files (x86)\Android\android-sdk\extras\google\usb_driver

  <編集内容>

  メモしたハードウェアIDを以下の対応する箇所に入れて

  「Google.NTx86」、「Google.NTamd64」両方に追加する。

;機種名のコメント
%SingleAdbInterface% = USB_Install, USB\VID_[端末のVID]&PID_[端末のVID]
%CompositeAdbInterface% = USB_Install, USB\VID_[端末のVID]&PID_[端末のVID]&MI_01 

※デバイスマネージャーからコピーしたのをそのままだと余計な(REVなんとかとか)がついてるから対応する箇所だけ抜き出す。

 

③PCに端末のドライバーをインストール

ここまでで準備ができたと思いきや、まだデバイスマネージャーからのドライバーのインストールができない。

Windows 8ぐらいから未署名のドライバーのインストールが簡単にできなくなったらしい。

※色んなサイトにはテストモードにするとかありましたが、不要なようです。

 

  • 設定から起動オプションを指定する用の再起動を行う

f:id:ShunsukeKawai:20151013181351p:plain

  • オプションから「トラブルシューティング」を選択

f:id:ShunsukeKawai:20151013181950p:plain

  •  「詳細オプション」を選択

f:id:ShunsukeKawai:20151013181828p:plain

  •  「スタートアップ設定」を選択

f:id:ShunsukeKawai:20151013182049p:plain

  • 「ドライバー署名の強制を無効にする」を行いたいので、数字の7を押下する

f:id:ShunsukeKawai:20151013182142p:plain

  •  再起動後にデバイスマネージャーから対象の機種を選択し、「ドライバーの更新」を選択
  • Andoroid SDKの場所を指定し、インストールを実行f:id:ShunsukeKawai:20151013182549p:plain

完了です!!やったー!!

 

PC側での接続確認

adbコマンドでちゃんと接続確認できているか確認をします。

adb devices

XXXXXXXX        device

みたいに表示されていればOKです。

最初、deviceの箇所が「unauthorized」になっていましたが、実機に以下の確認メッセージが出ていたのに気づいていませんでした。。。

これをOKで本当にOKです!

f:id:ShunsukeKawai:20151013182848p:plain

 

Visual Studioからの起動

とうとう大詰め。

もう後は簡単です。

Visual Studio 2015を起動してXamarinのソリューションを開いてデバッグ先を先ほどの実機に指定して実行。

f:id:ShunsukeKawai:20151013184306p:plain

 

ドキドキ。

 

 

f:id:ShunsukeKawai:20151013184441p:plain

やったーーーーー!

 

今日はここまで。

UWP用のパッケージ作成時注意事項

はまった。

 

Visual Studio 2015でUWPアプリを作成しようとしたらうまくいかなかった。

 

①ビルド構成の問題

Windows 8.1時代のアプリをUWP対応させたから、この問題が発生した模様。

ストア申請用のパッケージを作成する際に顕在化。

(ビルドはできる。)

 

UWP用のアプリはDebugとReleaseでパッケージ化の仕組みが違うらしい。

参考 ↓

blogs.windows.com

 

普通に新規でUWPのアプリを作成してビルド構成を別で追加したい場合は、Releaseからコピー作成すれば問題ないのだが、

1.Windows 8.1用アプリ時代にReleaseからコピーしてビルド構成作成

  ↓

2.Windows10用アプリ(UWP)にマイグレーション

だと、1.で作成したビルド構成には「.NET ネイティブ ツール チェーンでコンパイルする」のチェックが入っていなかった。

 

ってことでチェックつけたら解決。

 

マニフェストで参照しているファイル 'XXXX.dll' がペイロードに含まれていません。

はい、謎のエラー。

これは単純にVisual StudioのUWPツールのバグのようです。

Update 1.1: Generating Store associated package fails for a UWP application with a WinRT component (.winmd)

ここの通りにUWPツールのKBを当てたら解決。