2015年5月1日金曜日

Windows 10 IoTが載ったRaspberry Pi 2でLチカサンプルを動かしてみた

1. はじめに


4/30に、Raspberry Pi 2用のWindows 10 IoTが公開されました。インストールしてLチカサンプルを動かすところまで試してみましたので、手順をメモします。公開されているチュートリアルに書かれた通りに解説します。

下図が最終的に動かしたサンプルですが、LEDの点滅と連動して画面上の丸も点灯し、その下のスクロールバーを動かすことで点滅の速さも変更できました。


2. Raspberry Pi 2用マイクロSDカードへのWindows 10 IoTのインストール


手順→「Windows IoT - SetupBoard

必要なもの

  • Windows 10 Insider Preview(build 10074)以降を搭載したPC(マイクロSDカードの読み書きができること)

    実機が必要です。私は古いLet's Note (CF-W8) にインストールしましたが、後にVisual Studio Community 2015 RCを入れることを考えると、パワーのあるPCの方が良いかもしれません。なお、このLet's Noteではタッチパッドに触れるとブルースクリーンになるなど、Windows 10にはまだ問題は多そうでした。なお、「Windows IoT - SetupBoard」では「build 10069以降」と書かれているのですが、後にインストールするVisual Studio Community 2015 RCではbuild 10074以降が要求されています。

  • Raspberry Pi 2およびHDMIディスプレイ

    有線LANでネットワークに接続します。マイクロSDカードは8GB以上。キーボードとマウスは特にささなくても問題なさそうです。

Windows 10 IoTをマイクロSDカードに書き込む


PC上のWindows 10で下記の手順でマイクロSDカードを準備します。
  1. こちらから、Windows_IoT_Core_RPI2_BUILD.zipをダウンロードし、展開します
  2. 展開したフォルダにFlash.ffuというファイルがあることを確認します
  3. PCに8GB以上のマイクロSDカードを接続します(私は16GBのものを用いました)
  4. 管理者権限でコマンドプロンプトを起動し、Flash.ffuがあるフォルダまでcdコマンドで移動します
  5. 移動先で、diskpartコマンドを実行し、DiskPartを起動します
    > diskpart
    
  6. DiskPart上でlist diskコマンドを実行し、マイクロSDカードのディスク番号を調べます(下図では3)
    DISKPART> list disk
    
  7. exitコマンドでDiskPartを終了します。
    DISKPART> exit
    
  8. 調べたディスク番号を使って、Flash.ffuをマイクロSDカードに書き込みます。下の図の赤丸で示されている通り、「ディスク3」だったら「PhysicalDrive3」を指定する、という要領です。
    > dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDrive3 /SkipPlatformCheck
  9. 書き込みが100%に達したら、Windowsの安全な取り外しを行ってからマイクロSDカードを抜き、Raspberry Pi 2にセットします。


3. Raspberry Pi 2の起動とWindows 10からの接続


手順→「Windows IoT - SetupBoard」および「Using PowerShell to connect and configure a device running Windows IoT Core

Raspberry Pi 2にマイクロSDカードをセットしたら、有線LAN、HDMIディスプレイを接続した上で電源を投入します。数分待つと、最終的に手順のページでも見られる下記のページまでたどりつきます。なお、相性の悪いディスプレイでは画面が乱れるということがあったため、相性の良いディスプレイに変更することで対処しました。


なお、画面右上に見える電源ボタン、右下に見える設定ボタンは、Raspberry Pi 2に接続したマウスでクリックすることができるのですが、マウスにも相性があるようで、手持ちのマウスで操作できるものは多くはありませんでした。

下図左側がRaspberry Pi 2を操作できなかったマウス、右側が操作できたマウスです。メーカーによる傾向などはあまりありません。


ただし、マウスで操作できなくても、Lチカ自体は行えますので先に進みます。

さて、この状態のRaspberry Pi 2に、Windows 10 PCからリモート接続してみることにします。

  1. PowerShellを管理者権限で起動します(検索窓にPowerShellと入力すると現れます)
  2. PowerShell上で下記を実行し、WinRMを起動します。
    > net start WinRM
    
  3. PowerShell上で下記を実行します。Raspberry Pi 2のIPアドレスはディスプレイに表示されています。確認には「Y」と答えます
    > Set-Item WSMan:\localhost\Client\TrustedHosts -Value (Raspberry Pi 2のIPアドレス)
    
  4. PowerShell上で下記を実行すると、Raspberry Pi 2上のWindows 10 IoTにログインできます。デフォルトパスワードは「p@ssw0rd」です。
    > Enter-PsSession -ComputerName (Raspberry Pi 2のIPアドレス) -Credential (Raspberry Pi 2のIPアドレス)\Administrator
    

