一、硬件需求 & 软件环境

  • SimpleLink CC26x2R LaunchPad x 3, BOOSTXL-AoA x 1;

  • SimpleLink CC13x2/26x2 SDK ver.3.40;

  • Python 3.7+;

  • Code Composer Studio (CCS)ver.9.2.0.0;

  • Uniflash ver.5.3.1;

  • TICloudAgent(安装CCS时就会自动安装);

CC26x2R开发版是基于蓝牙低功耗5.1技术进行定位,用户可以从开发板中提取到AoA、ToF信息,AoA和ToF定位原理可以参考官网说明http://dev.ti.com/tirex/explore/node?node=AHYhhuDNTaRXzkOlahOlvA__pTTHBmu__LATEST,或者其他一些无线技术定位文章。本文基于MacOS进行搭建,Windows环境会有一定的差异。另外,不同版本的SDK在使用的过程中,也会有一些差异。

硬件:SimpleLink CC26x2R LaunchPad && BOOSTXL-AoA

CC26x2R开发板在RTLS(Real-time Locating System)系统中充当定位节点,本身就内置单根天线,但是单天线的节点不足以满足RTLS的定位需求,所以需要将开发版外接BOOSTXL-AoA,以达到扩展节点天线数目的目的。

软件安装

1、配置Python 3.7环境,教程:https://pythonguidecn.readthedocs.io/zh/latest/starting/install3/osx.html, 如果下载缓慢,可以为homebrew配置国内镜像如:阿里云、中科大等。

2、下载SimpleLink CC13x2/26x2 SDK,需要注册TI账号,注册完成后即可下载,下载之前,TI会询问你SDK的用途,选择民用Civil即可。下载地址:http://www.ti.com/tool/download/SIMPLELINK-CC13X2-26X2-SDK.

3、Code Composer Studio (CCS),下载地址:https://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html, 如果是在MacOS上进行开发,建议下载9.20版本,原因后面解释。

4、Uniflash,下载地址http://www.ti.com/tool/UNIFLASH.

二、RTLS

1、RTLS系统框架

定位系统包含4部分:Node Manager,Master,Slave,Passive。Node Manager是运行在PC端的软件(第4小节第五小节介绍),CC26x2R开发板扮演Master,Slave,Passive角色(第二小节介绍)。

关于Master,Slave,Passive详细介绍可以参照官网说明,以下只做简要的介绍:

Master

  • 与Slave端建立连接,并且讲连接链路的参数(地址信息,时钟精度,CRC等)传递给PC端。

  • 与外围设备通过BLE链路分享AoA参数。

  • 进行I/Q采样。

  • 向Slave端发送指令,使得Slave端发送AoA packets。

Slave

  • 在BLE协议中扮演外围设备。

  • 通过CTE发送AoA packets到Master端。

Passive

  • 可以通过CTE接收数据包,进行I/Q采样。

  • 监听Master和Slave之间的连接链路。

2、硬件程序编译

打开CCS,分别导入已经下载好的SDK(simplelink_cc13x2_26x2_sdk_3_40_00_02/examples/rtos/CC26X2R1_LAUNCHXL/ble5stack/)中的rtls_master, rtls_passive,rtls_slave 三个例程。

编译完成之后,在工程文件夹目录下的Debug目录下,会生成.out和.hex的文件,这两个文件选其一即可,使用UniFlash烧录到硬件中。

3、程序烧录

将Boards通过USB串口连接到PC端,UniFlash会自动检测到设备以及相应的端口号,然后start,找到刚刚生成的.out文件,Load Image完成烧录。(依次将rtls_master, rtls_passive,rtls_slave 三个例程编译产生的.out文件烧录到Boards中)

4、运行可视化 Demo

TI在最新的SDK中为开发者提供了可视化的UI界面,使得开发更加友好。TI也保留了以前的命令行操作,对于我这种小白来说,一开始入手,还是先选择可视化的UI界面。

在终端中输入以下指令:

cd /Applications/ti/simplelink_cc13x2_26x2_sdk_3_40_00_02/tools/ble5stack/rtls_agent/rtls_uichmod 777 rtls_ui_macosrtls_ui_macos

运行后,在电脑的默认浏览器中就会打开UI界面:

