FEZの温度センサー処理のバージョンアップ対応等 – 2014/12/24日現在

今年後半にかけて、.NET Micro Framework、.NET Gadgeteer、FEZのSDKや製品ラインナップのUpdateが立て続けにあり、APIやセンサーが変わっているので、 http://blogs.msdn.com/b/hirosho/archive/2014/07/25/gadgeteer-azure-part-1.aspx で説明している内容のStep2の最新環境での実装方法を解説しておきます。 先ず、開発環境のセットアップですが、 http://blogs.msdn.com/b/hirosho/archive/2014/12/03/iot-kit.aspx で紹介しているセットアップがなされているものとして話を進めます。 プロジェクト作成の際に出てくるメインボード選択のダイアログでFEZ CerbiunoNetを選択する際には、右下のバージョン選択で4.3を選択するようにしてください。 既にディスコンになってしまった、温度湿度センサーを継続して使う場合、このセンサー用のAPIは更新されてしまったので、最新版のSDKを使う場合には、 温度センサー初期化のコード:             tempHumidity.MeasurementComplete += tempHumidity_MeasurementComplete;            tempHumidity.StartTakingMeasurements(); の変更が必要です。更に、MeasurementCompleteはシグネチャが変わっているので、このイベントハンドラのメソッドは、         void tempHumidity_MeasurementComplete(TempHumidity sender, TempHumidity.MeasurementCompleteEventArgs e)        {            lock(this)            {                lastTemp = e.Temperature;                lastHumidity = e.RelativeHumidity;            }            if (e.Temperature > 30)            {                relay_X1.TurnOn();            }            else            {                relay_X1.TurnOff();            }         } と変更が必要です。 以前の.NET Micro Framework 4.2のプロジェクトをアップデートする場合は、上の修正をする前に、ソリューションエクスプローラでプロジェクトを右クリック→”プロパティ”を選択して、”アプリケーション”タブの”対象のフレームワーク”を”.NET Micro Framework 4.3”に変更します。…

0

IoT ( Internet of Things) Hands-on Kit トレーニング の学習方法

10月のIoT Japanで発表した、IoT Kit Hands-on Training セミナー、既に11月末からStep3までhttps://aka.ms/IoTKitHoL から公開してます。是非、皆さん、トライしてください。 …ポータルを眺めていて、う~ん、そっけない…と感じたのは私だけでなないと思います。特に姉妹ハンズオンのhttps://aka.ms/nkit と比べると、メインでやっている人間性が出てる…。 ということで、ここでポータルの構造と学習方法を説明しておきます。ポータルは、 はい。”さあ、始めよう”をクリックして、 といった流れで進めてください。学習に必要な機材や各種準備は、ポータルの ”事前準備”に書いてあるので、よく読んでください。2014年12月現在、まだ、GR PEACH版IoT Kitは販売されていませんが、FEZ版IoT Kitは販売中なので、そちらをご利用ください。IoTは基本複数のデバイスがつながるのが基本だし、学習コンテンツの中には、複数のデバイスをつなぐとより学習効果が出る内容もあるので、損はしないでしょう。 この「ハンズオンいいかも」と思った方、ポータルの、 ”トレーニング概要”をクリックすると、このトレーニングの全体像が表示されるので、これを知合いに見せて紹介してくれるとありがたし。このハンズオントレーニングの集合教育版セミナーや各種イベントの告知をやっているので、それも参考にしてくださいね。 更に、「俺持ってんの、mbedだし」とか「ラズパイ命」とか、「LEGO MINDSTORMS EV3大好き」とか、「やっぱArduinoっしょ」とか、思っている方は、”さぁ、始めよう”の下の方に ”コントリビューター募集” と書いてますよね。そういった皆さんは、.NET MFの部分をそれらのガジェットに置き換えたコンテンツ作成に協力してもらえると、非常に助かるので、挙手…いや、iotkithol-jp@microsoft.com にご連絡おねがいします。 では、では。  

0

Lチカ、リレチカ、カメパシャ、クラコネで、FEZ Spiderで画像キャプチャしてAzureのブロブに格納

