インテル Galileo 開発ボードでWindows IoTを動かす – 後編

はじめに

インテル Galileo 開発ボードでWindows IoTを動かす – 前編」の続きです。後編の今回は開発ツールのインストールと、その開発ツールからアプリケーションをインテル Galileo 開発ボードに転送して動作させてみます。

目次

注意事項

このメモの作業手順は、基本的にWindows 7上で行うことを前提としています。Windows 8あるいはWindows 8.1では手順が異なる個所がありますので、ご了承ください。

前提

前編でファームウェアをバージョンアップしたインテル Galileo 開発ボードやWindows IoTを書き込んだmicroSDメモリーカードなど、すべてそのまま後編で使用することを前提としています。

これらの作業をまだ行っていない場合には、先に前編を参照ください。

開発ツールの準備

通常のインテル Galileo 開発ボードではArduino IDEを開発環境として使用しますが、Windows IoTが動作しているインテル Galileo 開発ボードではMicrosoftの開発ソフトウェア製品であるVisual Studio 2013シリーズを使用します。

今回は、無償で利用できる「Visual Studio Express 2013 for Windows Desktop」を使用することにします。※1

ダウンロードとインストール

  1. システム要件を参照して、使用する予定のWindows環境でVisual Studio Express 2013 for Windows Desktopを使用可能であることを確認します。

    Visual Studio システム要件

  2. Visual Studio 2013をダウンロードするためのページからVisual Studio 2013 for Windows Desktopの「今すぐインストール」でファイルをダウンロードします。なお、ダウンロードするにはMicrosoftアカウントとVisual Studio 2013の利用登録が必要です。

    Visual Studio ダウンロード

  3. ダウンロードした「wdexpress_full.exe」を実行します。

    Visual Studio ダウンロードしたファイル

  4. 「Visual Studio」のスプラッシュが表示されるので表示が変わるまで待ちます。

    Visual Studio 2013 インストール・スプラッシュ

  5. 「Express 2013 for Windows Desktop Update 3 を使用」という表示が出ますので、任意のインストール先の指定(通常はデフォルトから変更の必要なし)と「ライセンス条項」および「プライバシー ポリシー」を確認したうえで「ライセンス条項およびプライバシー ポリシーに同意します。」にチェックを入れて同意します。なお、同意できない場合にはソフトウェアを使用することはできません。

    Visual Studio 2013 ライセンス同意 - 初期

  6. 「Visual Studio の品質、信頼性、パフォーマンスを高めるための…(以下略)」のチェックを任意の状態にします。
  7. ウィンドウの下部に表示された「インストール(N)」をクリックします。

    Visual Studio 2013 インストール開始

  8. Windowsの設定によっては「ユーザー アカウント 制御」が発動しますので、続行あるいは認証の対応をします。
  9. Visual Studio 2013関連パッケージのダウンロードとインストールが開始されるので終了するまで待ちます。

    Visual Studio 2013 インストール中

  10. 「セットアップが完了しました。」と表示されたらウィンドウの下部に表示された「起動(L)」をクリックしてVisual Studo 2013を起動します。

    Visual Studio 2013 インストール完了

  11. 「Visual Studio Express 2013 for Windows Desktop」のスプラッシュが表示されるのでしばらく待ちます。

    Visual Studio 2013 起動スプラッシュ

  12. 「ようこそ。Visual Studio にサインインしてください。」という表示が出ることがあります。この場合には「後で行う。」をクリックして先へ進みます。またインストール後30日を経過しているとサインインが必要になります。
  13. 「Visual Studio 初めて使用するための準備をしています」という表示が出るのでしばらく待ちます。

    Visual Studio 2013の初回起動

  14. 「Microsoft Visual Studio Express 2013 for Windows Desktop」が起動して「スタート ページ」が表示されます。メニューから「ツール(T)」をクリックして「NuGet パッケージ マネージャー(N)」という項目があることを確認します。

    NuGetパッケージ マネージャーが存在するか確認

    無い場合に限り以下の操作を行います。

    1. メニューから「ツール(T)」→「機能拡張と更新プログラム(U)…」をクリックします。

      拡張機能と更新プログラムを選択

    2. 「機能拡張と更新プログラム」ウィンドウが表示されるので、左ペインの「オンライン」→「Visual Studio ギャラリー」を選択し、ウィンドウ右上の検索ボックスに「NuGet Package Manager」と入力してEnterキーを押します。
    3. 中央のペインに「NuGet Package Manager for Visual Studio 2013」が表示されるので、これをクリックしてインストールします。

      NuGet パッケージ マネージャーの確認

  15. Visual Studio 2013を終了します。
  16. Windows Developer Program for IoT – Microsoft Installer (MSI)をダウンロードします。ダウンロードにはMicrosoftアカウントの取得とWindows Developer Program for IoTへの参加が必要です。

    Windows Developer Program for IoTのダウンロード

  17. ダウンロードした「WindowsDeveloperProgramforIOT.msi」を実行します。

    ダウンロードしたWindowsDeveloperProgramforIOT.msi

  18. 「Windows Developer Program for IoT」のライセンス契約が表示されるので、同意するのであれば「I accept the terms in the license Agreement」にチェックを入れて「Install」ボタンをクリックします。同意しない場合にはこのソフトウェアを使用することはできません。

    Windows Developer Program for IoTのライセンス同意

  19. Windowsの設定によってはUACの確認あるいは認証が行われるので対応をします。
  20. 「Installing Windows Developer Program for IoT」という表示と伸びていくプログレス・バーが表示されるので、インストールが終了するまで待ちます。

    Windows Developer Program for IoTのインストール中

  21. インストールが完了すると「Completed the Windows Developer Program for IoT Setup Wizard」と表示されるので「Launch Galileo Watcher Application」のチェックは任意の状態にして「Finish」ボタンをクリックします。

    Windows Developer Program for IoTのインストール完了

    なお、ここで「Launch Galileo Watcher Application」にチェックを入れていると、ネットワーク上のWindows IoTの動作したインテル Galileo 開発ボードをサーチしてリスト表示するアプリケーション「Galileo Watcher」が起動します。これが筆者の環境では正常に動作しないことがありました。※2このため、Galileo Watcherの表示に頼らずに作業をすることをお勧めします。

    Galileo Watcherの実行例

