To push buttons (or switches) on an XBee ZB device report the conditions of input ports on it to a Nucleo board, and display them on a LCD.
Dependencies: TextLCD mbed xbee
Please refer to the following site for the details:
- http://developer.mbed.org/users/bokunimowakaru/code/xbee/wiki/Homepage (English)
- http://www.geocities.jp/bokunimowakaru/diy/xbee/xbee-nucleo.html (Japanese)
main.cpp@8:3f3a9af17724, 2014-10-04 (annotated)
- Committer:
- bokunimowakaru
- Date:
- Sat Oct 04 01:55:07 2014 +0000
- Revision:
- 8:3f3a9af17724
- Parent:
- 7:c2abaaca46a5
XBee lib's serial setting code on xbee.cpp is moved to 4th line on it.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bokunimowakaru | 0:c4c775a72ba9 | 1 | /********************************************************************* |
bokunimowakaru | 0:c4c775a72ba9 | 2 | サンプルアプリ2 スイッチ |
bokunimowakaru | 0:c4c775a72ba9 | 3 | 子機のスイッチ2~4(Port1~3)を押した時に、その状態を液晶に表示します。 |
bokunimowakaru | 0:c4c775a72ba9 | 4 | XBee子機のDIO1~3(XBee_pin 19~17)をHigh や Low にすると PCまたはH8の |
bokunimowakaru | 0:c4c775a72ba9 | 5 | 親機にスイッチの状態が表示されます。 |
bokunimowakaru | 0:c4c775a72ba9 | 6 | |
bokunimowakaru | 7:c2abaaca46a5 | 7 | Sample Code 2 Switch |
bokunimowakaru | 7:c2abaaca46a5 | 8 | To push buttons on an XBee ZB device report the conditions of input |
bokunimowakaru | 7:c2abaaca46a5 | 9 | ports on it to a Nucleo board, and display them on a LCD. |
bokunimowakaru | 7:c2abaaca46a5 | 10 | When you will use this anything other than Nucleo microcomputer board, |
bokunimowakaru | 7:c2abaaca46a5 | 11 | please change the 4th line of xbee/xbee.cpp: |
bokunimowakaru | 7:c2abaaca46a5 | 12 | RawSerial _xbee_serial(SERIAL_TX, SERIAL_RX); |
bokunimowakaru | 7:c2abaaca46a5 | 13 | |
bokunimowakaru | 0:c4c775a72ba9 | 14 | 本ソースリストおよびソフトウェアは、ライセンスフリーです。 |
bokunimowakaru | 0:c4c775a72ba9 | 15 | 利用、編集、再配布等が自由に行えますが、著作権表示の改変は禁止します。 |
bokunimowakaru | 0:c4c775a72ba9 | 16 | |
bokunimowakaru | 0:c4c775a72ba9 | 17 | Copyright (c) 2010-2014 Wataru KUNINO |
bokunimowakaru | 0:c4c775a72ba9 | 18 | http://www.geocities.jp/bokunimowakaru/ |
bokunimowakaru | 0:c4c775a72ba9 | 19 | *********************************************************************/ |
bokunimowakaru | 0:c4c775a72ba9 | 20 | /* |
bokunimowakaru | 0:c4c775a72ba9 | 21 | port: port指定 IO名 ピン番号 USB評価ボード(XBIB-U-Dev) |
bokunimowakaru | 0:c4c775a72ba9 | 22 | port=11 DIO11 XBee_pin 7 LED2 ※port11がLED2 |
bokunimowakaru | 0:c4c775a72ba9 | 23 | port=12 DIO12 XBee_pin 4 LED1 ※port12がLED1 |
bokunimowakaru | 0:c4c775a72ba9 | 24 | */ |
bokunimowakaru | 0:c4c775a72ba9 | 25 | #include "xbee.h" |
bokunimowakaru | 0:c4c775a72ba9 | 26 | #include "TextLCD.h" |
bokunimowakaru | 0:c4c775a72ba9 | 27 | TextLCD lcd(PA_9, PC_7, PB_5, PB_4, PB_10, PA_8); // rs, e, d4-d7 |
bokunimowakaru | 0:c4c775a72ba9 | 28 | |
bokunimowakaru | 0:c4c775a72ba9 | 29 | |
bokunimowakaru | 0:c4c775a72ba9 | 30 | int main(){ |
bokunimowakaru | 0:c4c775a72ba9 | 31 | byte data; |
bokunimowakaru | 0:c4c775a72ba9 | 32 | int i; |
bokunimowakaru | 0:c4c775a72ba9 | 33 | XBEE_RESULT xbee_result; |
bokunimowakaru | 0:c4c775a72ba9 | 34 | // お手持ちのXBee子機(リモート先)アドレスに変更して下さい ↓ |
bokunimowakaru | 0:c4c775a72ba9 | 35 | byte dev_gpio[] = {0x00,0x13,0xA2,0x00,0x40,0x30,0xC1,0x6F}; |
bokunimowakaru | 0:c4c775a72ba9 | 36 | |
bokunimowakaru | 0:c4c775a72ba9 | 37 | // 初期化処理 |
bokunimowakaru | 0:c4c775a72ba9 | 38 | lcd.cls(); lcd.printf("Sample 2 SW"); |
bokunimowakaru | 0:c4c775a72ba9 | 39 | xbee_init( 0x00 ); // XBee用COMポートの初期化(引数はポート番号) |
bokunimowakaru | 0:c4c775a72ba9 | 40 | lcd.cls(); lcd.printf("ATNJ"); |
bokunimowakaru | 0:c4c775a72ba9 | 41 | xbee_atnj( 0xFF ); // デバイスを常に参加受け入れ(テスト用) |
bokunimowakaru | 0:c4c775a72ba9 | 42 | lcd.cls(); lcd.printf("gpio init"); |
bokunimowakaru | 0:c4c775a72ba9 | 43 | xbee_gpio_init(dev_gpio); // デバイスdev_gpioにIO設定を行うための送信 |
bokunimowakaru | 0:c4c775a72ba9 | 44 | lcd.cls(); lcd.printf("DONE"); |
bokunimowakaru | 0:c4c775a72ba9 | 45 | |
bokunimowakaru | 0:c4c775a72ba9 | 46 | // メイン処理 |
bokunimowakaru | 0:c4c775a72ba9 | 47 | while(1){ // 永久に受信する |
bokunimowakaru | 0:c4c775a72ba9 | 48 | /* データ受信(待ち受けて受信する) */ |
bokunimowakaru | 0:c4c775a72ba9 | 49 | data = xbee_rx_call( &xbee_result ); |
bokunimowakaru | 0:c4c775a72ba9 | 50 | // データを受信します。 |
bokunimowakaru | 0:c4c775a72ba9 | 51 | // data:受信結果が代入されます |
bokunimowakaru | 0:c4c775a72ba9 | 52 | if( xbee_result.MODE == MODE_GPIN){ // PIO入力(リモート機のボタンが押された)の時 |
bokunimowakaru | 0:c4c775a72ba9 | 53 | lcd.cls(); |
bokunimowakaru | 0:c4c775a72ba9 | 54 | for( i=7; i>=0 ; i--) lcd.printf( "%c",(char)( (int)'0' + ((data>>i) & 0x01) ) ); |
bokunimowakaru | 0:c4c775a72ba9 | 55 | // dataに入った値をバイナリで表示 |
bokunimowakaru | 0:c4c775a72ba9 | 56 | } |
bokunimowakaru | 0:c4c775a72ba9 | 57 | } |
bokunimowakaru | 0:c4c775a72ba9 | 58 | } |