この状態でRaspberry Pi 2に対して様々な設定が行えますので、「Using PowerShell to connect and configure a device running Windows IoT Core」を参考にしてみてください。

ここでは、Windows 10 PCに対するVisual Studio Community 2015 RCのインストールに入っていきます。

4. Visual Studio Community 2015 RCのインストールと設定


手順→「Windows IoT - Setup your PC for Raspberry Pi 2」および「Enable your device for development

Windows 10がインストールされたPCに、Visual Studio Community 2015 RCをインストールしていきます。
  1. Steps to install Windows 10 development tools for Visual Studio 2015 RC」の左下にある「Get the tools」ボタンをクリックします。VSToolsForWindows.exeがダウンロードされますので、インストールします。Community版がインストールされますが、Professional版が良い場合は、リンク先の解説に従ってください。

    なお、「Universal Windows App Development Tools」というものをインストールしなければならないのですが、VSToolsForWindows.exeを「typical」でインストールしたら自動的にインストールされました。インストール後にコントロールパネルの「プログラムのアンインストールまたは変更」で「Microsoft Visual Studio Community 2015 RC」のインストール項目を調べてみると、 下図のように確かに「Universal Windows App Development Tools」がインストールされていました。


  2. 次に、Windows appの開発用にWindows 10をアンロックします。まず、検索ウインドウでGpedit.mscと入力し、現れたローカルグループポリシーエディターを管理者権限で起動します(エラーがでますが気にせず先に進みました)。そして 「ローカルコンピュータポリシー」→「コンピューターの構成」→「管理用テンプレート」→「Windowsコンポーネント」→「アプリパッケージの展開」と辿り、中にある「Allows development of Windows Store applications and installing(略)」と「信頼できるすべてのアプリのインストールを許可する」を有効にします


  3. 最後に、Windows_IoT_Core_RPI2_BUILD.zipに含まれていたWindowsDeveloperProgramForIoT.msiをインストールします。なお、これにより「Windows IoT Core Watcher」というアプリケーションがインストールされ、自動起動するはずなのですが(スナップショットが「Windows IoT - Setup your PC for Raspberry Pi 2」にあります)、私の環境では起動しませんでした。それでもVisual StudioからRaspberry Pi 2へのアプリケーションのインストールはできましたので、ここでは気にせず先に進むことにします。

5. サンプルアプリケーションのダウンロードと実行


手順→「Blinky Sample」および「‘Hello, World!’ Sample

Lチカのサンプル「Blinky」のC#版を試してみます。「Blinky」ページに作るべき回路が示されているので、あらかじめ作成しておきます。3.3VピンとGPIO 5でLEDと抵抗の直列接続をはさむ回路になっており、GPIO 5がLOWのときにLEDが点灯する回路です。

ファイルは、「ms-iot/samples」の「Download ZIP」ボタンにより全てのサンプルをダウンロードしてしまうのが簡単でしょう。

展開後に現れる「samples/Blinky/CS/Blinky.csproj」がVisutal Studio Community 2015 RCで開くべきプロジェクトファイルになります。

開いたときの様子が下図です。図のように、MainPage.xaml.csにメインの処理が記述されています。


これをRasbperry Pi 2で実行するには、「‘Hello, World!’ Sample」に示されているように、ターゲットを設定する必要があります。

下図のように、「Device」を「Remote Machine」に変更します。


すると、下記のようなダイアログが現れるので、

  • Address:Raspberry Pi 2のIPアドレス
  • Authentification Mode:None
と変更して、Selectをクリックします。



その状態でアプリケーションを実行すると、それなりの時間待たされた後、アプリケーションがRaspberry Pi 2にインストールされ、冒頭の写真のように実行されます。

お疲れ様でした。



「ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」、「実例で学ぶRaspberry Pi電子工作」、「Raspberry Piではじめる機械学習」を執筆しました。