インテル Galileo 開発ボードの準備

  1. インテル Galileo 開発ボードの電源が切れていることを確認します。
  2. Windows IoTの入ったmicroSDメモリーカードをインテル Galileo 開発ボードに挿します。
  3. 発光ダイオードをGPIOの13番がアノード、GNDがカソードになるように挿します。※3
  4. インテル Galileo 開発ボードにEthernetケーブルを挿しこみます。
  5. 差し込んだEthernetケーブルのもう片方をUSB接続のEthernetアダプターに差し込みます。
  6. インテル Galileo 開発ボードに電源を接続します。
  7. Windows IoTの起動が完了するまで約2分ほど待ちます。この際、microSDメモリーカードへのアクセス状況を示すLEDを目視確認するとわかりやすいかと思います。
  8. USB接続のEthernetアダプターをパソコンのUSBポートに接続します。※4

なお、パソコンとインテル Galileo 開発ボードをUSBケーブルで接続する必要はありません。

アプリケーションの作成と実行

2014年10月6日一時的な追記:Intel Galileo Gen 2ボード向けのアルファ版では異なる個所があります。詳しくは“MicrosoftがIntel Galileo Gen 2対応Windows IoTのα版を公開”というメモの2014年10月6日追記を参照ください。
2014年10月20日一時的な追記:Intel Galileo Gen 2ボードにおいて、ビルド時にソリューションへインストールする対象が変更になりました。詳しくは“Intel Galileo Gen 2向けMicrosoft IoT C++ SDK 1.0.0-alpha2のリリース”を参照ください。

  1. 「スタート メニュー」の「すべてのプログラム」→「Visual Studio 2013」→「VS Express 2013 for Desktop」と選択して「Visual Stduio」を起動します。

    スタートメニューからVisual Studio 2013の起動

  2. 「Visual Studio Express 2013 for Windows Desktop」のスプラッシュが表示されるのでしばらく待ちます。

    Visual Studio 2013 起動スプラッシュ

  3. 起動したら「スタート ページ」の「開始」項目にある「新しいプロジェクト…」をクリックします。

    スタートページで新しいプロジェクトを選択

  4. 「新しいプロジェクト」ウィンドウが表示されるので、左ペインの中を「インストール済み」→「テンプレート」→「Visual C++」→「Windows for IoT」と選択します。
  5. 右ペインの中に表示された「Galileo Wiring App」を選択します。
  6. 「名前(N):」のテキスト・ボックスに任意の名前を入れます。ここでは「First Galileo App」としました。
  7. 「場所(L):」と「ソリューション名(M):」を確認して変更の必要があれば変更します。
  8. 「OK」ボタンをクリックしてプロジェクトを作成します。

    新しいプロジェクトはFirst Galileo App

  9. 少し時間がかかって「Microsoft Visual Studio Express 2013 for Windows Desktop」の「ソリューション エクスプローラー」にプロジェクトの内容が表示されます。
  10. メニューから「ツール(T)」→「NuGet パッケージ マネージャー(N)」と進み、「ソリューションの NuGet パッケージの管理…」をクリックします。

    ソリューションの NuGet パッケージの管理

  11. 「NuGet パッケージの管理」ウィンドウが表示されるので左ペインから「オンライン」→「nuget.org」と選択します。すると「情報を取得しています」と表示されるのでしばらく待ちます。

    ソリューションの NuGet パッケージを取得中

  12. 右上の検索ボックスに「Galileo」と入力します。しばらく待つと中央ペインに「Galileo C++ SDK」が表示されるので「インストール(I)」ボタンをクリックします。

    NuGet パッケージの検索結果

  13. 「プロジェクトの選択」ウィンドウが開いてインストールする対象のプロジェクトが表示されるので、意図通りであればそのまま「OK」ボタンをクリックします。

    プロジェクトへのパッケージインストールの確認

  14. 「インストール中…」ウィンドウが表示されて進行状況がテキストで表示されるので、表示が消えるまでしばらく待ちます。

    NuGetパッケージのインストール中

  15. 「NuGet パッケージの管理」ウィンドウの「閉じる」ボタンをクリックします。

    NuGetパッケージ管理を閉じる

  16. プロジェクトに追加された情報をVisual Studioがバックグラウンドで読み取るので、それが終了するまでしばらく待ちます。進行状況はウィンドウ下部に表示されています。全て終わると「準備完了」という表示に変わります。
  17. 「ソリューション エクスプローラー」に表示されている項目を「First Galileo App」→「Source Files」と選択して「Main.cpp」をダブル・クリックすると左ペインに中身が表示されます。

    テンプレートから生成されたソースコード

    先ほど、テンプレートを元にプロジェクトを作成したので中身がすでに入っています:

    // Main.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "arduino.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        return RunArduinoSketch();
    }
    
    int led = 13;  // This is the pin the LED is attached to.
    
    void setup()
    {
        // TODO: Add your code here
        
        pinMode(led, OUTPUT);       // Configure the pin for OUTPUT so you can turn on the LED.
    }
    
    // the loop routine runs over and over again forever:
    void loop()
    {
        // TODO: Add your code here
    
        digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
        Log(L"LED OFF\n");
        delay(1000);               // wait for a second
        digitalWrite(led, HIGH);   // turn the LED on by making the voltage HIGH
        Log(L"LED ON\n");
        delay(1000);               // wait for a second
    }

    これはArduinoスタイルに合わせたソースコードで、書き方はかなりArduinoに似ています。関数もかなり似たものが用意されています。カンのいい人ならばこれがどのような動きをするソースコードなのかはすでにお分かりかと思いますが、いわゆる「Blink(LED点滅 / Lチカ)」を行うものです。今回はこのソース・コードをそのまま使用します。

  18. ウィンドウ上部にある「リモート Windows デバッガー」をクリックします。

    リモート Windows デバッガーの起動

  19. 「このプロジェクトは変更されています(T):」および「ビルドしますか?」と表示されるので「はい(Y)」ボタンをクリックします。

    ビルドの確認

  20. しばらくビルドが行われます。この時にいくつか警告が出ますが、ここでは無視します。※5

    ビルドの実行中

  21. ビルドが終わると、それをWindows IoTの稼働するインテル Galileo 開発ボードへ「配置」するために認証情報を求めてきます。「Windows セキュリティ」ウィンドウが表示されたら「ユーザー名」および「パスワード」を入力して「OK」ボタンをクリックします。※6

    Windows IoTの認証情報の入力

  22. ウィンドウ下部にデバッグに使用する「ローカル」および「呼び出し履歴」が開かれ、インテル Galileo 開発ボード上で動作するWindows IoTでビルドしたアプリケーションが実行されます。※7
  23. Windows IoTで動くインテル Galileo 開発ボード上で先ほどのアプリケーションが動作し、インテル Galileo 開発ボードに挿した発光ダイオードが1000ミリ秒(1秒)ごとに点灯・消灯を繰り返すことが確認できます。※8

    Windows IoTで動くインテル Galileo 開発ボード