今年のDevice 2 Cloud (D2C)コンテストの広島工業大学の学生さんの作品を見ていて、この作品の完成形が見たい…ということで、FEZ SpiderのCameraで撮った画像を、Web SiteのWeb APIで作ったHTTP RESTサービスに送って、Azure のBlob ストレージに格納するサンプルを紹介します。 で、その前に、FEZ Spider のDebug用 LEDでLチカするなら、 var timer = new GT.Timer(500);bool ledOn = false;timer.Tik += (t) => {    ledOn = !ledOn;    Mainboard.SetDebugLED(ledOn);};timer.Start(); ま、こんな感じ。リレーチカチカするなら、Relay X1あたりを使って、 relayX.TurnOn();relayX.TurnOff();  で、おしまい。 さて、本題。https://aka.ms/IoTKitHoL  と合わせて読むと理解度アップです。 構成を絵で描くと、 こんな感じ。Multicolor LEDはおまけ。 先ず、FEZ Spiderで、カメラでパシャ(カメパシャ)をするコードだが、タイマーを起動して、定期的にカメラで写真を撮って、クラウドに送信することとする。Program.csを以下のようにコーディング。         void ProgramStarted()        {            /*******************************************************************************************            Modules added in the Program.gadgeteer designer view are used…

3

IoT Kit ハンズオントレーニング用の開発環境セットアップ

11月は30日までです‼…という言い訳を地でいってしまいましたが、現在、Step3 蓄積編までをhttps://aka.ms/IoTKitHoL で公開しています。 ※2015年1月現在、Step1~Step5まで全てのコンテンツを公開中です。 ここでは、このトレーニングを行うのに必要な開発環境セットアップ方法を念のため説明しておきます。現状確実に利用可能、かつ、最新版でのセットアップ方法です。 先ず、Windows PC(7以上)が必要です。 環境セットアップー1 Windows PCに以下のツール、SDKをインストールしてください。 Visual Studio 2013 有償版、もしくは、Visual Studio Community 2013 (無償版:Express Editionは不可)http://www.visualstudio.com/downloads/download-visual-studio-vs ※ インストール方法は、http://fnya.cocolog-nifty.com/blog/2014/11/visual-studio-v.html を参照の事 .NET Micro Framework SDKhttp://netmf.codeplex.com の”download”ボタンをクリックして、netmf-v4.3.2-SDK-QFE2-RTM.zipをダウンロード ZIPファイルを展開 MicroFrameworkSDK.msiを実行 netmfvs2013.vsix を実行 http://gadgeteer.codeplex.com/ の”downloads”ボタンをクリック.NET Gadgeteer Core をクリックし、”GadeteerCore.msi”をダウンロードし実行※PinKit(GR-PEACH+センサーボード)を使う場合は、3まで実施すればOK ※FEZ版IoT Kitを使用する場合:https://www.ghielectronics.com/support/netmf/sdk/24/netmf-and-gadgeteer-package-2014-r5  の”NETMF_and_Gadgeteer_Package_2014_R5.exe”をダウンロードし、実行。※GHI Electronics社へのユーザー登録必要 GHI社製の昔のセンサー等のモジュールを使う場合は、https://www.ghielectronics.com/docs/299/discontinued-gadgeteer-module-drivers のNETMF4.3の項目の右下の”Discontinued Gadgeteer Module SDK”をクリックし、ダウンロード&インストール 以上で、FEZ版IoT Kitハードウェアのソフトウェア開発環境のセットアップは完了です。 .NET Micro Framework SDKが正しくインストールされているか、http://nav.jp/ioyt/inst/MFInstallCheck.zip をダウンロード(ダウンロード後、ZIPファイルのプロパティを表示し、ブロックを解除してください)して展開し、中に入っているMFInstallCheck.slnファイルをVisual Studioで開きます。開始でエミュレーターが起動し、Hello Worldと表示されます。 環境セットアップ-2 それから、トレーニングではMicrosoft Azureを実際に使うので、http://azure.microsoft.com/ja-jp/ から、サブスクリプション契約をしてください。まずは右上の”無料評価版”からお申し込みください。MSDN SubscriptionやBiz…

3

Visual Studio 2013 で .NET Micro Framework、Gadgeteer開発

