|
|
(未显示5个用户的18个中间版本) |
第5行: |
第5行: |
| [[File: Microduino-zigbee-rect.jpg|400px|thumb|right|Microduino-Zigbee]] | | [[File: Microduino-zigbee-rect.jpg|400px|thumb|right|Microduino-Zigbee]] |
| | | |
− | Microduino采用CC2530芯片,是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。
| + | Microduino-Zigbee采用CC2530芯片,是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。 |
| | | |
| | | |
第55行: |
第55行: |
| | | |
| *引脚说明: | | *引脚说明: |
| + | [[file:Microduino-ZigbeePin1.JPG|thumb|600px|center|Microduino-Zigbee Front]] |
| + | [[file:Microduino-ZigbeePin2.JPG|thumb|600px|center|Microduino-Zigbee Front]] |
| {|class="wikitable" | | {|class="wikitable" |
| ! rowspan="1" | 芯片引脚 || Microduino引脚 || 功能 | | ! rowspan="1" | 芯片引脚 || Microduino引脚 || 功能 |
第68行: |
第70行: |
| | MOSI|||D11||SPI串行数据输入 | | | MOSI|||D11||SPI串行数据输入 |
| |- | | |- |
− | | TX ||RX0(orD2/D4)||模块串口发送脚(TTL电平),可接单片机的RXD | + | | TX ||RX0:D4(orD0/D2)||模块串口发送脚(TTL电平),可接单片机的RXD |
| |- | | |- |
− | | RX ||TX1(orD3/D5)||模块串口接收脚(TTL电平),可接单片机的TXD | + | | RX ||TX1:D5(orD1/D3)||模块串口接收脚(TTL电平),可接单片机的TXD |
| |} | | |} |
| | | |
| ==文档== | | ==文档== |
| + | AT命令文档:'''[[File:Zigbee_AT.pdf]]''' |
| | | |
| ==开发== | | ==开发== |
| ===[[如何向Zigbee模块刷写固件]]=== | | ===[[如何向Zigbee模块刷写固件]]=== |
− | '''目的'''
| |
| | | |
− | | + | ===[[多种AT命令调试方式]]=== |
− | | |
− | | |
− | | |
− | ===与其它Microduino模块的连接=== | |
− | | |
− | '''目的'''
| |
− | *本教程通过对Microduino-Zigbee与其它Microduino模块连接的介绍,方便读者灵活使用Microduino系列产品。
| |
− | '''设备'''
| |
− | *'''[[Microduino-Zigbee]]'''
| |
− | Microduino-Zigbee 是以TI的CC2530芯片为核心的低功耗无线模块,采用Zigbee的通讯方式。该模块采用UPin-27接口,方便与其它Microduino模块叠加使用。
| |
− | | |
− | *'''[[Microduino-Core]]'''
| |
− | Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块
| |
− | | |
− | *'''[[Microduino-Core+]]'''
| |
− | Microduino-Core 是以 Atmel ATmega644PA 为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块
| |
− | | |
− | *'''[[Microduino-USBTTL]]'''
| |
− | 下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。
| |
− | | |
− | *其他硬件设备
| |
− | {|class="wikitable"
| |
− | |-
| |
− | |相关硬件||数量||功能
| |
− | |-
| |
− | |USB数据连接线 ||1条||连通Microduino模块与计算机
| |
− | |-
| |
− | |面包板跳线 ||1盒||电气连接线。
| |
− | |-
| |
− | |}
| |
− | | |
− | '''实验方式'''
| |
− | | |
− | * Microduino-USBTTL与Microduino-Zigbee。
| |
− | Microduino-USBTTL与Microduino-Zigbee不能直接叠加。
| |
− | 连接方式应为
| |
− | {|class="wikitable"
| |
− | |-
| |
− | | Microduino-USBTTL || Microduino-Zigbee
| |
− | |-
| |
− | | GND || GND
| |
− | |-
| |
− | | 3V3||3V3
| |
− | |-
| |
− | | RX0 || D2
| |
− | |-
| |
− | | TX1|| D3
| |
− | |-
| |
− | |}
| |
− | | |
− | 实物连接见下图
| |
− | [[File: usbttl-zigbee.jpg|600px|center|thumb]]
| |
− | | |
− | 确认导线连接无误后插入USB数据线,然后打开串口调试助手。串口调试助手下载:[[File: com assist.rar]]
| |
− | 串口调试助手软件界面见下图:
| |
− | [[File: com assist UI.jpg|600px|center|thumb]]
| |
− | 串口如果没有打开,可以点击串口号的列表框按钮查询。发送新行的复选框应该选上对勾。在字符串输入框输入“+++”,点击发送,可以看到Zigbee模块回馈的信息了。
| |
− | 笔者用的波特率是9600。可以输入AT+BAUD=0X设定Zigbee模块的波特率,输入AT+SRST点击发送后重启Zigbee模块可以保存设置值,下次上电无需再设置了。
| |
− | 更多输入指令(AT指令)的含义会在后续文档中介绍。
| |
− | | |
− | | |
− | * Microduino-USBTTL与Microduino-Core与Microduino-Zigbee。
| |
− | Microduino-USBTTL与Microduino-Core与Microduino-Zigbee三个模块可以直接叠加。叠加后需要在Microduino-Core的程序中写入程序,用到SoftwareSerial库。
| |
− | 程序如下:
| |
− | <source lang="cpp">
| |
− | /*
| |
− | core hardware(RX0,TX1) =9600
| |
− | core software(D2,D3)=9600 must match with cc2530 setup.when change cc2530 baud rate
| |
− | */
| |
− | #include <SoftwareSerial.h>
| |
− | SoftwareSerial mySerial(2, 3); // RX, TX
| |
− | String myStringSoftCom="";
| |
− | String myStringHardCom="";
| |
− | void setup()
| |
− | {
| |
− | // Open serial communications and wait for port to open:
| |
− | Serial.begin(9600);
| |
− | // set the data rate for the SoftwareSerial port
| |
− | mySerial.begin(9600);
| |
− | }
| |
− | | |
− | void loop() // run over and over
| |
− | {
| |
− | while (Serial.available() > 0)
| |
− | {
| |
− | myStringHardCom += char(Serial.read());
| |
− | delay(2);
| |
− | }
| |
− | mySerial.println(myStringHardCom);
| |
− | myStringHardCom="";
| |
− | while (mySerial.available() > 0)
| |
− | {
| |
− | myStringSoftCom += char(mySerial.read());
| |
− | delay (2);
| |
− | }
| |
− | if (myStringSoftCom.length() > 0)
| |
− | {
| |
− | Serial.println(myStringSoftCom);
| |
− | myStringSoftCom="";
| |
− | }
| |
− | delay(100);
| |
− | }
| |
− | </source>
| |
− | 因为Microduino-core自带重启按钮,通过AT指令设定完参数后,可以点击重启按钮,设置好的参数会自动保存。
| |
− | | |
− | | |
− | * Microduino-USBTTL与Microduino-Core+与Microduino-Zigbee。
| |
− | 三个模块可以直接叠加。程序如下
| |
− | <source lang="cpp">
| |
− | String myStringSerial1="";
| |
− | String myStringSerial="";
| |
− | void setup()
| |
− | {
| |
− | Serial.begin(9600);
| |
− | Serial1.begin(9600);
| |
− | }
| |
− | | |
− | void loop() // run over and over
| |
− | {
| |
− | while (Serial.available() > 0)
| |
− | {
| |
− | myStringSerial += char(Serial.read());
| |
− | delay(2);
| |
− | }
| |
− | Serial1.println(myStringSerial);
| |
− | myStringSerial="";
| |
− | while (Serial1.available() > 0)
| |
− | {
| |
− | myStringSerial1 += char(Serial1.read());
| |
− | delay(2);
| |
− | }
| |
− | if (myStringSerial1.length() > 0)
| |
− | {
| |
− | Serial.println(myStringSerial1);
| |
− | myStringSerial1="";
| |
− | }
| |
− | delay(100);
| |
− | | |
− | }
| |
− | </source>
| |
− | | |
− | '''结果'''
| |
− | *输入AT指令,在串口调试助手或是Arduino IDE自带的串口中观察数据。调用SoftwareSerial库时,在115200波特率下会有乱码。
| |
− | | |
− | ===透传点灯实验===
| |
| | | |
| ==应用== | | ==应用== |
| + | ===[[监视器透传实验]]=== |
| + | ===[[透传点灯实验]]=== |
| + | ===[[组网串口监视实验]]=== |
| + | ===[[组网点灯实验]]=== |
| | | |
| ==购买== | | ==购买== |