Giter Club home page Giter Club logo

xbee3_micropython's Introduction

ボクにもわかる XBee3 ZigBee用 Digi MicroPython

XBee3 ZigBeeでサポートされた Digi MicroPython を利用したサンプル集です。  
Examples of Digi MicroPython Scripts for XBee3 ZigBee, written by bokunimo.net  

説明図

子機・XBee3 ZigBee

子機にはXBee3 ZigBeeモジュールを使用します。
MicroPythonのスクリプトを書き込むには、XBee USBエクスプローラとPCなどが必要です。スクリプト書き込み後は、電源を供給するだけで動かすことが出来ます。

  • XBee3 (ZigBee)

Digi MicroPython 設定方法

下記は、MicroPythonをシリアルポートからREPLモード (ダイレクトモード)で扱うための設定方法です。

  1. DIGI XCTU (最新版)の「Radio Modules」のアイコン[+](Add a radio Module)で使用するシリアルCOMポートを選択する。
  2. シリアル接続したXBeeモジュールが画面左側のフレームに表示されるので、それを選択する。
  3. 右フレーム「Radio Configuration」にXBee 設定画面が表示されるので、スクロールして、「AP APIEnabe」で[MicroPython REPL [4]]を選択する。
    [Radio Configuration] ▼ UART Interface AP APIEnabe MicroPython REPL [4]
  4. 右フレームの上部の鉛筆アイコン(Write)をクリックする。
  5. XCTUの「Tool」メニューから[MicroPython Terminal]を選択し、接続アイコン(Open)をクリックする。(Tera Terminalを使用する場合は、通信設定=9600-8-N-1・フロー制御なし、改行コード=CR、ローカルエコー=無しなどを設定する。)

サンプル・スクリプトの書き込み方法

予め、前記の方法で MicroPython REPLモードに設定したXBee3 ZigBeeモジュールへ、サンプル・スクリプトを転送して実行します。

  1. サンプルスクリプトをメモ帳や秀丸エディタで開き、[Ctrl]+[A]の操作で全選択し、[Ctrl]+[C]でクリップボードにコピーします。
  2. XCTU の MicroPython Terminal または TeraTermなどで、[Ctrl]+[F]を操作し、プログラムをXBee3 ZigBeeモジュールへ書き込むモードに設定します。
  3. 右クリック操作でペーストを行い、クリップボードに保持したサンプルスクリプトを転送します。
  4. [Ctrl]+[D]を操作し、コンパイルを実行します。
  5. 「Automatically run」に対して[Y]を入力すると、起動時やリセット操作時に、自動起動させることが出来ます。
  6. [Ctrl]+[R]でフラッシュメモリ内のプログラムを実行します。Automatically runを設定していた場合は、リセット操作[Ctrl]+[D]で実行することも出来ます。

Digi MicroPython REPLモード Keyboard shortcuts

MicroPython REPLモードの操作方法を以下に示します。

  • 起動時(通常時): REPL mode.
    Python命令を入力するたびに実行を行う、対話型の実行モード(ダイレクトモード)です。命令をテストしたいときに利用します。

  • [Ctrl]+[E]: Enter paste mode.
    クリップボードからスクリプトをペーストし、一時的にプログラムの入力と実行を行うときに使用する「スクリプト入力モード」です。プロンプトは「1===」のように「行番号」+「===」となります。入力後、コンパイルしてプログラムを実行するには、[Ctrl]+[D]を操作してください。入力や実行の取り消しは[Ctrl]+[C]です(入力中はコンパイルされない、プログラム実行中は実行を停止する)。なお、本モードでの動作中は、Python命令のスコープを示す「タブ」や「スペース文字」の自動挿入や自動コンパイルは行われません。

  • [Ctrl]+[F]: Upload code to flash.
    クリップボードからスクリプトをペーストし、フラッシュメモリにプログラムを書き込むときに使用します。電源を切っても、プログラムを保持することが出来る点が、[Ctrl]+[E]との違いです。プロンプトは「1^^^」のように「行番号」+「^^^」となります。[Ctrl]+[D]で書き込みます。実行は[Crtl]+[R]、入力の取り消しは[Ctrl]+[C]です。

  • [Ctrl]+[R]: Run code in flash. フラッシュメモリ内のプログラムを実行します。実行の停止は[Ctrl]+[C]です。

  • [Ctrl]+[C]: Regain control of the terminal.
    実行中のスクリプトの中止や、スクリプト入力の中止を行います。

  • [Ctrl]+[D]: Reboot the MicroPython REPL.
    ソフトウェア・リセットを行い、Pythonコマンドの状態や変数値などを初期化します。

  • [Ctrl]+[A]: Enter raw REPL mode.
    エコーバックをOFFにします。[Ctrl]+[B]の操作でエコーバックモードに戻ります。

  • [Ctrl]+[B]: Print the MicroPython banner.
    通常の(エコーバックを行う)REPLモードに戻します。

  • [Ctrl]+[I]: オブジェクト表示

  • [Ctrl]+[M]: 不明