.NET Micro Framework、Gadgeteerを試してみたい。でも、Visual Studio 2012か…と、諦めていた方。SDK群がアップデートされ、ようやくVisual Studio 2013でも開発環境が構築できるようになりました。 まだまだベータ版なので、実際にやる場合には最新情報が無いか、確認してからお試しを。※この記事は2014/10/17現在の状況を基に書いています。 以下の手順で環境構築を行ってください。 1. .NET Micro FrameworkのSDKをインストール http://netmf.codeplex.com/ のページの右側の”download”ボタンをクリックして、”.NET Micro Framework V4.3 SDK-R2-Beta”をダウンロードします。ZIPファイルを解凍して、 MicroFrameworkSDK.msi を実行 netmfvs2013.vsixを実行 の順でインストールします。勿論、先にVS2013のインストールは必要なのでお忘れなく。Express Editionの場合は、Desktop向けのバージョンを使ってください。Express EditionはWeb版やStore Apps版ありますが、同時に複数インストール可能です。 さて次に、 2. .NET Gadgeteer CoreのSDKをインストール http://gadgeteer.codeplex.com のページの右側の”downloads”ボタンをクリックして、表示されたページの”.NET Gadgeteer Core 2.43.1000″をダウンロードします。ダウンロードしたGadgeteerCore.msiを実行して、インストールします。 次に、 3. 各社のGadgeteer SDKをインストール 私がよくデモで使っているGHI Electronics社製SDKの場合を紹介します。  http://www.ghielectronics.com/support/netmf/sdk/23/netmf-and-gadgeteer-package-2014-r4 からSDKをダウンロードします。ダウンロードした NETMF_and_Gadgeteer_Package_2014R4.exe を実行します。 表示された、ダイアログの下にある”Advanced”ボタンをクリックします。 表示されたチェックリスト(インストールされるSDKの選択)から、.NET Micro Framework SDK と .NET Gadgeteer Core のチェックを外します(ここが味噌)。OKをクリックしてインストール開始。…

0

FlashAir を.NET Gadgeteerで使ってみた

東芝が販売しているFlashAir(http://www.toshiba.co.jp/p-media/flashair/ )、.NET Gadgeteerから見れば、SDカードメモリそのものなので、各種センサーの値をSDメモリーカードに書き込んでいけば、FlashAirにWiFiでつながっているPCやスマートフォン、タブレットから、書き込んだ内容が見れるわけですね。逆にPC、スマートフォン、タブレットからWiFiを通じて、FlashAir側に命令などを書き込んだファイルをアップロードしてあげれば、.NET Gadgeteer側にデータを与えることが出来るってこと。 で、とりあえず、加速度センサーで計測した値をFlashAirを通じてPCに送るプログラムを試してみました。 回路図は、以下の通り。 この通りにボードを結線してSDカードリーダーにFlashAirを装着すれば準備完了。 Program.csの、ProgramクラスのProgramStartedメソッドを、以下のようなコードにして、         void ProgramStarted()        {            /*******************************************************************************************            Modules added in the Program.gadgeteer designer view are used by typing             their name followed by a period, e.g.  button.  or  camera.                        Many modules generate useful events. Type +=<tab><tab> to add a handler to an event, e.g.:                button.ButtonPressed +=<tab><tab>                        If…

0

.NET Gadgeteer Tips

.NET Micro Frameowkrk や .NET Gadgeteer対応ボードを実際に使ったハンズオン、頻繁にやっていますが、実施の際、色々とひっかかる点があります。読者の中にも、.NET Gadgeteerボードを購入して、さぁやろう!!と思ったら、「あれ、動かないんですけど…」と止まっている人も何人かいるかと思います。そういう場合は、GHI Electronics社の、Forumに問い合わせたりするのが手っ取り早いのですが、英語は敷居が高いなぁ…と云う方も多いでしょう? そんなわけで、GHI Electronics社製のFEZシリーズを使っているときに、よく見かける、引っ掛かりポイントと対処法をここにまとめておきます。 その1)ビルドの際、MMP : error MMP0000: 0x80131700 というエラーが発生。.NET Micro Frameworkのツールが、.NET Framework v3.5ベースで作られていて、開発環境PCに.NET Framework v3.5のランタイムがインストールされていない場合に発生します。http://netmf.codeplex.com/workitem/221 の、MetaDataProcessor.exe.config をダウンロードし、このファイル名で、以下のフォルダーに格納すれば解決します。 c:¥Program Files(x86)¥Microsoft .NET Micro Framework¥v4.2¥Tools その2)ボードをUSBで接続した状態で、F5、もしくは、デバッグ開始した際、Iteration 0、・・・と表示され、”Device not found or cannot be opend”になる。GadgeteerのSDKバージョンにもよるのですが、Visual Studioが正しくボードを認識していないケースがあります。ソリューションエクスプローラーで、プロジェクトを右クリックし、”プロパティ”を選択し、プロパティページで、”.NET Micro Framework”タブを選択します。 Transportを、一旦”USB”から”Emulator”に変更し、再度、”Emulator”から”USB”に変更します。念のため、Deviceもコンボボックスでボードを選択しなおします。これで大概、上手くいきます。二枚同時にボードをつなぐとうまくいかないので、そんな時は、開発用PCをボード数だけ用意してください。 その3)仮想マシンで動作している開発環境でボードが認識されない例えば、MAC OS上で、Windowsを仮想マシン上で動かし、Visual Studioで開発しているような場合です。仮想マシンの設定で、USBで接続されているボードを有効になるようUSBを設定してください。この環境でも、.NET Gadgeteerの開発は可能です。 その4)Visual StudioのインストールしたSDKが想定するボードのファームウェアと、ボードのファームウェアのバージョンが一致しない。デバッグ実行した時に、アプリをボードに配置する際、ボードのファームウェアのバージョンが古い、という、メッセージが、表示されることがあります。新しいSDKをインストールした時などです。そんな時は、 Windows 8以降検索チャームで、”FEZConfig”と入力し、このアプリを起動 Windows 7以前スタートボタンから、FEZConfigを起動 して、ボードをUSBで接続します。 右上のDeviceのコンボボックスからUSBを選択し、接続されているボードを選択します。後は、左側の”Firmware Updater”ボタンをクリックすれば、ボードのファームウェアがアップデートされます。 その5) ツールボックスに、SEEED社製の周辺ボードが表示されない。ずっと前から.NET…

