前回WIO NODEで無事MicroPythonが起動できましたので、今度はGroveコネクタからI2Cを使ってみました。
とりあえずGroveコネクタからピンヘッダに変換するアダプタをつくり、ブレッドボード経由でSSD1306 OLEDに接続しました。
変換アダプタは、前回、UART接続のためにGroveケーブルを2つに切って使ったので、そのもう一方のコネクタを使いました。
最初、I2Cが反応しなくて悩んだのですが、検索してみたら、以下のページを発見しました。Groveコネクタを使う場合、GPIO15経由でGroveコネクタの電源をオンにしなくてはならないそうです。
TI DSP ソフトウェア設計のファームロジックス | 話題の Wio Node を買うも、MicroPython 載せて IFTTT するの巻
下図のように、GPIO15がスイッチの役割をしています。
ESP8266のI2Cはソフト実装なので、任意のGPIOピンにSDA/SCLを割り当てることができます。
今回はコネクタがGPIO4とGPIO5なので、OLEDへ配線しやすいようにGPIO5をSDA、GPIO4をSCLに割り当てました。
コードは以下の通りです。
>>> from machine import Pin, I2C >>> Pin(15, Pin.OUT).value(1) >>> i2c=I2C(sda=Pin(5),scl=Pin(4)) >>> i2c.scan() [60] >>> from ssd1306 import SSD1306_I2C >>> oled = SSD1306_I2C(128,64,i2c) >>> oled.text("Hello world!", 0, 0) >>> oled.show()
コメント