impExplorer Developer Kitを使ってみました! ~ その3 ~

投稿者:

こんにちは、岸田です。

前回2回に渡って、impExplorer Developer Kitセットアップ簡単なアプリケーションの作成紹介をしました。今回は、基板にセンサを外付けして利用してみようと思います。

impExplorer Developer Kitには、Groveコネクタがアナログ・デジタルが2つ、I2C用が2つの計4つついています。Groveコネクタで使用しているピンの番号はコネクタ付近に印刷されています。ピン設定で使うのでよく覚えておきましょう。また、3.3Vしか電源として利用できない点は注意してください。更にいうと、シルクが3V3G となっているピンはhardware.pinH.configure(DIGITAL_OUT, 1); とやることで初めて有効になる(3.3Vが供給される)点にも注意しましょう。

■アナログ・デジタルのGroveを使ってみる

さて、外付けするGroveセンサですが、お手軽なものとしてまずはPIRモーションセンサーを選んでみました。検出範囲で人の動きなどが検知されるとピンがHIGHになるというシンプルなものです。まずは、このセンサを外付けして、ピンの変化をトリガーにして動作するプログラムを作成してみます。以下のコードをDeviceの方に書き込んでみましょう。

#require "WS2812.class.nut:3.0.0"
// Set up global variables
spi <- null;
led <- null;
state <- false;
pir <- null;

// Define the loop flash function
function flash() {
    server.log("PIR pin change detected");
    state = pir.read();
    local color = state ? [0,0,255] : [0,0,0];
    led.set(0, color).draw();
}

// Set up the SPI bus the RGB LED connects to
spi = hardware.spiAHSR;
spi.configure(MSB_FIRST, 6000);

// Set up the RGB LED
led = WS2812(spi, 1);

// supply 3.3V to ColorLED, Grove A/D 
hardware.pinH.configure(DIGITAL_OUT, 1);

// Set up the Grove A/D for PIR
pir = hardware.pinC;
pir.configure(DIGITAL_IN, flash);

PIRは、今回はGroveコネクタのpinC、pinBを利用する方に刺しています。

このコードは、PIRで動作検出がされたらLEDが光り、Device LogにPIR pin change detected と表示されるものです。仕組みもシンプルで、pir.confire(DIGITAL_IN, flash); としているところで、第二引数としてピンの変化をトリガに走るコールバック関数にflash() を登録しているだけです。実は、前回の記事でも同じようにセンサの割り込みピンの変化割り込みを利用していたりします。

■I2C接続のGroveを使ってみる

もうひとつ、I2Cを使ったセンサーも試して見ましょう。I2Cで通信できるGroveシリーズのセンサーとして光センサを使うことにしました。。載っているセンサはTSl2561で、I2Cアドレスは0x29 になっています。ちょうど、electric impのDeveloper GuidesにあるI2Cに関しての説明が、TSL2561を使ったものなので、これを流用します。同ページにあるi2c_example.device.nutをDeviceに、i2c_example.agent.nutをAgent側に書き込んでみましょう。修正箇所は、Device側のコードの132行目をi2c <- hardware.i2cQP; とするところ、129行目をi2cAddr <- TSL2561_ADDR_LOW << 1; とするところです。

両方書き込めたら、AgentのURLにアクセスしてみてください。アクセスすると、AgentからDeviceに命令が飛び、IDEにはDeviceから取得された値がログに出てくるはずです。

IDEのログに取得された光量が出ています。

先のPIRとあわせて、人の動きがあったら光量をTwitterに投稿などもできそうです。

 ■振り返り

というわけで、3回を通してimpExplorer Developer Kitを触ってみたところをお届けしましたが、いかがでしょうか。筆者の個人的な所感としては、普通にArduinoを使うのとは全く異なる環境(IDE、言語、思想)での開発で少し戸惑うところこそありましたが、クラウドとの連携が強いこの製品は独自の強みがあると感じました。今回はTwitterとの連携のみでしたが、他のクラウドサービスとの連携もぜひ試してみたいところです。今まで電子工作をやっていたけどお手軽にクラウドサービスと接続したいな、という人や、今までクラウドの中で色々やってきたけどお手軽にハードウェアも増やしたいな、という人はぜひ試してみてください。

impExplorer Developer Kitは+Styleから発売中です。

第1回 セットアップとLチカ: impExplorer Developer Kitを使ってみました! ~ その1 ~

第2回 Twitterとの連携: impExplorer Developer Kitを使ってみました! ~ その2 ~