Posted at

XBee 3 ZB で MicroPython を使う(2)


Lチカしてみる

前回記事では XBee 3 ZB の MicroPython を有効にするところまでやりましたが、今回は Lチカまでやってみましょう。

せっかく rove 対応のシリアル/ピッチ変換ボードを購入したので、Grove の赤LEDを繋いでみることにしました。

IMG_4796.jpg

このボードのコネクタではLEDへの出力に D6 ピンを使えばよういようです。

ということで Pin クラスを探したのですが、、、

>> import machine

>>> machine.
__class__ __name__ BROWNOUT_RESET HARD_RESET
LOCKUP_RESET PWRON_RESET SOFT_RESET WDT_RESET
reset reset_cause rng soft_reset
unique_id
>>> machine.

ありません orz

ここにある XBee 3 用 MicroPython ドキュメントを調べてみましたが、どうやら ZigBee 版では I/O ピンに対応していないようです。

スクリーンショット 2018-12-24 23.11.12.png

でも、I/O ピンにアクセスできないなんてありえないと思い、さらに調べてみました。xbee モジュールに atcmd() 関数があり、これで AT コマンドを実行できるようです。

>>> import xbee

>>> xbee.
__class__ __name__ ADDR_BROADCAST ADDR_COORDINATOR
XBee atcmd discover receive
relay transmit
>>> xbee.

ATコマンド一覧はユーザガイドにあり、 "D6" というそのまんまなコマンドがあります。

スクリーンショット 2018-12-24 23.22.39.png

これによれば、D6 コマンドに 4 を指定すればロー、5を指定すればハイの出力になるようです。ということで、REPLで確認してみます。

import xbee

import utime
while True:
xbee.atcmd('D6', 4)
utime.sleep_ms(500)
xbee.atcmd('D6', 5)
utime.sleep_ms(500)

見事に成功です。中断するには Ctrl-C を入力します。

IMG_4797.gif