Explorer Hatを使ってみる その1

ずっと前に買って放っておいたExplorer Hatをいじってみました。

1. 概要

かつては、Explorer Hat (ノーマル版)と Explorer Hat Proがありましたが、今はProしか無いみたいです。私が買ったのはノーマル版です。

ノーマルとProの違いは…

ノーマル版

  • 5V入力可能な入力ポートx4
  • 出力ポートx4
  • タッチパッドx8
  • LEDx4
  • ブレッドボード

 

Proは次の機能が追加されています。

  • アナログ入力x4
  • Hブリッジx2

装着はラズパイのGPIOヘッダにザクッと差し込むだけ。全GPIOピンが物理的にふさがってしまうため、Explorer Hatを装着したときに使用できるのはHat上のIOのみです。

 

2. インストール

Explorer Hatの制御はPythonで行います。
まず、Explorer Hat用パッケージexplorerhatをpipでインストールします。

 

3. 設定

Explorler Hat はI2Cを使うため、raspi-configでI2Cを有効にします。

raspi-configの起動

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-20-22-31-50

 

「7 Advanced Options」 > 「A7 I2C」を選択します。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-20-22-32-19

 

<はい>を選択します。その後、raspi-configを終了します。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-20-22-34-07

 

4. サンプルスクリプト

オフィシャルサイトのリファレンスを読めば、Explorer Hatの使い方が身につきます。
早速、次のサンプルスクリプトsample.pyを作成して、Explorer Hatを動かしてみました。

sample.py

 

実行結果

まずは、無限ループの所までの実行結果です。

 

最終的にHat上の全LED(青、黄、赤、緑)が点灯しました。また、分かりにくいですが、出力ポート1に接続したLED(青ブレッドボート上の黄LED)も点灯しています。動作は良好です。

img_5497

 

続いて、タッチパッドに触れたり離したりしてみます。
触ったときのイベント、離したときのイベントに対する動作もバッチリです。

 

Ctrl+Cを押下し、無限ループを抜けてサンプルスクリプトを終了します。

 

img_5498

全LEDが消えてしまった…。
Explorer Hatは、Pythonスクリプトでimport したときに動作を開始し、Pythonスクリプトが終了すると初期化されるみたい。そのためLEDが消え、出力ポートがオフになるようです。したがって、LEDや出力ポートの状態を保持するためには、Pythonスクリプトを動かし続ける必要があります。サンプルスクリプト中に無限ループを置いていたのはそのためです。

 

5. 予告

Explorer Hatは、Pythonでしか制御出来ない上に、出力(LEDと出力ポート)を保持するためにはPythonスクリプトを常駐させる必要があります。ちょっと使いにくいです。

常駐させる必要があるならば、いっそのことExplorer Hatを制御するPythonスクリプトをデーモン化したいと思います。さらに、デーモンを介してHatのI/Oを制御するCUIコマンド群を作成しようと思います。自由度が上がりますので。

続きを書きました→Explorer Hatを使ってみる その2