XBeeモジュールの使い方(アナログラインパッシング)


 前回まではI/Oラインパッシングのひとつであるデジタルラインパッシングについて解説しました。I/Oラインパッシングはデジタルとアナログの2種類があります。今回はアナログラインパッシングについて解説します。

1.アナログラインパッシング

 デジタルラインパッシングと同様に、アナログラインパッシングは、あるデバイスのアナログI/Oサポートを別のデバイスのPWM出力としてペアリングすることができます。ADC入力であるAD0とAD1に対応するピン番号は20番と19番ですが、PWM出力のPWM0とPWM1それぞれに対応するピンは6番と7番です。PWM周期は64μs(15.63kHz)で、この周期内で0から0x3FF(10進数で1023)の間で設定可能です。

2.設定例

 アナログラインパッシングを用いた設定例について以下に示します。送信側XBeeでアナログ信号を生成するため、以下のMicroPythonのコードを実行します。

from machine import Pin
import time

# ピンP0 (DIO0, 6番ピン) を出力として使用する
pin = Pin("P0", Pin.OUT)

while True:
    pin.value(1)  # HIGH
    time.sleep_ms(1000)  # 1000ms ON
    pin.value(0)  # LOW
    time.sleep_ms(1000)  # 1000ms OFF

 このコードにより6番ピンからディーティー比50%の2000ms周期の矩形波が生成されます。この波形を以下の図のRCローパスフィルターを通して鈍らせてADC1(19番ピン)に入力します。受信側ではPWM1(7番ピン)とGND(10番ピン)の間に接続されたLEDがPWM変調された信号により輝度変化する様子を確認することができます。

 DigiMeshファームウェアを使用した場合のパラメータの設定例を以下に示します。CHやIDの基本的なパラメータは送信側XBeeと受信側XBeeで一致しているものとします。

【送信側XBee】

APMicroPython RPEL [4]
D1ADC [2]
P0Digital Out, Low [4]
IR0x32(50ms)
AVVDD reference [2]

【受信側XBee】

P1PWM Output [2]
IA0013A20012345678 (送信側のシリアルナンバー)

 これらの設定がなされた後に、送信側XBeeのADC1に入力する波形の一部を以下に示します。

受信側XBeeに接続されたLEDの発行状況を以下に示します。