外観、IOのレイアウトは Raspberry Pi B+ を踏襲しています。
パフォーマンスが6倍になっているかはわかりませんが、体感速度はかなり向上しています。従来モデルでは、Chromiusを立ち上げるとしばらくCPUが100%に張り付いて戻ってこなかったのが、Chromiusと同時に複数アプリを起動しても以前よりレスポンスがいいです。
これは、やはり、CPUの4コア化とメモリの倍増が効いていますね。
Raspberry Pi の公式サイトに 他プラットフォーム との比較表が掲載されていました。
色々と使い道が広がりそう、特にOpenCVなんかは、色抽出とか顔検出とか、今まで処理的にきつかったのが、今後は期待できるんじゃないでしょうか。そのうち、試してみたいところです。ちなみに OpenCVのソースからのビルドを行ったところ、3時間くらいで終わりました。B、B+では半日(寝る前にmakeして、朝まで放置させて6~8時間かかっていたんじゃないでしょうか?)
また、Raspberry Pi 2 に対しては、Microsoft が Windows 10 (Windows IoT) for Raspberry Pi 2 の対応を発表しています。Windows for IoT は、通常の Windows のようなGUIベースのデスクトップOSではなく、コマンドラインベースの組み込み向けOSです。今回(今年後半予定)のRaspberry Pi 2用のWindows for IoT がどのようなもの(GUI付き?)になるかわかりませんが、現状、Galileo に提供されている Windows for IoT を考えると、Visual Studio で組み込み開発ができるOSというイメージではないかという想像でいます。
と、いうわけで、Raspberry Pi 2 → Windows for IoT という話の流れで、以前に入手して、
Galileo 用の Windows for IoT のセットアップに関しては、 こちら(KEI SAKAKI'S PAGE) を参考にさせていただきました。Windows Developer Program for IoTへの登録とツールやイメージのダウンロード、Visual Studio 2013 (Express や Communities でもOKなはず) の開発環境が必要になります。
各種準備やセットアップに関しては公式サイトにもありますが、先のこちら(KEI SAKAKI's PAGE さん) が日本語かつ画面入りの丁寧な説明を掲載されているので、こちら を参考にする方が良いです。感謝です。
また、色々試してみた後に見つけたものですが、Microsoftの中の人っぽい方が説明資料を公開してくれています。
上記の2つの日本語サイトの情報を見てもわかるのですが、基本的にはArduinoベースのプログラミングがC++でできます。だったら、Arduinoでいいじゃん・・・っていう話ですが、(Galileoを使うにしたって、元のGalileoのままでArduino IDE使えるし)、しかし、なんと、Visual Studioで開発ができます・・・って、どうでもいいですか?Visual Studio大好きっ子(子じゃねぇし、ジジィだし・・・)の自分としては、結構うれしいし、ただ、Visual Studioでコードが入力出来るだけではありません。通常のVisual Studioで行うWindowsプログラミング(コンソールプログラミングかな?どちらかというと)同様にブレークポイントを設定して、ステップ実行&デバッグができます。これは、嬉しい!Arduino IDEも嫌いじゃないですが、やっぱり、Visual Studioが好き。Raspberry Pi のプログラミングもわざわざお金払ってVisualGDBっていうVisual StudioからRaspberry PiのGDBにリモートデバッグできる有償プラグイン買ったりして、Visual Studio使ってるし。
で、まずは、Windows for IoT をセットアップした Galileo に試しに Telnet 接続してみます。SSHじゃないところが気になりますが、もともとWindowsなのでtelnetサービス(しか)が標準で装備されている(通常のOS利用ではサービスが停めてあるはずですが)ので、Telnet ということなんでしょう。ユーザ:administrator、パスワードはイメージ作成時に指定したパスワードで接続すると、見慣れたコマンドプロンプトが C:\Windows\Sytem32\ みたいに表示されるので、ああ、Windowsなんだなって思います。
実際にはtelnet接続は何かの設定を行う以外は、プログラムを動かす上ではあまり関係なく、開発を行うには、Visual Studio で C++→Windows for IoTプロジェクトを作成して、デバッグの構成で、デバッグ対象のGalileoをネットワーク名かまたはIPアドレスで指定して、Visual Studioから接続できるようにしておきます。
今回は、公式サイトにあったLCDへの表示のプロジェクトを参考に、スイッチサイエンスさんでずっと前に入手したPrototyping Labという書籍に出てくるLCD Shieldの配線に合わせてコードを少し変えたものを作成してみました。
上の写真は「Hello,WinIoT!」を表示した後、1行毎に2行目の数字をカウントアップするスケッチを動かして、途中でブレークポイントを設定して、一時停止させたところです。メインのソースは以下の様な感じ。プロジェクトはこちらにあります。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Main.cpp : Defines the entry point for the console application. | |
// | |
#include "stdafx.h" | |
// LCD pin <=> Arduino pin | |
int RS = 12; | |
int ENABLE = 11; | |
int DB4 = 5, DB5 = 4, DB6 = 3, DB7 = 2; | |
LiquidCrystal lcd = LiquidCrystal(RS, ENABLE, DB4, DB5, DB6, DB7); | |
int _tmain(int argc, _TCHAR* argv[]) | |
{ | |
return RunArduinoSketch(); | |
} | |
int led = 13; // This is the pin the LED is attached to. | |
void setup() | |
{ | |
Log(L"LCD Sample\n"); | |
lcd.begin(16, 2); | |
lcd.setCursor(0, 0); | |
lcd.print("Hello,WinIoT !"); | |
} | |
// the loop routine runs over and over again forever: | |
void loop() | |
{ | |
lcd.setCursor(0, 1); | |
lcd.print(millis() / 1000); | |
} |
0 件のコメント:
コメントを投稿