使い慣れたVB(Microsoft Visual Basic)を使ってIoTのシステム構築を目指したページです。
Raspberry Pi3に12種類のセンサーをつけても、8万円台でソフト、ハードの準備できます。
その、活用方法は、あなたのアイデア次第!! 画期的なIoTシステムが構築できます。
ホントに?8万円で揃うの?? ・・・・・・・・・> 試算結果はこちら
I2C仕様のセンサー・デバイスは、携帯電話、タブレットPC、カーナビ、テレビやオーディオ機器、空気清浄器から
お掃除ロボットまで一般家電品に数多く利用されているセンサーや制御用のICです。
量産品でもあり、センサーの価格が数百円~数千円と非常に安価でIoTを実現できます。
産業用の様に±0.1%等の高精度を望まない場合には、十分活用できます。
当社では、世界で1000万台を超える出荷台数を誇る、カードサイズのシングルボードコンピュータRaspberry Piに
Windows10を載せ、業務アプリ開発で多用されているVBでI2Cインターフェースを持つセンサーを接続する為の
ドライバーソフト「I2Cインターフェース・ドライバー」を開発し、VBが解れば誰でも簡単にセンサーベース
のIoTシステムの開発を可能としました。 是非、ご一読頂き、業務アプリ開発からIoTシステム開発への
第一歩として、ご活用下さい。
※VisualStudio2015から.NETベースとUWPベースを区分している様子です。
Windows10IoTはUWPベースで動かすので正確にはVB.NET言わないみたいなのでVBにしてます。
・いろんなセンサーをつないで!!
・使い慣れたWindows10を使って!!
・VBで開発して!!
・設定はプロパティの読み書きだけで!!
・配線はコネクタに差し込むだけ!!
「IoTって、シングルボードコンピュータにLinuxやArduinoなんかを使ってC言語でガリガリ開発するもの?」
と考えがちですが、ここでは、Raspberry Pi3にWindows 10 IoT-Coreを載せてVBでセンサーからデータ
を収集するIoTシステムを構築します。
VBやC#等でI2C仕様のセンサーとの通信をプロパティへの設定、読み出しだけでI2Cデバイスを扱う為
のAPIが「I2Cインターフェース・ドライバー」です。
IoTのキーコンポーネントのセンサーには、I2C規格のセンサーを利用し、電源2本と通信線2本の4本を接続すれば
計測や制御が可能です。接続には高度な電気電子の知識を必要としません。4本の線を接続するだけです。
しかし、I2Cセンサーを活用する為には、センサーのレジスタに測定条件等を設定しなければ成りません。
この複数ある8bitのレジスタは、更に細分化され、複数の条件の組み合わせで8bitを構成しています。
これでは、使いづらくて仕方が有りません。
I2Cセンサー・ドライバーでは、細分化されたレジスタを、個々のプロパティとし独立させたAPIです。
これによりbit演算、論理演算が不要でVBやC#等でも簡単に扱う事が可能と成りました
I2Cセンサードライバーって??? どんなイメージで使うの???
I2Cデバイスの条件設定の一例です。1byeの中が、Sleepモード設定、MAX_MINの保持設定、Filter設定、サンプリング速度設定の4項目の設定で成り立っています。一箇所の変更でも1byteに再構成して1Byte単位で書き込みが必要です。 この表の場合、11001011の設定で&HCBです。スリープモードをOFFにした時は01001011で&H4Bです。 フィルタを2Khzにしたい時は?・・・4bitが1で3bitが0・・なので01011011・・・&H???・・なりませんか? テスト途中に、01011011だから・・・あれ!1bitズレてた!!なんて経験ありませんか? I2Cセンサードライバーでは、一つの機能単位に全てプロパティ化しています。
一度、過去の設定をReadメソッドで読み出して、変更したい箇所のみプロパティ値を変更し、Writeメソッドで書き込めばOKです。 設定値は、10進数でOK!です。もう、01011011・・・の世界から解放されます。
次は、レジスタの読出し例です。
温度、湿度、気圧センサーの読出しレジスタ構成です。温度のデータが0XFA、0XFB、OXFCの3個のレジスタに入っている24bitの データです。Xlsbの下位4bitにはデータが有りませんから切り落としが必要です。その上にlsbとmsbのデータを並べて、20bitを 10進変換しなければ成りません。さて、どうしますか?、I2Cセンサー・ドライバーは、一つのtempのプロパティに処理済みの値がセットされて来ます。 さらに、このセンサーの補正演算終了後の結果が返って来ます。
これ以外に、I2Cの通信ポート初期化のINIT、書き込みのwrite、読み出しのread等のメソッドを呼ぶだけでI2C通信が可能です。
なんだ!、と思われる方は、読み飛ばして下さい。1011010100・・・から解放されたい方、ビットシフトってVBで出来るの? I2C通信ってどうやるの? と思う方、是非、このページを、ご覧ください。
|
※VisualStudio2015では、.NETベースの開発とUWPベースの環境があり、Windows10IoTはUWPベースの開発と成ります。
Webページ中に、VB.NETとの表記がある場合は、.NETベースでは無くUWPベースとお読み代え下さい。