Zigbee是一种短距离、低功耗的近距离无线组网通讯技术,主要适用于自动控制和远程控制领域,可以嵌入各种设备。 DIGI的ZigBee产品XBee小型但却是一个功能完善的ZigBee收发器(即接收器/发射器),它是双向操作,可交替地发射或接收数据(半双工式)。

DIGI提供有两种版本,XBee和XBee PRO两版本都是有相同的功能和引脚兼容,唯一的差异是发射功率,XBee为最大2mW,而XBeePRO则最大63mW。 XBee/XBeePRO模块是一款内置协议栈的ZigBee模块,它通过串口使用AT命令集方式设置模块的参数,并通过串口来实现数据的传输。Digi提供了X-CTU配置软件,用它可以方便地配置XBee模块的所有参数。

XBee模块与飞控之间其实就是通过串行接口(即Tx和Rx引脚)进行通信。对于简单的点对点通信来讲,只需要通过串行接口向XBee模块写数据就可以实现数据的发送;当XBee模块通过无线通道接收到数据时,通过读串行接口可以很方便地获得这些数据。用X-CTU软件一次配置好参数后,两个插上XBee模块的控制器就可以像有线RS232串口通信一样相互传送数据了。(http://www.eefocus.com/zhang700309/blog/12-08/284065_cc230.html 《美国DIGI公司的XBee模块无线通讯实验》)

一、XBEE的配置与配对

安装X-CTU软件并更新为最新版(此版使用的是XCTU ver. 5.2.8.6),通过DIGI官方网址下载X-CTU软件。

http://www.digi.com/support/productdetail?pid=3352&type=firmware

第一块XBee模块的设置

将XBee插接到电脑的一个USB接口上。在电脑和XBee之间还需要有USB转TTL模块以便连接。这里采用了DFRobot 的XBee适配器,方便对XBee模块进行配置。PC机通过USB线直接与XBee适配器连接,PC机提示安装FIDI USB驱动。

把XBee模块按照正确方向,插到XBee适配器上。 打开设备管理器,展开端口(连接口(COM和LPT))部分,然后注意XBee所插入的USB Serial Port编号。

在设备管理器中查看连接XBee的COM序列号

运行X-CTU软件,点击"Add a radio module specifying the port settings",选择XBee适配器映射的COM口(实验中映射出的串口号为COM11),并设置好波特率等参数。XBee模块出厂里默认的设置为9600,8N1N。

点击"Finish",测试XBee模块是否能连接上。如果一切正常,我们将看到如下图所示,会显示模块型号及版本号。

测试通过后,选择 "Switch to Configuration working mode"选项,点击 "Update Firmware"按钮,升级固件。根据Xbee模块的型号,选择合适的:

1、Product family:XBP24BZ7。

2、Function set:ZigBee Coordinator AT。(采用透明传输的工作方式,需要配对的两个Xbee模块分别选择"ZigBee Coordinator AT"和"ZigBee Router AT"功能集。)

3、Firmware version:20A7。一般选择最新的固件。

点击"Read radio settings"按钮读出XBee模块中的当前参数。

1、更改"Networking & Security"中的"ID PAN ID", PAN 即为Personal Area Network, ID范围从0到1234,或者是任何16进制的数值,只要能够确保相同的网络中,所有XBee设备有相同的PAN ID。

2、SH、SL为本XBee模块的MAC地址,将需要配对的XBee模块的MAC地址填入DH、DL,需要注意高、低位。

在"Serial Interfacing"的"BD Baud Rate"中,修改XBee的波特率, XBee模块默认波特率9600 b/s,APM使用的波特率为57600b/s,因此将波特率修改为57600b/s。

上述主要参数设置好后,点击 "Write Radio Settings"按钮将参数写到XBEE模块中。

第二块XBEE模块的设置

关掉执行中的X-CTU,拔除插在电脑上的USB-TTL,更换上面的XBee模块,重复前述的步骤,但下载Firmware时,Function Set改为"ZigBee Router AT",将两者的MAC地址(SH、SL与DH、DL)互换。

验证配对成功

串口通信程序,测试下XBee无线通信是否正常。开启两个X-CTU软件窗口,分别连接两个XBee模块。 选择任一模块点击"Discover radio nodes in the same network",则会和另一模块自动配对。

两个X-CTU均选择"Switch to consoles working mode",并点击 "Open the serial connection with the radio module"。在窗口下方可添加一个数据包或者数据流,可以设置发送次数和间隔时间。

如图可见,另一个模块会接收并显示该模块发送的数据。

二、利用XBEE连接地面站和飞控

1、把一个XBee模块从适配器上拔下来,连接到飞控的Telem接口(APM为5p端口,Pixhawk为6p端口),XBee的TX(RX)接Telem口的RX(TX)。

注意:XBee的供电电压为3.3V,飞控Telem口的供电电压为5V,因此需要在两者之间加一个电压转换模块,将5V电压转换为3.3V给XBee供电。

2、打开Mission Planner,选择适配器的端口,波特率选择57600b/s,点击连接,地面站即可与飞控通信,可以实时读取飞行状态数据,进行航点规划飞行。

使用xbee连接地面站和飞控的更多相关文章

  1. 《例说XBee无线模块开发》

    <例说XBee无线模块开发> 基本信息 原书名:The Hands-on XBee Lab Manual:Experiments that Teach you XBee Wireless ...

  2. Mavlink - 无人机通讯协议

    http://qgroundcontrol.org/mavlink/start mavlink协议介绍https://pixhawk.ethz.ch/mavlink/ 消息简介 MAVLink简介 M ...

  3. Mavlink协议理解

    来源:blog.csdn.net/super_mice/article/details/44836585 之前看了mavlink协议,网上关于mavlink的资料不多.本文大概总结了下对mavlink ...

  4. [pixhawk笔记]4-如何写一个简单的应用程序

    本文主要内容来自于:https://dev.px4.io/en/tutorials/tutorial_hello_sky.html,并对文档中的部分问题进行更正. 本文假设已经建立好开发环境并能正确编 ...

  5. Android版APM地面站,支持直连和数传台连接

    现在隆重介绍APM上的手机/平板地面站 andropilot官方链接在此http://www.diydrones.com/groups/705844:Group:1132500?xg_source=m ...

  6. APM和PIX飞控日志分析入门贴

    我们在飞行中,经常会碰到各种各样的问题,经常有模友很纳闷,为什么我的飞机会这样那样的问题,为什么我的飞机会炸机,各种问题得不到答案是一件非常不爽的问题,在APM和PIX飞控中,都有记录我们整个飞行过程 ...

  7. 多轴APM飞控调参

    调参步骤: 遥控器,电动机和电调对应的APM飞控连线——遥控器校准——电调行程校准——加速度计校准——磁罗盘校准——故障保护设定(遥控器和飞控)——飞行模式设定并调整——自动调参设定选项 APM飞控调 ...

  8. APM飞控的使用心得

    硬件资源:APM,F450四轴机架,大疆电调和电机,富斯i6控和接收机. 刚开始的步骤都是大同小异,首先可以按照这个链接上面的步骤一步步的执行:http://tieba.baidu.com/p/297 ...

  9. apm飞控飞行模式详解

    1.稳定模式Stabilize稳定模式是使用得最多的飞行模式,也是最基本的飞行模式,起飞和降落都应该使用此模式.此模式下,飞控会让飞行器保持稳定,是初学者进行一般飞行的首选,也是FPV第一视角飞行的最 ...

随机推荐

  1. Fdisk 分区详解

    Fdisk 分区详解 来源 http://blog.itpub.net/20674423/viewspace-722812/ 1.             通过Fdisk查看系统分区详细信息: Fdi ...

  2. [NOI2008]糖果雨

    bzoj1062[Noi2008]糖果雨 首先给出的颜色没有用. 估计要用数据结构.而线段难以维护. 考虑把线段变成点 T是单增的. 所以询问的时候,存在的线段都可能贡献答案. 那些线段的位置如果可以 ...

  3. jre,jdk,jvm的关系

    今天在用maven搭建项目工程的时候出错的原因竟然是因为使用了jre,而非jdk导致报错,这里就搜集了有关这方面的信息:   JDK(Java Development Kit)是针对Java开发员的产 ...

  4. 「Python-Django」Django中使用数据库的 9 个小技巧

    Django 中使用数据库的 9 个小技巧. 1. 过滤器聚合 在 Django 2.0 之前,如果你想得到“用户总数”.“活跃用户总数”等信息时,你不得不使用条件表达式. Django 2.0 中, ...

  5. [Java多线程]-并发,并行,synchonrized同步的用法

    一.多线程的并发与并行: 并发:多个线程同时都处在运行中的状态.线程之间相互干扰,存在竞争,(CPU,缓冲区),每个线程轮流使用CPU,当一个线程占有CPU时,其他线程处于挂起状态,各线程断续推进. ...

  6. myeclipse注册机,自己生成注册码

    话不多少,直接上代码 直接可以运行,自己输入key即可 package com.generate.myeclipse.code; import java.io.BufferedReader; impo ...

  7. at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:142) :json转化“$ref 循环引用”的问题

    原因: entity实体中存在@OneToMany,@ManyToOne注解,在转化json是产生了循环引用 报的错误 解决方法: springmvc @ResponseBody 默认的json转化用 ...

  8. OpenCV---图像梯度

    图像梯度 推文:[OpenCV入门教程之十二]OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑 图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个 ...

  9. Integer Numbers

    ZOJ Problem Set - 3365 Integer Numbers Time Limit: 1 Second      Memory Limit: 32768 KB      Special ...

  10. css单位em、px、rem和pt的区别

    1.PX :像素(Pixel) PX是相对长度单位,它是相对于显示器屏幕分辨率而言的. 优缺点:比较稳定和精确,但在浏览器中放大或缩放浏览页面时会出现页面混乱的情况. 2.EM:是相对长度单位. EM ...