テキスト ボックス: VBで開発するIoTの世界

 

 

 

       使い慣れたVBMicrosoft Visual Basic)を使ってIoTのシステム構築を目指したページです。

 

      Raspberry Pi3に12種類のセンサーをつけても、8万円台でソフト、ハードの準備できます。

      その、活用方法は、あなたのアイデア次第!! 画期的なIoTシステムが構築できます。

 

ホントに?8万円で揃うの?? ・・・・・・・・・> 試算結果はこちら

 

I2C仕様のセンサー・デバイスは、携帯電話、タブレットPC、カーナビ、テレビやオーディオ機器、空気清浄器から

お掃除ロボットまで一般家電品に数多く利用されているセンサーや制御用のICです。

量産品でもあり、センサーの価格が数百円~数千円と非常に安価でIoTを実現できます。

産業用の様に±0.1%等の高精度を望まない場合には、十分活用できます。

 

      当社では、世界で1000万台を超える出荷台数を誇る、カードサイズのシングルボードコンピュータRaspberry Pi

Windows10を載せ、業務アプリ開発で多用されているVBI2Cインターフェースを持つセンサーを接続する為の

ドライバーソフトI2Cインターフェース・ドライバー」を開発し、VBが解れば誰でも簡単にセンサーベース

IoTシステムの開発を可能としました。 是非、ご一読頂き、業務アプリ開発からIoTシステム開発への

第一歩として、ご活用下さい。

 

テキスト ボックス:

 

 

 

 

 

 

 

 

 

 

 

 

                 

               ※VisualStudio2015から.NETベースとUWPベースを区分している様子です。

            Windows10IoTUWPベースで動かすので正確にはVB.NET言わないみたいなのでVBにしてます。  

 

 

テキスト ボックス:             ・いろんなセンサーをつないで!!

            ・使い慣れたWindows10を使って!!

            VBで開発して!!  

    ・設定はプロパティの読み書きだけで!!

            ・配線はコネクタに差し込むだけ!!

 

      「IoTって、シングルボードコンピュータにLinuxArduinoなんかを使ってC言語でガリガリ開発するもの?」

       と考えがちですが、ここでは、Raspberry Pi3Windows 10 IoT-Coreを載せてVBでセンサーからデータ

       を収集するIoTシステムを構築します。

 

       VBC#等でI2C仕様のセンサーとの通信をプロパティへの設定、読み出しだけでI2Cデバイスを扱う為

APIが「I2Cインターフェース・ドライバー」です。

 

       IoTのキーコンポーネントのセンサーには、I2C規格のセンサーを利用し、電源2本と通信線2本の4本を接続すれば

       計測や制御が可能です。接続には高度な電気電子の知識を必要としません。4本の線を接続するだけです。

 

       しかし、I2Cセンサーを活用する為には、センサーのレジスタに測定条件等を設定しなければ成りません。

この複数ある8bitのレジスタは、更に細分化され、複数の条件の組み合わせで8bitを構成しています。

これでは、使いづらくて仕方が有りません。

 

I2Cセンサー・ドライバーでは、細分化されたレジスタを、個々のプロパティとし独立させたAPIです。

これによりbit演算、論理演算が不要でVBC#等でも簡単に扱う事が可能と成りました

 

 

   I2Cセンサードライバーって??? どんなイメージで使うの???

 

I2Cデバイスの条件設定の一例です。1byeの中が、Sleepモード設定、MAX_MINの保持設定、Filter設定、サンプリング速度設定の4項目の設定で成り立っています。一箇所の変更でも1byteに再構成して1Byte単位で書き込みが必要です。

この表の場合、11001011の設定で&HCBです。スリープモードをOFFにした時は01001011&H4Bです。

フィルタを2Khzにしたい時は?・・・4bitが1で3bit0・・なので01011011・・・&H???・・なりませんか?

テスト途中に、01011011だから・・・あれ!1bitズレてた!!なんて経験ありませんか?

I2Cセンサードライバーでは、一つの機能単位に全てプロパティ化しています。

 

テキスト ボックス:

 

 

 

 

Sleep

プロパティ

MAX_MIN

プロパティ

Filter

プロパティ

Sampling

プロパティ

Sleep=1

MAX_MIN=2

Filter=1

Sampling=3

 

一度、過去の設定をReadメソッドで読み出して、変更したい箇所のみプロパティ値を変更し、Writeメソッドで書き込めばOKです。

設定値は、10進数でOK!です。もう、01011011・・・の世界から解放されます。 

 

次は、レジスタの読出し例です。

image006

 

温度、湿度、気圧センサーの読出しレジスタ構成です。温度のデータが0XFA0XFBOXFC3個のレジスタに入っている24bit

データです。Xlsbの下位4bitにはデータが有りませんから切り落としが必要です。その上にlsbmsbのデータを並べて、20bit

10進変換しなければ成りません。さて、どうしますか?、I2Cセンサー・ドライバーは、一つのtempのプロパティに処理済みの値がセットされて来ます。

さらに、このセンサーの補正演算終了後の結果が返って来ます。

 

これ以外に、I2Cの通信ポート初期化のINIT、書き込みのwrite、読み出しのread等のメソッドを呼ぶだけでI2C通信が可能です。

 

なんだ!、と思われる方は、読み飛ばして下さい。1011010100・・・から解放されたい方、ビットシフトってVBで出来るの?

I2C通信ってどうやるの? と思う方、是非、このページを、ご覧ください。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

VisualStudio2015では、.NETベースの開発とUWPベースの環境があり、Windows10IoTUWPベースの開発と成ります。

Webページ中に、VB.NETとの表記がある場合は、.NETベースでは無くUWPベースとお読み代え下さい。