こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
ついにラズパイでも豊富なセンサモジュールシリーズ「Clickボード」が使えるようになった!ラズパイ用Clickインタフェースボード登場。Clickボードの豊富なセンサー群を手軽に使えるようになった!
「Clickボード」とはMikroElektronika社が提供するセンサ・アクチュエータモジュール製品のシリーズ名だ。同社が規格・公開した拡張モジュールインタフェース規格「mikroBUS™」に準拠しており、mikroBUS 対応のプラットフォームに簡単に接続して使うようデザインされている。mikroBUSはソケットのピン配置、シルクスクリーン、ボードサイズ、レイアウト、など拡張ボードの仕様が規定されており、ピンに仕様は以下のとおりとなっている。
- アナログ I/O
- リセット
- SPI
- Vcc @ 3.3v
- Ground
- PWM output
- ハードウェア割り込み
- UART TX/RX
- I2C
- Vcc @ + 5V
つまり、microBUS™は様々な拡張機能を簡単にアドオンできるインタフェース規格と言え、これに対応したセンサー、ワイヤレスモジュール、モータードライバーなどの多様なモジュールがリリースされている。
様々なClickボード (Image source: mikroe.com)
これらClickボードは、これまではArduino、BeagleBone、ラズパイ(1,2) 向けにシールドと言われるインタフェースボードを介して使われていたが、このたびついにラズパイ3用のPiクリックシールド (896-8660) がリリースされた。
Pi 3 Clickシールド
ラズパイ用のClickシールド、すでに以前からRaspberry Pi 1とPi 2でも販売していた。しかしご存知の通り、Pi3からコネクタが40ピンとなってそれに対応したこのPi3 Clickシールドがリリースされるに至ったのだ。しかも従来品ではアナログ用とデジタル用と別々のソケットになっていたが、今回の新製品 Pi 3 ClickシールドはデュアルADCを内蔵しているため、アナログもしくはデジタルインタフェースを2つ利用できるのだ。
さらに、今回の新 ClickシールドはRaspberry Pi 3 Model Bに加えて、2 B、1 A+、およびB +互換性がある。Clickボードの使用以外にも、単に1~2つのADC入力追加としても使える。
提供サンプル
MikroElektronika社はLibStockウェブサイトにてClickボードのサンプルを公開している。しかし、それらはC/C++でコーディングされたマイクロコントローラプラットフォーム向けだ。Raspberry Piで記述するために適した言語のひとつは、教育目的でも使用されるPythonだろう。そこでMikroElektronika社は7つのシールドで利用可能なボードに向けた、Pythonでコーディングしたデモを用意した。このデモはLibStockやGitHubで入手することができる。デモは以下の7つのボードに向けたものだ。
- 8x8 Click (923-5974)
- Accelerometer Click (882-8900)
- Colour Click (923-5999)
- LoRa Click (136-0767)
- Relay Click (820-9858)
- Signal Relay Click (136-0802)
- Weather Click (912-5170)
また、LibStockサイトからダウンロードしたZIPファイルにはボード上のADCを読むためのデモも含まれている。恐らくGitHubで公開されているデモについても同様のことが可能だろう。
HTU21D Clickを用いたテスト
今回、シールドをテストするにあたり、ボードにはHTU21D Click (862-4828) を選択した。このHTU21Dは湿度と気温を正確に計測することができるセンサを搭載しており、以前Internet Connected Greenhouseというプロジェクトで利用していたものだ。ハードウェアとボードを接続できたら、次はGreenhouse projectレポジトリからファイルをクローンする。
$ git clone https://github.com/DesignSparkrs/connected-greenhouse.git
Connected Greenhouseプロジェクトでは、読み取りセンサ、アクチュエータとしてIntel Edisonを利用していた。また、その他にも、コントロールパネルのスイッチや状態を示すライトの制御にも利用した。それらは全てMQTTとNode-REDを利用して統合されており、制御システムのPythonスクリプトであるsensors-mqtt-pubはHTU21Dボードやそのセンサなどを利用するのに丁度良いものなのだ。
まず、私達が変更しなければならなかったのは、I2CをEdisonで利用されている6つのバスから1つに設定することだった。GPIO、MQTT、およびSMBUSライブラリのインポートについては必要がなかったため、ここでは紹介していない。これによりセンサ、MQTT、稼働状態を示すLEDの操作についてもここでは省略している。
以上を踏まえて、利用したスクリプトは以下である。
#!/usr/bin/python
# -*- encoding: utf-8 -*-
import sys
import time
import htu21d
# I2C bus, sensors and config, LED
bus = 1
temphum = htu21d.Htu21d(bus)
temphum.use_temperature = True
# Main loop
while True:
try:
temperature = round(temphum.temperature, 2)
humidity = round(temphum.humidity, 2)
except (KeyboardInterrupt, SystemExit):
raise
except:
temperature = humidity = 0.00
print "Failed to read HTU21D"
print temperature, humidity
time.sleep(1)
上に示したPythonスクリプトを実行すると、以下のように気温(摂氏)と湿度がターミナルに表示されるはずだ。
最後に
Clickシールドは、ArduinoやBeagleBoneといった異なるプラットフォームのサポートも可能にする。今回、少しの変更を加えただけでで、以前に異なるプロジェクトで利用していたClickボードが再利用できたことからも理解していただけただろう。