XBeeモジュール GPIO

XBeeのGPIO汎用ポート一覧表

Port IO名 Pin DIN AIN 出力 主な用途
1 DIO1(AD1) 19 汎用入力用(DIN or AIN)
2 DIO2(AD2) 18 汎用入力用(DIN or AIN)
3 DIO3(AD3) 17 汎用入力用(DIN or AIN)
4 DIO4 11 × 汎用出力用(LED3)
11 DIO11 7 × 汎用出力用(LED2)/I2C SCL
12 DIO12 4 × 汎用出力用(LED1)/I2C SDA

親機 XBee ZigBee Coordinator の作成方法

Raspberry Pi用のプログラムを下記のコマンドでダウンロードし、コンパイルしてください。

pi@raspberrypi:~ $ git clone -b raspi https://github.com/bokunimowakaru/xbeeCoord.git
pi@raspberrypi:~ $ cd xbeeCoord/tools/
pi@raspberrypi:~/xbeeCoord/tools $ make

ZigBeeモード設定ツール「xbee_zb_mode」を起動し、XBee Coordinator APIモードに設定して下さい。末尾の「B0」は「ttyUSB0」の場合です。
実行後、「10」と「Enter」を入力すれば、設定できます。設定時にエラーが出た場合は、やり直してください。

pi@raspberrypi:~/xbeeCoord/tools $ ./xbee_zb_mode B0

CONNECTED 0(0x00):176(0xB0)

ZIGBEE Device Type Switcher for XBee ZB S2C / XBee3 Series
00:Coordinator AT,  01:Router AT,  02:End Device AT
10:Coordinator API, 11:Router API, 12:End Device API

Mode =10 <-------------------- 10:Coordinator API

設定が完了したら、XBee テスト用ツール「xbee_test」を起動してください。

pi@raspberrypi:~ $ cd ~/xbeeCoord/tools
pi@raspberrypi:~/xbeeCoord/tools $ ./xbee_test B0

xbee_testは、XBeeモジュールを常時ペアリングが可能なモードに設定します。このため、通常は自動的にペアリングが行われ、xbee_testに「recieved IDNT」が表示されます。

ペアリング後に、子機XBee3から温度情報が送られてくると、「recieved UART」に続き、温度値と電源電圧値が表示されます。下記の例では、温度19.0℃、電源電圧3.302Vが得られました。

--------------------
recieved UART
--------------------
from   :0013A200 xxxxxxxx
status :02 broadcast packet
length :10 (0x0A)
data   : 19.0, 3.302

AT>

MicroPython 基本サンプル・スクリプトで無線通信実験

関連リンク

参考文献

サンプル集ならびに本ドキュメントの作成にあたり、下記の文献を参考にしました。

  • Digi MicroPython Programming Guide Revision L (Dec. 2018)

ライセンス・著作権表示

ライセンスについては各ソースリストならびに各フォルダ内のファイルに記載の通りです. 使用・変更・配布は可能ですが,権利表示を残してください。 また,提供情報や配布ソフトによって生じたいかなる被害についても,一切,補償いたしません。

						   Copyright (c) 2018-2019 Wataru KUNINO
						   http://bokunimo.net/

xbee3_micropython's People

Contributors

bokunimowakaru avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.