STマイクロの無料IoT端末開発ボードでMicroPython

★この記事はMicroPython Advent Calendar 2018に参加しています。★

先日、とある無料セミナーでSTMicroの評価ボード(STM32L4 Discovery Kit IoT Node、型番:B-L475E-IOT01A)を頂きました。
なんと無料だったのですが、このボード、どうもいろいろなセミナーで無料で配布されているようで、クラウド事業者と連携したマーケティングキャンペーンなのかもしれません。

無料とはいえ、このボードはむちゃくちゃ豪華です。
サイズはArduino UNOとあまり変わらないのですが、8種のセンサにWiFi、Bluetooth、LPWA、NFCといった通信機能もてんこ盛りになっています。

以下はマニュアル(UM2153)に載っている図です。

ホビイストが使いこなすには辛いほど、パーツが載っています。
ですが、そういうときこそMicroPythonが役に立ちます。
C言語でセンサからデータを取得していてはプログラミングもデバッグも大変そうですが、MicroPythonなら試行錯誤しながら進めることができます。

幸いなことに、MicroPythonは既にこのボードに対応済みでした。
そして、このボードはMbed対応でしたので、昨日の記事のとおり、ファームウェアをドラッグ&ドロップすればインストール完了です。

というわけで昨日の記事で紹介したダウンロードページに、このボード用のファームウェアを追加しました。
昨日の記事同様、binファイルのドラッグ&ドロップでMicroPythonのインストールが完了します。

Lチカも昨日の記事のスクリプトがそのまま動作します。
このボードのLEDは、MicroUSBの左(上の図で)に2つあります。(LED(1)とLED(2)が使えます。)

マニュアルより、このボードのブロック図を以下に示します。

これを見ると、各種センサ(図の右側)は、I2C2に接続されていることが判ります。
MicroPythonからI2C2に接続されているデバイスをスキャンしてみます。

7つのデバイスが接続されています。数字はデバイスのアドレスですが、アドレスとデバイスの種別は割と強く紐づいているので、デバイスの種類をアドレスから推定することができます。
検索して調べてみると、それぞれ以下のデバイスのアドレスと思われます。

‘0x1e’=LIS3MDL(3軸地磁気センサ)
‘0x29’=VL53L0x(距離センサ)
‘0x2d’=STSAFE-A100(セキュアエレメントチップ)
‘0x56’=M24SR(NFCモジュール)
‘0x5d’=LPS22HB(気圧センサ)
‘0x5f’=HTS221(温度・湿度センサ)
‘0x6a’=LSM6DSL(3軸加速度+3軸ジャイロセンサ)

検索していたら、HTS221のMicroPython用ドライバが見つかったので、試してみました。

STM32_Platform/hts221.py at master · JUMA-IO/STM32_Platform

上のスクリプトをコピーし、CTRL-Eでペーストモードに入ってペーストします。
そして、以下のように入力すると温度と湿度が得られました。

コメント