Mongoose OS(その3)

諦めきれずに、もうちょっとMongoose OSのこと。

同じように、Mongoose OSでのI2Cについて書いてる人発見。
 http://www.chaoticfocus.net/posts/2017/09/esp8266-using-i2c-with-mongoose-os/
最終的にはやりたいことが違うけど、とてもわかりやすいのでこれを参照に途中までI2Cについて確認してみる。

 

mos.yml内を確認。
 config_schema :
    - [ "i2c.enable", true ]

となってるので、I2Cを使用する状態になってる。
ライブラリも、libs:に
    - origin: https://github.com/mongoose-os-libs/i2c 
が入っている。問題なし。

 

デフォルトでSDAとSCLに使用するピンがちゃんと設定されてることを確認。
これはbuild/fs/conf0.jsonの中。自動的に追加されてるらしい。
    "i2c": {
        "enable": true, 
        "freq": 100000, 
        "debug": false, 
        "sda_gpio": 12, 
        "scl_gpio": 14

       }
記載されている通り、GPIOは12と14。
自分はNodeMCUのモジュールを使ったので、D6(GPIO12)にSDA、D5(GIPO14)にSCL。ここまでは確認できている。

 

んじゃ配線は問題ないよなあと考えて、ふとOLEDの設定の見直しを考えた。

元のinit.jsの中に、

 d.begin(Adafruit_SSD1306.SWITCHCAPVCC, 0x3D, true /* reset */);

という一文があるんだけど、Adafruit SSD1306ライブラリを使うプログラムでで良く見かける。

これはハード(というか解像度)の設定でアドレスが0x3Cに変わることがある。

なので試しに0x3Cにしてフラッシュし直した後、無事OLEDに表示が出ました。

結局、コードもライブラリもほとんど問題ありませんでした。

しかしトラブルがあって見直しをかける際、ビルド後のログとかも確認しやすいし、使いやすい開発環境だということは良くわかった感じ。

プログラムを修正して書き込み直ししたときに、また戻ってこなくなったことがあったので、ここだけはネック。

 

最近M5Stackに構い過ぎなので、こういうところでガス抜きしていこうかな。
(でも結局ESP32とかESP8266とか使ってばっかり)

Sponsered Link
コメント