系统并没有识别出开发板,并且显示开发板不可用"N/A"。这是因为我们在使用CCS编译程序时,CCS会自动检测并更新XDS110固件的版本,打开终端,输入如下指令:

cd /Applications/ti/ccs920/ccs/ccs_base/common/uscif/xds110xdsdfu -e

使用xdsdfu工具查看固件版本是3.0.0.7,这个问题困扰了我很久,我在TI E2E论坛上找到了类似问题https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/p/875870/3243366,我推测这个问题是和操作系统以及固件版本有关。在Windows上,开发板的固件版本即使在3.0.0.7,也依然可以被系统识别;但是在MacOS上,最新的固件版本则不可以支持,所以需要讲固件版本恢复到之前的老版本,所以这也为什么是在开头的时候,我建议大家下载CCS9.2,而不是下载最新的CCS,在CCS9.2中,我们可以使用xdsdfu工具将固件恢复到3.0.0.5。

xdsdfu -mxdsdfu -f firmware.bin -r

然后再使用xdsdfu -e 来查看现在的固件版本,

之后,重新运行可视化命令,Get Start后,自动识别PC连接的开发板,并显示开发板的属性:

5、运行非可视化Demo

a、创建python虚拟环境

cd /Applications/ti/simplelink_cc13x2_26x2_sdk_3_40_00_02/tools/ble5stack/rtls_agent/python3 -m venv .venv

在当前目录下,新建了一个.venv文件,此文件是隐藏文件夹,使用快捷键"shift+command+."查看。

source .venv/bin/activate

然后,打开package.sh,将第三行的代PYTHON3=python3.7修改为PYTHON3=python

在终端继续运行以下命令:

package.sh -c -b -u -i

然后在当前目录下新建requirements.txt,

打开txt,输入以下内容,

construct==2.9.45
websockets==7.0
pyserial==3.4

requirements.txt存储的是python的外部依赖包名称,然后使用pip进行安装,

python -m pip install -r requirements.txt

这里,如果下载失败,就重新下载几次,直到成功为止。

打开examples目录下的rtls_example_with_rtls_util.py文件,找到定义设备端口号的地方,并修改

devices= [{"com_port": "/dev/cu.usbmodemL1100ABP1", "baud_rate": 460800, "name": "CC26x2 Master"},{"com_port": "/dev/cu.usbmodemL1100ADL1", "baud_rate": 460800, "name": "CC26x2 Passive"},       ]

然后,在终端中继续运行以下指令,就可以在终端中就可以查看打印的日志信息了。

python -u examples/rtls_example_with_rtls_util.py

三、TI Cloud

CCS+SDK+UniFlash一共大约3.5G,并且CCS编译程序时所占用的内存资源很大,如果有同学电脑存储资源有限,不想下载这么大的开发工具,可以选择TI Cloud云开发工具,集成了CCS,UniFlash等开发工具以及Resource Explorer等资源库,可以满足一些基本的硬件开发。详见https://dev.ti.com/.


关于开发板的其他功能开发,将在后面章节会继续详解。

