【BLE】CC2541之通过RSSI测距
来源:互联网 发布:中小企业网络拓扑图 编辑:程序博客网 时间:2024/06/05 18:20
本篇博文最后修改时间:2016年11月11日,09:21。
一、简介
本文介绍如何在SimpleBLEPeripheral工程中,通过RSSI粗略测距。
二、实验平台
协议栈版本:BLE-CC254x-1.4.0
编译软件:IAR 8.20.2
硬件平台:Smart RF(主芯片CC2541)
三、版权声明
博主:si_zhou_qun_84342712
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://write.blog.csdn.net/postedit?ref=toolbar
联系方式:495527583@qq.com
开源4轴群:84342712
四、基础知识
1、通过RSSI测距的公式是什么?答:
其中,
1)P:当前RSSI。
2)A:主从机1米距离时的RSSI。
3)n:传播因子,与温度、湿度等环境相关。
4)r:当前距离。
2、上述公式如何使用?
答:
上述的公式A与n都是变化的,按理说在不同的主机、环境的测距开始前,都需要校准A、变换n后才能正常使用公式。
但本篇采用的粗略方法是:
1)app连接CC2541,读出1米时的RSSI约为-59dB,则将代码中公式中的A定为-59dB。
2)百度发现常用的n有一个范围,选了一个常用的传播因子3.0。
这样,就能粗略地得P与r的一一对应关系。
3、RSSI更新很慢,导致测出的距离更新也很慢,如何解决?
答:
由于RSSI是主从机通信过程产生的,因此需要主从机不停地进行数据通信后,RSSI才能得到更新。
实测:从机发往主机的数据,无法更新从机端的RSSI。
需要主机端主动发送数据给从机,从机才能快速更新RSSI。
五、实验前提
请先学习如下2篇文章:
1 http://blog.csdn.net/si_zhou_qun_84342712/article/details/53170335
2 http://blog.csdn.net/si_zhou_qun_84342712/article/details/53170312
六、代码修改
1、修改RSSI回调函数(simpleBLEPeripheral.c中)
1)写一个RSSI测距的算法函数(simpleBLEPeripheral.c中)
2)声明RSSI测距的算法函数(simpleBLEPeripheral.c中)
3)添加算法相关的头文件(simpleBLEPeripheral.c中)
七、实验结果
用app连接CC2541时,能打印出RSSI与距离
可以看到更新RSSI与距离的频率明显增快。
因此,粗略用RSSI测距实验成功。
- 【BLE】CC2541之通过RSSI测距
- 【BLE】CC2541之通过RSSI测距
- 【BLE】CC2541之RSSI
- 【BLE】CC2541之RSSI
- 【BLE】CC2541之notify
- 【BLE】CC2541之按键
- 【BLE】CC2541之OLED
- 【BLE】CC2541之indicate
- 【BLE】CC2541之timer3
- 【BLE】CC2541之看门狗
- 【BLE】CC2541之SNV
- 【BLE】CC2541之OAD
- 【BLE】CC2541之PWM
- 【BLE】CC2541之OAD
- 【BLE】CC2541之BTool
- 【BLE】CC2541之timer1
- 【BLE】CC2541之SBL
- 【BLE】CC2541之通信协议
- BZOJ 1634 [Usaco2007 Jan]Protecting the Flowers 护花
- FOC_ESC_V3晶振问题
- MP-BIOS bug: 8254 timer not connected to IO-APIC
- oracle搜集
- spring MVC 启动过程详解
- 【BLE】CC2541之通过RSSI测距
- Java 开发环境配置
- 如何从数据库中查找最近的一条手机验证码
- 在js的function中动态传递字符串类型参数
- JSP之EL表达式和JSTL标签库
- 生成器 - python
- ARM协处理器介绍
- 密码学基础概念(一)
- oled+w25x16+vs1003编程经验