Windows 10 IoT Core の紹介


※本ブログは Building Apps for Windows “Hello, Windows 10 IoT Core” の抄訳です。

開発者の皆さん、こんにちは。

このたび、Raspberry Pi 2MinnowBoard Max のパブリック リリースを発表しました。Windows IoT デベロッパーセンターにアクセスしてターゲット ボードを選んだら、手順に従って、ボードをプロビジョニングし、ツールを手に入れて、モノ作りを始めましょう。この Windows 10 IoT Core のリリースには、2015 年 7 月 29 日リリースの Windows 10 (Build 10240) と Visual Studio 2015 を実行している開発用のコンピューターが必要です。

Windows 10 IoT Core の概要

Windows 10 IoT Core は、小型の組み込みデバイス (画面の有無は問いません) を対象とした Windows の新しいエディションです。画面があるデバイスで実行している Windows 10 IoT Core では Windows シェル エクスペリエンスが提供されないため、ユニバーサル Windows アプリを開発します。このアプリが、インターフェイスになり、デバイスの “パーソナリティ” になります。Windows 10 IoT Core は、デバイス開発のハードルを下げて、本格的なデバイスを簡単に構築できるように考えられています。各種オープン ソース言語に対応するように設計され、Visual Studio による開発もしやすくなっています。

また、Windows 10 IoT Core を使って、エアホッケー台ロボットを作ることもできます。

このリリースの新機能

Windows 10 IoT Core は、//build/ カンファレンスで最初のパブリック プレビューを発表してから、大きく進歩しています。おそらく最も重要な変化は、待望の Wi-Fi および Bluetooth 接続がサポートされるようになったことでしょう。すべての新機能と機能強化を列挙することはできませんが、代表的なものをいくつか紹介します。

  • 新しい Express Node.js プロジェクト テンプレートなど、Python と Node.js, のサポートを強化しました。
  • Raspberry Pi 2 での GPIO パフォーマンスが 8 ~ 10 倍向上しています。
  • Breakout Board と IC でアナログ デジタル コンバーター (ADC) とパルス幅変調 (PWM) がサポートされるようになりました。
  • 新しいユニバーサル Windows プラットフォーム (UWP) API によって、タイム ゾーンやネットワーク接続などのシステムの管理機能を簡単に制御できます。

Developers, Developers, Developers

私たちのチームでは、開発エクスペリエンスを優先事項の 1 つに掲げて、Windows 10 IoT Core の構築に取り組んでいます。Windows 10 IoT Core 向けのアプリを作成するときに、それを実感していただければさいわいです。私たちの基本方針は、開発者が自由に好きな言語とフレームワークを使用して、IoT デバイス アプリを開発しやすくすることです。つまり、C++、C#、JS、VB など、標準の UWP 言語を完全にサポートするだけでなく、Node.js と Python のサポート (ツール全般、デバッグ、プロジェクト システムなど) も提供します。標準の UWP 言語用のテンプレートでは、標準の UWP プロジェクトと同じ外観のプロジェクトが作成されますが、Node.js と Python 用のテンプレートでは、アプリが他のプラットフォームと同じ外観になるように努めました。以下は、I2C センサーからデータを読み取り、データを Web ページに表示する Node.js UWP アプリの完全なコードです (このサンプルはこちら (英語) からダウンロードできます)。

 

// Copyright (c) Microsoft. All rights reserved.
// This is under the MIT license, please go to GitHub sample link for full license.
// https://github.com/ms-iot/samples/tree/develop/WeatherStation/Node.js/NodeWeatherStation

 
 var http = require('http');
 

// WinRT を Node.JS にインポートします。

var uwp = require("uwp");
uwp.projectNamespace("Windows");
 
var i2cDevice;
 

// デバイスを検索します。C# ではなく JS である点以外は、他のプロジェクトと同じコードです

var aqs = Windows.Devices.I2c.I2cDevice.getDeviceSelector("I2C1");
 
Windows.Devices.Enumeration.DeviceInformation.findAllAsync(aqs, null).done(function (dis) {
    Windows.Devices.I2c.I2cDevice.
           fromIdAsync(dis[0].id, new Windows.Devices.I2c.I2cConnectionSettings(0x40)).
           done(function (device)
            { i2cDevice = device;
    });
});
 
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    var output = "";
    var humidity = 0;
     
   

