Buletooth module(RX-42XVP) sample program
Buletoothモジュール(RN-42XVP)の青mbed(LPC1768)での動作確認
<概要>
トランジスタ技術2014年3月号 3章のBuletoothモジュール(RN-42XVP)とLPC810を使った作例で、LPC810を青mbed(LPC1768)に変更して、配線とmbedプログラムを簡素化して動作確認をしやすくしました。
動作例動画:
<機材準備>
- 配線 Buletoothモジュールへの電源供給はmbedから行います。またシリアル通信線2本をmbedに接続します。
RN-42XVP | mbed(LPC1768) |
---|---|
Pin1(Vcc) | VOUT(3.3V) |
Pin2(DOUT) | p14(rx) |
Pin3(DIN) | p13(tx) |
Pin10 | GND(0V) |
- Androidアプリ
AndroidアプリはCQ出版社のwebからダウンロードします。
http://toragi.cqpub.co.jp/tabid/707/Default.aspx
パソコンからandroidへのインストールはトランジスタ技術の記事を参照してください。
- 青mbed(LPC1768)のプログラム
Mbedのwebからダウンロードしてください。
Import programRN-42XVPsample
Buletooth module(RX-42XVP) sample program
<動作>
Androidアプリはテンキー(0~9)と”LED ON/OFF”のボタンがあり、これらのボタンを押すとアスキーコードの’0’~’9’,’+’,’-‘が送信されます。これを青mbedで受信して、mbed上の4つのLEDを制御します。また受信したデータをmbedのUSB-Serialで外部に送信します。パソコンでターミナルソフト(TeraTarmなど)で確認できます。
以上
main.cpp@0:66a02c06ec33, 2014-02-23 (annotated)
- Committer:
- suupen
- Date:
- Sun Feb 23 00:24:55 2014 +0000
- Revision:
- 0:66a02c06ec33
Buletooth module(RN-42XVP)sample program
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suupen | 0:66a02c06ec33 | 1 | /** |
suupen | 0:66a02c06ec33 | 2 | Transistor Gijutsu 2014nen 3gatugo page.64 3syo |
suupen | 0:66a02c06ec33 | 3 | Buletooth ban |
suupen | 0:66a02c06ec33 | 4 | LPC810 wo LPC1768 ni henko sita sample program |
suupen | 0:66a02c06ec33 | 5 | |
suupen | 0:66a02c06ec33 | 6 | |
suupen | 0:66a02c06ec33 | 7 | RN-42XVP LPC1768 |
suupen | 0:66a02c06ec33 | 8 | ------------------- |
suupen | 0:66a02c06ec33 | 9 | Pin1 VOUT |
suupen | 0:66a02c06ec33 | 10 | Pin2 p14(rx) |
suupen | 0:66a02c06ec33 | 11 | Pin3 p13(tx) |
suupen | 0:66a02c06ec33 | 12 | Pin10 GND |
suupen | 0:66a02c06ec33 | 13 | |
suupen | 0:66a02c06ec33 | 14 | */ |
suupen | 0:66a02c06ec33 | 15 | #include "mbed.h" |
suupen | 0:66a02c06ec33 | 16 | |
suupen | 0:66a02c06ec33 | 17 | BusOut myleds(LED1, LED2, LED3, LED4); |
suupen | 0:66a02c06ec33 | 18 | |
suupen | 0:66a02c06ec33 | 19 | Serial pc(USBTX, USBRX); // (tx, rx) |
suupen | 0:66a02c06ec33 | 20 | Serial xbee(p13, p14); // (tx,rx) RN-42XVP tuusinyo serial |
suupen | 0:66a02c06ec33 | 21 | |
suupen | 0:66a02c06ec33 | 22 | int main() |
suupen | 0:66a02c06ec33 | 23 | { |
suupen | 0:66a02c06ec33 | 24 | uint8_t rawData; |
suupen | 0:66a02c06ec33 | 25 | uint8_t newData; |
suupen | 0:66a02c06ec33 | 26 | |
suupen | 0:66a02c06ec33 | 27 | xbee.baud(115200); |
suupen | 0:66a02c06ec33 | 28 | |
suupen | 0:66a02c06ec33 | 29 | while(1) { |
suupen | 0:66a02c06ec33 | 30 | |
suupen | 0:66a02c06ec33 | 31 | if(1 == xbee.readable()) { |
suupen | 0:66a02c06ec33 | 32 | rawData = xbee.getc(); |
suupen | 0:66a02c06ec33 | 33 | |
suupen | 0:66a02c06ec33 | 34 | pc.printf("rawData = %02x\n",rawData); |
suupen | 0:66a02c06ec33 | 35 | |
suupen | 0:66a02c06ec33 | 36 | if(rawData != 0x00) { |
suupen | 0:66a02c06ec33 | 37 | if(rawData == '+') { |
suupen | 0:66a02c06ec33 | 38 | newData = 0x0f; |
suupen | 0:66a02c06ec33 | 39 | } else if(rawData == '-') { |
suupen | 0:66a02c06ec33 | 40 | newData = 0x00; |
suupen | 0:66a02c06ec33 | 41 | } else if(rawData == '0') { |
suupen | 0:66a02c06ec33 | 42 | newData = 0x0a; |
suupen | 0:66a02c06ec33 | 43 | } else { |
suupen | 0:66a02c06ec33 | 44 | newData = rawData - '0'; |
suupen | 0:66a02c06ec33 | 45 | } |
suupen | 0:66a02c06ec33 | 46 | |
suupen | 0:66a02c06ec33 | 47 | myleds = newData; |
suupen | 0:66a02c06ec33 | 48 | |
suupen | 0:66a02c06ec33 | 49 | |
suupen | 0:66a02c06ec33 | 50 | } |
suupen | 0:66a02c06ec33 | 51 | |
suupen | 0:66a02c06ec33 | 52 | } |
suupen | 0:66a02c06ec33 | 53 | } |
suupen | 0:66a02c06ec33 | 54 | } |