シャットダウンの勧め

電源を切る前にシャットダウンをしましょう。microSDメモリーカードで起動したWindows IoTは、通常のWindowsと同様にシャットダウンを経て電源を落とすべきです。ちなみに、LinuxであってもmicroSDメモリーカードから起動した場合には同様にシャットダウンを行うべきです。

まとめ

このようにインテル Galileo 開発ボードでWindows IoTを動作させ、Windows用の高機能開発環境であるVisual Studioと連携をした開発が行えることが確認できました。

どの程度のAPIが実装されていて使用できるのかなどは、時間の関係でまだ詳しくは見ることができていませんが、これまでWindowsでの開発をしてきた開発者には良い環境なのではないかと思います。一方で、Arduino互換のハードウェアを扱うことを考えると、ボードの駆動処理をWindows IoT上で動くようにポーティングする作業が発生するということもあり、このあたりを考慮する必要もあるでしょう。

いずれにしても選択肢が増えることは大歓迎です。こちらの環境も学んでいきたいと思います。

あと、できれば近いうちにGen 2でも動作するバージョンを提供していただけると嬉しいなぁ、と思う次第です。→2014年10月6日一時的に追記Gen 2対応のアルファ版が公開されました。

2014年8月30日追記

  • 目次を追加しました。

  • それ以外のエディションでもVisual Studio 2013シリーズであれば多少の違いはあっても問題なく使用できるかと思います。
  • インテル Galileo 開発ボードを見つけることがなかったり、USB接続のEthernetアダプターを追加した際にクラッシュしたりする症状がありました。
  • インテル Galileo 開発ボードのソース/シンク電流量および一般的な発光ダイオード(LED)の耐久性の観点から、5V駆動用の抵抗入り発光ダイオードを使用することをお勧めします。
  • 必要に応じてドライバーのインストールなどの対応を行ってください。
  • 文字コードの設定関連の問題です。
  • 前編でのWindows IoTのmicroSDメモリーカードへの書き込みを同ページの記載通りのコマンドで行っていれば、ユーザー名は「administrator」、パスワードは「admin」です。
  • この状態でインテル Galileo 開発ボード上のWindows IoTアプリケーションに対してVisual Studioによるデバッグ作業が行えます。
  • うまく動作しない場合はここまでの作業内容を見直してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です