// センサーから湿度を読み取ります。

    var command = new Array(1);
    command[0] = 0xE5;
    var data = new Array(2);
    i2cDevice.writeRead(command, data);
    var rawhumidityReading = data[0] << 8 | data[1];
    var ratio = rawhumidityReading / 65536.0;
    humidity = -6 + (125 * ratio);
     
    

// センサーから温度を読み取ります。

    var tempCommand = new Array(1);
    command[0] = 0xE3;
    var tempData = new Array(2);
    i2cDevice.writeRead(command, data); 
    var rawTempReading = data[0] << 8 | data[1];
    var tempRatio = rawTempReading / 65536.0; 
    var temperature = (-46.85 + (175.72 * tempRatio)) * 9 / 5 + 32; 

    output =  "Humidity: " + humidity +  ", Temperature: "+ temperature; 
    res.end(output); 
}).listen(1337);

VS RC と RTM のプロジェクト システムの互換性についてのメモ

VS プロジェクト システムの //build/ 版、RC 版、RTM 版の間で、さまざまな重大な変更がありました。アプリコードの大半はそのままで機能しますが、プロジェクト自体はビルドし直す必要があります。Visual Studio チームは、新しいプロジェクトをビルドして、新しいプロジェクトシェルにコードを移植することをお勧めしています。

使用するツールと言語を自由に選択できるように開発

参加者が多岐にわたるコミュニティに対する務めとして、コミュニティの協力の下で、できる限り多くのオープンソースの選択肢をサポートできるようにしています。Github では、IoT のすべてのサンプルとドキュメントを公開しているほか、ライブラリやヘルパーツールも続々と登場しています。Python と Node.js のプロジェクト システムとランタイムサポートも、Github でオープン ソースとして公開しています。

サンプルが完全なプロジェクトになったら、Hackster.io で公開します。

また、Arduino と協力して、Windows から Arduino のボードと非常に簡単に通信できるようにしています。さらに、Arduinos からは仮想シールドであるかのように Windows デバイスと通信できるようにしました。このプロジェクトの詳細については、こちら (英語) をご覧ください。

楽しく、収益も望める IoT プロジェクト

楽しくクールで、実生活でも非常に実用的なプロジェクトを簡単に構築できるように、IoT Core と対応する開発者ツールを作成しています。その証拠として、IoT チームのメンバーやコミュニティによって、最初のパブリック ビルドが公開されてから数か月の間に作成されたさまざまなプロジェクトをご覧いただけます。

Hackster.IO プロジェクトのサンプルをいくつか紹介します。

その他にも進行中のプロジェクトがあります。Air Hockey Table、Face Recognition Unlocked Door など、さまざまなプロジェクトについての情報を見逃さないよう、hackster.io を定期的にチェックしてください。

ご意見をお寄せください

ご試用になり、何かお気付きのことがありましたら、ぜひお知らせください。いつものことながら、皆様のフィードバックをお待ちしております。貴重なご意見を参考に、全力で問題解決に取り組みます。

関連リンク

  • リリース ノート (英語): このリリースの Windows 10 IoT Core の機能に関する詳細情報を提供しています。
  • ダウンロード (英語): ここをクリックして、今すぐダウンロードしてお試しください (無料でご利用いただけます)。最新版の Windows 10、Visual Studio 2015、ツールが必要です。

コミュニティ (英語): こちらからフィードバックをお寄せください。また、開発者同士のコミュニケーションにフォーラムをご活用ください。

作品をご紹介ください

私たちのプラットフォームを基盤に開発されたありとあらゆるすばらしい作品を見たいという思いで、私たちは IoT の開発に取り組んでいます。私たちのプロジェクトのほとんどは、「もし…ならいいと思わないか」という非公式な開発者クレド (信条) からスタートしています。ですから、その問いかけに対する皆様の答えをぜひ拝見したいと考えています。楽しみながらすばらしいものを開発してください。その際には、ハッシュタグ #makeInventDo を付け、写真を沿えて @WindowsDev 宛てに英語でツイートし、開発のようすをお知らせいただければ幸いです。

Comments (0)

Skip to main content