0

GadgeteerとAzureで作る簡易温度計 – Part 2

さて、続き。 Part 1は、http://blogs.msdn.com/b/hirosho/archive/2014/07/25/gadgeteer-azure-part-1.aspx こちら。 Azure Mobile Serviceを作成 Gadgeteerのアプリ開発 Excel Power Queryで可視化 Excel Power Viewで分析 Azure Web Siteを作成 Azure Mobile Serviceを改造 – Web Siteへのデータ転送 Store アプリ開発 Azure Mobile Serviceを改造 – Push 通知の追加 の4番目は別の投稿でじっくり説明するとして、5から始めます。 5. Azure Web Siteを作成 ここでは、AzureのWeb Siteを使って、Mobile Serviceにアップロードされたデータを転送するためのWeb APIと、それをSignalRで通知するためのHubを作成します。 Visual Studio 2013を起動し、メニューの”ファイル”→”新規作成”→”プロジェクト”を選択して、Visual C#のWebカテゴリーのASP.NET Webアプリケーションテンプレートを使って、プロジェクトを作成します。MVCを選択し、Web APIにチェックを入れて作成します。 そのまま、Azure Web Site上に作れてしまうので、指示に従ってWebサイトをAzure Web Site上に作ってしまいます。 SignalRのハブを作成します。SignalRは、インターネット上で、計測した温度をStoreアプリに通知するために利用します。ソリューションエクスプローラーで、プロジェクトの”Models”フォルダーに”SensorReading.cs”という名前でクラスを追加します。これは、モバイルサービスからのデータ転送、SignalRによる同報通信の際にデータを格納する為のクラスです。以下のようにコーディングします。     public class SensorReading   …

0

2014/7/9-11の気圧を測ってみた

あ~、de:codeのデモの解説もしなきゃなぁ…と思いながらはや一か月半。そんな中、50年に一度の強力な台風が来るというので、.NET Gadgeteer+センサーで大気圧、温度、湿度を測ってみた。 システム構成は、de:codeデモ展示していた、 で、.NET Gadgeteerで計測したデータをAzure Mobile Serviceのテーブルに蓄積し、蓄積されたデータをExcelのPower Queryで取り出し、Power Viewでグラフ化。 実際のグラフアニメーションは、以下の通り。 https://youtu.be/oGDCmjgvx5s ちょっと解説を加えると、 縦軸は湿度、横軸が大気圧、円の大きさが温度というグラフです。時系列的にみると、台風が近づくと気圧がぐーっと下がり、台風が遠ざかると気圧が上がっていくという現象がばっちりとれたわけです。使っているセンサーは本物なので期待はあったのですが、これだけはっきり記録できるとは、と感銘。  

0

小型組込み機器を.NET Micro Frameworkで実開発するときのイメージ

