
3軸加速度センサKXR94-2050モジュールを使用してXBeeによる加速度データの無線送信に関して解説してきました。前回はローカルXBeeで受信したフレームからX,Y,Z軸方向の加速度データを読み取り、Processing を用いてリアルタイムでデータを表示するスクロールグラフをご紹介しました。この際に、X,Y,Z軸方向の3軸の加速度データを読み取るため12ビットADCを3ch使用しました。この場合にサンプリング間隔の最小値が25msであることを確認しました。
今回はADCのチャンネルが1chの場合にどこまでサンプリング間隔を短縮し高速にサンプリングできるか確認してみます。
リモートXBeeのMicroPython Terminalに以下のコードを書き込みます。X軸の加速度のみをAD値のみを読込み、ローカルXBeeに送信します。3行目のADDRはご自分のローカルXBeeのシリアルナンバーに変更してください。
import xbee
from machine import Pin, ADC
ADDR = b'\x00\x13\xA2\x00\x41\xAE\x36\x69'
adc_pin0 = Pin("D0", Pin.IN, Pin.PULL_UP)
adcx = ADC(adc_pin0)
while True:
x = adcx.read()
data= " {:.4d} ".format(x)
xbee.transmit(ADDR, data.encode('utf8'))
上記コードをCtrl+Dで実行し、ローカルXBeeのコンソール画面でフレームを受信した様子を以下の図に示します。

Frames LogのTimeの値を参考にして10秒間に受信したフレーム数を10回カウントした平均値は626でした。従って、サンプリング間隔を16msに短縮可能であることを確認しました。