現時点の情報です。最新情報はM5StickC非公式日本語リファレンスを確認してみてください。
概要
半年ぶりにM5StickCのライブラリがアップデートしました。変更自体は結構前にはいっていたのですが、リリースだけが遅れていた感じです。
主な変更点
src/Fonts
フォントが微妙に変わっている場所がありました。ただし、それほど大きな差分はありません。TFT_eSPIのバージョンアップにともなう更新のようでした。
src/utility
TFT_eSPIのバージョンアップと、CommUtilクラスが追加されていました。TFT_eSPIが更新されたので、スクリプト周りが実用的に使えるようになったはずです。
CommUtilクラスはI2Cアクセスをラッピングするクラスでした。
src/AXP192
いろいろ関数が追加されています。
- begin()関数引数追加
- GetInputPowerStatus()関数追加
- GetBatteryChargingStatus()関数追加
- SetChargeCurrent(uint8_t)関数追加
- SetLDO3(bool State)関数追加
- SetAdcState(bool State)関数追加
- PowerOff()関数追加
- Read6BytesStorage(uint8_t *bufPtr)関数追加
- Write6BytesStorage(uint8_t *bufPtr)関数追加
begin()関数で、電源供給を初期化時にOFFにできるようになりました。デフォルトはいままでと同じ動きです。
充電管理と、電源OFFが増えたのが大きなところかな?
あと、6バイトの内蔵ストレージって使うの。。。?
src/IMU
getAres()関数がgResを取得していたのが修正されています。このバグ私のPRがまちがっていたんだな、、、
src/M5Display
いろいろ変わっていましたが、書式だけの変更かな? コードの中身は変わっていない感じでした。
src/M5StickC
CommUtilクラスを読み込むようになっており、M5.I2Cでアクセスできるようになりました。
void setup() { M5.begin(); Wire.begin(0, 26); }
上記みたいに、setup()関数でWireクラスを使うPINを指定して初期化しておきます。
M5.I2C.writeByte(BUGC_ADDR, pos, speed); M5.I2C.writeBytes(BUGC_ADDR, 0x00, (uint8_t *)speed_out, 4); M5.I2C.readByte(JOYC_ADDR, read_reg, &value); M5.I2C.readBytes(JOYC_ADDR, read_reg, 2, i2c_read_buff);
上記のようにI2Cアドレスとレジスタ、値などを指定して呼び出すことができます。
Wire.beginTransmission(address); Wire.write(reg); Wire.write(data); Wire.endTransmission();
従来は上記のように呼び出すか、各自でラッパークラスを作っていたと思います。どちらを使っても構わないと思います。
src/RTC
RTCのモード初期化が追加になっています。いままで間違って変更すると時計がおかしくなっていたのですが、モード初期化処理が追加されています。
examples/Basic/FactoryTest
新しいバージョンのファクトリーテストが入っています。FastLEDの追加ライブラリが必要になります。またサイズが大きいのでNo OTAなどに変更しないと実行できません。
examples/HAT
最近販売されて、追加されていなかったものが追加されました。この他いろいろコンパイルエラーが出ているものが変更されていますが、動きに変更はないはずです。
- BeetleC
- BUGC
- CardKB
- FINGER
- JoyC
- Joystick
- MLX90640
- PuppyC
- RoverC
- TOF
ちなみに、半年でこんなに増えています!
Doxygen
- https://lang-ship.com/reference/M5StickC/0.1.1/
- https://lang-ship.com/reference/M5StickC/0.2.0/
- https://lang-ship.com/reference/M5StickC/latest/
とりあえず更新しておきましたので、差分確認したいときには使ってみてください。
まとめ
結構細かいPR出したのですが、半年前なので忘れてしまっています。大きな動きは変わっていないはずなので、やっとちゃんと使えるようになったスクリプト周りを今後調べてみたいと思います。
コメント