xbee
micropython

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