DesignSpark Electrical Logolinkedin
Menu 検索
フォーラムで質問

ラズパイ3に無限の拡張性を! Clickシールド レビュー

ついにラズパイでも豊富なセンサモジュールシリーズ「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でコーディングしたデモを用意した。このデモはLibStockGitHubで入手することができる。デモは以下の7つのボードに向けたものだ。

また、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ボードが再利用できたことからも理解していただけただろう。

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.

24 Oct 2017, 9:32