基于SimpleLink CC26x2R LaunchPad的RTLS实时定位系统搭建相关推荐

  1. 2022-2028全球与中国实时定位系统(RTLS)市场现状及未来发展趋势

    本文研究全球及中国市场实时定位系统(RTLS)现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中国.日本.东南亚和印度等地区的现状及未来发展趋势. 2021年全球实时定位系统 ...

  2. TREK1000概述--实时定位系统

    简介 用于双向测距(TWR)RTLS(实时定位系统)的IC评估套件,使用户能够在基于各种拓扑结构的RTLS应用,用例中评估DecaWave的DW1000超宽带(UWB)IC的性能. DW1000的卓越 ...

  3. UWB高精度实时定位系统

     Ubisense 高精度实时定位系统 系统构成:    iLocateTM UWB定位系统采用无线超宽带UWB技术,构建了革命性的高精度实时定位系统RTLS,该系统在传统的应用环境中稳定达到15cm ...

  4. 你今天怎么这么好看——基于深度学习的大型现场实时美颜

    Photo from BoredPanda 美颜是当下直播甚至是所有形式对外展示的一个必备条件.手机端的美颜就像私人化妆师,能够帮助我们实现各种心仪的效果. 而大型娱乐节目一般都是提前进行录制,然后进 ...

  5. flink实时同步mysql_基于Canal与Flink实现数据实时增量同步(一)

    点击上方蓝色字体,关注我 canal是阿里巴巴旗下的一款开源项目,纯Java开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 准备 配置 ...

  6. echarts折线图怎么从y轴开始_基于echarts的双y轴实时更新折线图

    一款基于echarts的双y轴实时更新折线图效果,页面加载后开始自动更新数据并绘制对应的折线图,可以点击右上角的按钮:显示数据视图.刷新数据和将数据存储为png的图片. 查看演示 下载资源: 46 次 ...

  7. 基于WinSvr2012共享文件夹的Hyper-V实时迁移之二文件服务器及迁移用虚拟机的创建...

    本章节接续基于WinSvr2012共享文件夹的Hyper-V实时迁移之一实时迁移简介及拓扑说明. 在本章节中,将图文方式讲述文件服务器的创建,以及迁移用虚拟机的创建,值得注意的是,无论是文件服务器还是 ...

  8. 大禹电子:超声波小型水声通信机可用于水下实时定位系统

    小型水声通信机用于在全海域进行无线数据传输,可用于海洋环境监测.潜水娱乐.施工作业.两栖作战.水下无人潜航器等水下通讯网络建立以及许多军事方面应用.该Modem使用多种先进的抗噪系统,中低速数据传输, ...

  9. 篡改计算机网络,基于TCP协议的网络数据实时篡改.doc

    基于TCP协议的网络数据实时篡改 基于 TCP 协议的网络数据实时篡改 金 瓯,施 勇,薛 质(上海交通大学信息安全工程学院,上海 200240)[摘 要]首先对网络数据实时篡改作了定义,指出攻击者介 ...

  10. ROS : Navigation 基于碰撞传感器、悬崖传感器的实时避障 [kobuki]

    ROS : Navigation 基于碰撞传感器.悬崖传感器的实时避障 [kobuki] 话题消息 碰撞传感器 悬崖传感器 点云数据 传感器详细信息 基于碰撞传感器.悬崖传感器的实时避障 转点云数据源 ...

最新文章

  1. 水平导航菜单(DIV+CSS)
  2. NYOJ 648 数字1的数量
  3. 【Python】简约而不简单|值得收藏的Numpy小抄表(含主要语法、代码)
  4. linux+mysql登录日志_Linux查看登录日志
  5. libevent evhttp学习——http客户端
  6. Python base64编码解码
  7. 运行Python时出现SyntaxError: EOL while scanning string literal解决方法
  8. Linux下高速缓存DNS的配置
  9. python 判断点在随机多边形内_Python确定散点是否在多边形内,python,判断,内部
  10. 2018年A题高温作业专用服装的设计论文与代码
  11. Ovi Store标志着App store模式大战正式开启
  12. 有源光网络VS无源光网络
  13. html header设置语言,html5 header标签 html header css布局教程
  14. 阿里巴巴面试算法题目:25匹赛马,5个跑道,也就是说每次有5匹马可以同时比赛。问最少比赛多少次可以知道跑得最快的5匹马
  15. 北京最新城市总体规划草案
  16. python ip地址处理_Python学习笔记-IP地址处理模块Ipy
  17. 什么是注意力机制及其应用(self attention)?
  18. PS做以图片为文字背景
  19. 【OpenCV】边缘检测:Sobel、拉普拉斯算子
  20. 6个简单好用的收件箱清理及管理工具

热门文章

  1. iphone图片编辑画笔_iPhone手机怎么编辑图片?还不知道的话真的要了解一波了~...
  2. L3立法试水,为自动驾驶产业带来什么?
  3. 关于Cookie和Session
  4. 黑客到底有多黑-黑客群体构成,技术起源概述
  5. python ndarray append_Python中的numpy.append()
  6. java append()_append()方法的坑
  7. 华大单片机-HC32L13X系列芯片OPA配置-芯虎论坛
  8. js超简单实现图片旋转
  9. 北京立交桥---- “迷桥”经历和不方便后悔
  10. EDM营销解读[转载]