1~2か月に一回ほど、OTCで、.NET Micro Frameworkに関するハンズオンセミナーを実施してます。そこで話している内容をちょっぴり紹介。 .NET Gadgeteerなどでプロトタイプを作っていろいろ試した後、実デバイス開発の流れは、以下の様になります。 アプリケーション開発は、.NET Micro FrameworkのAPI上で、Emulatorや.NET Gadgeteerボードで実行ロジック確認をしながら進めていくことができます。.NET Micro Frameworkは、ポーティング用にPAL(Platform Abstraction Layer)とHAL(Hardware Abstraction Layer)という層があるので、アプリケーション開発とハードウェア開発は基本、並行して進められます。ハードウェアが出来たら、.NET Micro Frameworkをポーティングします。この作業も、アプリケーション開発とは並行して進められます。アプリはアプリで、ハードウェアはハードウェアで、徹底的にモジュールテストが行えます。TFSのリモートテスト機能を使えば(実はここまだ検証していないので、多分出来るはずというレベルです。ごめんなさい)、自動テストに小型組込み機器のソフトウェアテストを組み込むことも可能です。(実時間制約やセンサーやモーター等ハードウェアに絡む部分は多分自動テストは無理ですが、アルゴリズムやロジックはテスト可能ですね) 出来上がった、アプリのソフトウェアは、Visual Studioで実行ターゲットを変えるだけでF5実行すれば(MFDeployを使ってアプリを配置するのが正当ですが)、実機で動き出すはず。後はシステムテストをすれば、OK。 .NET Gadgeteerを使っている方、Visual Studioのエディターで、ハードウェアの構成を定義できることはご存知ですよね。  CPUのメインボードと、周辺ボードのモジュールは、ツールボックスからドラッグ&ドロップできるわけですが、この仕組み、GHI Electronics社の専売特許と思っていませんか?独自に開発したCPUボード、モジュールも、この環境に組み込むことが出来るんです。 http://gadgeteer.codeplex.com/ から公開されているSDKをインストールすると、以下の3つのプロジェクトテンプレートがVisual Studioにインストールされます。 .NET Gadgeteer Mainboard .NET Gadgeteer Module .NET Gadgeteer Kit これを使うと、上から順番に、自前のCPUボード、自前の周辺ボード、ツールボックスの部品群とライブラリ一式、を作れます。つまり、GHI Electronics社が公開しているSDKのようなものを、各自のハードウェア構成でも作成可能ということです。この仕組みを使えば、単に、ソフトとハードの並行開発にとどまらず、 こんな感じで、各開発組織ごとの専用Gadgeteer SDKが出来上がる訳です。大抵の組込み機器は、大枠のアーキテクチャは決まっていて、製品構成オプションによるバリエーション開発というのが一般的?なので、規律ある製品開発活動を進めるのにこの仕組みはとても便利です。 さて、.NET Micro Frameworkを適用するのに具合の良い組込み機器の種類の一つとして、クラウド等ネットワークサービスと連携する機器があります。ネットワーク上のサービスへのアクセスは、プロトコルやセキュリティなどアクセスの仕方が規定されていて、組込み機器もその規定に従わないといけません。つまり、組込み機器側に、その規定に従うためのロジックが必要になる訳です。.NET Micro Frameworkの特徴を考えてみると、Managed APIの上に構築されたソフトウェアは、HWが変わっても、同じように動きますね。ならば、サービスベンダーがサービスに接続するための規定を満たす.NET Micro Frameworkで動作するライブラリを公開して、組込み機器側のアプリケーションがそのライブラリを使ってサービスにアクセスするようにしてもらえば、サービスベンダーは、組込み機器の内部事情をほとんど考慮せずに、組込み機器側に対する要件を提供することができるわけです。サービスベンダーが提供しなければならないのは、ライブラリと、Emulator上で動作するサンプルコードだけで十分です。 図にすると以下の様になります。 この構成、実は、スマートフォンアプリや、PC、タブレット向けには既によく見られる仕組みですよね。組込み機器も含めた仕組みが実現できます。.NET Micro Frameworkは既に、T-KernelやLinux上へのポーティング事例があるので、組込み機器側のPlatformが元々.NET Micro Frameworkベースでなくても、PICや16BitのCPUでない限り、この仕組みを活用することができるわけです。勿論、組込み機器開発側が、クラウドからのアクセス用に.NET Micro…

0