micro:bitのI2Cアドレス一覧を確認する方法

スポンサーリンク

micro:bitにはI2C通信ができるブロックはあるけど、I2Cアドレス一覧を確認するブロックがない。 MicroPython用APIにはI2Cアドレス一覧を確認する方法があるので試してみた。

手順とプログラム

手順

  1. Pythonエディター(https://python.microbit.org/)にアクセス
  2. 下記のプログラムをmicro:bitに書き込む
  3. 実行すると、micro:bitのLEDにI2Cアドレス一覧がスクロール表示される。 正直見づらいけど、確認はできる

プログラム

from microbit import *
i2c.init(freq=100000, sda=pin20, scl=pin19)
uart.init(baudrate=115200, bits=8, parity=None, stop=1,  tx=None, rx=None)

while True:
    uart.write(str(i2c.scan()))
    display.scroll(str(i2c.scan()))
    sleep(2000)

シリアル通信で確認(Mac)

上記プログラムはLEDへのスクロール表示とは別に、シリアル通信にも出力している。
Macからシリアル通信で内容を確認してみる。
まずはMacmicro:bitをUSBケーブルで接続する。
次にコマンドラインから通信デバイス名を確認して、cuコマンドで接続。

$ ls -l /dev/tty.*
crw-rw-rw-  1 root  wheel   18,   0  6 23 21:00 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   18,   2  6 23 21:00 /dev/tty.LEGOHubTSHub-SerialPort
crw-rw-rw-  1 root  wheel   18,   4  6 23 21:00 /dev/tty.Sanou-WirelessiAPv2
crw-rw-rw-  1 root  wheel   18,   4  6 23 21:00 /dev/tty.usbmodem143331

$ sudo cu -s 115200  -l /dev/tty.usbmodem143331
Password:
Connected.
[25, 30, 64, 112][25, 30, 64, 112][25, 30, 64, 112]

上記の例は、micro:bitにSuper:bit拡張ボードを接続したときの内容。

25(0x19): micro:bit上に実装されている磁気センサー MAG3110のアドレス
30(0x1E): micro:bit上に実装されている加速度センサー MMA8653のアドレス
64(0x40)と112(0x70): Super:bit上に実装されたPCA9685のアドレス