2018年11月10日土曜日

M5stack GrayでMLX90640(サーマルカメラ)のサンプルプログラムを動かす。

MLX90640(M5Stak用ミニサーマルカメラユニット)M5Stack Grayを使うための手順をまとめました。

販売元のwebには、
M5BurnerでM5GO / M5Stack FIREにファームウェアを書き込むとモジュールが動作可能となり、Arduino IDEでプログラムできるようになります。」

とあり、M5Burner付属のM5GO, M5Stack FIREのfirmwareを書き込み、arduino sample programを書き込み試してみましたが、i2c driverで "nat ack read"が出て動きませんでした。
ここまではarduinoIDEのボード選択は"M5Stack-Core-ESP32"

この後で、arduinoIDE Borads Managerで、"M5Stack-FIRE"のボードデータがあったのでこれに入れ替えて、再度上記のM5Burnerでのfirmwareを書き込んでやっていましたが駄目でした。

(M5BurnerでのfirmwareとarduinoIDEのボード選択の違いは理解していません)

販売元のwebには、
「・・・M5BurnerでM5GO / M5Stack FIREにファームウェアを書き込むとモジュールが動作可能・・・」
の意味ですが、新しいfirmwareでは Wire.endTransmission()の戻り値が拡張されており、既存のfirmwareではエラーになることの対応です。

ですが、上記の動作確認では対応できませんでした。

M5Stack Grayでは、Wire.endTransmission()の戻り値の判定を旧のものにあわせれば動くようになります。

MLX90640_I2C_Driver.cpp 

42行目
if (Wire.endTransmission(false) != 7) //Do not release bus
if (Wire.endTransmission(false) != 0) //Do not release bus

にするとエラーが出なくなります。


あと、M5StackのLCD表示が無駄に回転しているようなので、
MLX90640.cpp 119行目(setup()内)
M5.Lcd.setRotation(1);
をコメントアウトします。

これで、firmwareを入れ替えなくても、M5Stack Grayで動くようになります。


備考:
M5Stack にはBasic, Gray, FIRE, GO がありますが、この違いがよくわかりません。

M5Burnerでfiwmwareを書き込めますが、これにはBasci, Gray名義のfirmwareがないので、どれを選択すべきか変わりません。

arduinoIDEのボード選択と、M5Burnerのfirmwareの関係が分かりません。

M5BUrenerには"UNIT_THERMAL_V0.1"というfirmwareがあります。これを書き込むとサンプルプログラムなしでサーマルカメラの動作確認ができます。


0 件のコメント:

コメントを投稿