★この記事は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でペーストモードに入ってペーストします。
そして、以下のように入力すると温度と湿度が得られました。
コメント