ようやくHummingBoard-Gate が入荷してmikroBUSが使えるとのことで早々に試してみた。すでに入荷済みだったHummingBoard-Edgeでも基板にはmikroBUSのパターンがある。Edgeでは表面にM2 (mSATA)が配置されている都合上、基板のパターン上にはmikroBUSのコネクタは実装されていないので、扱いとしてはmikroBUS非サポートとなっている。実際、動作的にはどちらのボードでも同じであった。すなわち、違いはコネクタの実装があるかどうかだけ、ということである。(Edgeでも自分でコネクタを実装すればM2は犠牲となるがGateと同等となる) なお、EdgeボードはM2やmPCIe,LVDS, Irレシーバ, eMMC, アナログオーディオなどのサーバーとしての拡張性がGateボードと異なる。
[software]
ソフトウェアであるが、まず最初に、従来のHummingBoardでGPIOやI2Cを操作するのにお世話になったDebian(現在Armbianと名前を変更(http://www.armbian.com/cubox-i/))であるが、このイメージはEdge/Gate共に動作しない。SolidRun社サイトのsolid-build (https://www.solid-build.xyz/) からダウンロードしてくるオフィシャルのDebianを使うことになる。Armbianもすぐに対応してくるとは思われる。
ちなみに、AndroidKitkatも問題なく動作する。ただし、Android環境からGPIO, I2C, SPIなどを使用することは困難である。root権限が必要なこと、アプリから使えるようなAPIやツールが無いためである。
[ClickBoard]
さて、今回レビューしていきたいのはMikroBUS対応とクリックボードについてである。まずクリックボードのメーカーはmikroelekronika(http://www.mikroe.com/)である。セルビア南部のBelgradeというところに本社を持つ。日本の販売サイトはマイクロテクニカ(http://www.microtechnica-shop.jp/)となっている。ただし、現時点(2015.12)では数種類しかオンラインショップにおいていない。150種類ほどにもなる中から欲しいボードを選ぶには、事実上は本社サイトへ発注しなくてはならない。本社サイトでは、目的に応じて数種類のクリックボードを合わせてまとめたものを売っているので趣味で試すにも都合いい。
mikroelekronikaサイトでは、一見わかりずらいが、「mikroelekronikaオフィシャル」の開発用ボードが数種類販売されており、そのボード用にすぐにコンパイルして実行できる環境がサポートされている。言語もC,basic,pascalの3種がサポートされている。生成コードが小さいものに限られるのだが、一応お試しができる。Windows用のツールとなっていて、IDEとしてのまとまりはよいように見える。RFIDのような複雑なソフトなどは容量制限にかかって利用できない。$300ほどの有料版が必要となる。
例えばCの環境であるmikroC PRO for ARM®を試してみた。ビルド時にボードを選択することになる。CPU毎に細かく設定があるので、おそらくビルドしたコードが得られたとしてもiMx6上では動作しないだろう。大体が出力されたのはHexコードであった。
となると、クリックボードを何で動作させるといいのか、ということになる。各クリックボードのページにリンクが貼られたサンプルコードを参考に自分で作るしかない。
実際にはMikroBUSといってもその信号自体はGPIO/I2C/SPIのピンである。従ってそれに対応したソフトを作ればいいということになる。
そこで、以前GPIOの動作を確認するのに使ったwireringXで試すことができる。最初に試した時にはPythonがうまくインストールできなかったが、今回は上手くいった。
(https://github.com/wiringX/wiringX/tree/master/python)
(apt-get install python2.7-dev をしてからpython setup.py installを実行するとエラーがおきなかった)
wiringXでは以下のようなAPIがサポートされているのでこれが現時点で一番有用なツールとなるだろう。実際の検証のためにクリックボードを4種ほど購入してみた。これをすぐに動作させてみたかたのだが、クリックボード添付のツールですぐに動作させられなかったので、サンプルコードを参照してwiringXベースでPythonに直していくのが近道でしょう。今回は、取り急ぎここまででレポートさせていただいた。
IoTの重要な要素、センサーデバイスとクラウドについて、今後さらに検証を深めていく予定でいます。
wiringXSetup
pinMode
digitalWrite
digitalRead
wiringXAnalogRead
delayMicroseconds
waitForInterrupt
wiringXISR
wiringXValidGPIO
wiringXI2CSetup
wiringXI2CRead
wiringXI2CReadReg8
wiringXI2CReadReg16
wiringXI2CWrite
wiringXI2CWriteReg8
wiringXI2CWriteReg16
wiringXI2CWriteReg16
wiringXSPISetup
wiringXSPIDataRW
wiringXSPIGetFd
wiringXSerialOpen
wiringXSerialFlush
wiringXSerialClose
wiringXSerialPutChar
wiringXSerialPuts
wiringXSerialPrintf
wiringXSerialDataAvail
wiringXSerialGetChar
wiringXPWMEnable(only for Radxa)
wiringXSetPWM(only for Radxa)
コメントをお書きください