XBeeモジュールの使い方(加速度センサ:main.mpyで実行)


 3軸加速度センサKXR94-2050モジュールを使用してXBeeによる加速度データの無線送信に関して連続して解説してきました。前回はADCのチャンネルが1chの場合にどこまでサンプリング間隔を短縮し高速にサンプリングできるか確認しました。今回はコンパイルしたコードをmain.mpyとして/flashに保存して実行させることにより、どの程度のサンプリング間隔の短縮が可能か確認してみました。

 リモートXBeeのMicroPython Terminalに書き込むコードを以下に示します。X軸の加速度のみをAD値のみを読込み、ローカルXBeeに送信します。3行目のADDRはご自分のローカルXBeeのシリアルナンバーに変更してください。 MicroPython Terminalのプロンプト>>>で、Ctrl + Fを押します。これによりプロンプトが^^^に変わります。この状態で右クリックしてPastを選択して下記のコードを張り付けます。

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を押すとコンパイルが始まります。コンパイルが終了すると、コードをコンパイルし、このコードを/flash/main.mpyに保存した旨のメッセージが表示されます。さらに、起動時にこのコードを自動的に実行するか聞いて来るのでYを押します。

さらにこの状態でCtrl+Rを押すことによりmain.mpyが実行されます。

main.mpy の実行にはPSの設定は無関係です。実行を停止する場合はCtrl+Cを押します。また、ローカルXBeeの電源をoffにするかリセットボタンを押しても実行を停止できます。

 実行終了後にFile System Managerで/frashにmain.mpyが保存されていることを確認することができます。

 ローカルXBeeのFrames LogのTimeの値を参考にして10秒間に受信したフレーム数を10回カウントした平均値は634であり、サンプリング間隔を15.8msであることを確認することができました。

 前回の10秒間に受信したフレーム数を10回カウントした平均値が626で。サンプリング間隔が16msであったので、僅かに短縮できたことが分かります。