今回もMicroPythonを使って、死蔵していたモジュールの蔵出しです。
割と最近購入して、まだ試していなかったレーザー距離センサです。
VL53L0X使用 レーザー測距センサモジュール(ToF): センサ一般 秋月電子通商-電子部品・ネット通販
最大2m測定できるとありますが、実感としては1m程度までが実用範囲の印象です。
結線は3.3V、GND、SCL、SDAの4本です。このほか、XSHUTとGPIO1という端子がありますが、何も接続しなくても動作します。
MicroPythonでのドライバは以下のものが修正無しで使えました。
thesheep / micropython-vl53l0x — Bitbucket
使い方は以下のような感じです。
>>> from machine import I2C >>> i2c=I2C(1) >>> i2c.scan() [41] >>> vl=VL53L0X(i2c) >>> vl.init() >>> vl.read() 259 >>> vl.start() >>> vl.read() 271 >>> vl.stop
写真はOLEDが二つありますが、今回は測定結果を右のOLEDに表示させています。
二つあるのは、この直前に行っていた実験の名残りです。
ちなみに右はI2C、左はSPI接続のSSD1306で、この2つのスピード比較を以下の記事のサンプルで試していました。
このサンプルはアニメーションなのでかなり転送量が多く、バスのスピード差が効いてきます。
micropythonでOLED (SSD1306) I2C編 – Qiita
結果としてはSPIが圧倒的に早く、I2Cは規格外の2MHzまでクロックを上げるとようやく対抗できる感じでした。
128×64という低解像度とはいえ、I2CのOLEDはアニメーションやゲームなどにはあまり向いていないという結論です。
コメント