发作品签到
标准版

UWB定位行驶小车

工程标签

4.3k
0
0
6

简介

UWB定位行驶小车,通过UWB定位实时获取坐标, 上位机根据坐标位置规划路径到终点,将偏差信息通过WIFI发送到小车,小车调节舵机转角。

简介:UWB定位行驶小车,通过UWB定位实时获取坐标, 上位机根据坐标位置规划路径到终点,将偏差信息通过WIFI发送到小车,小车调节舵机转角。

开源协议

Public Domain

创建时间:2023-06-16 17:19:02更新时间:2023-08-31 09:45:08

描述

项目说明

        视频链接:

https://www.bilibili.com/video/BV1Rh4y1g7G8

https://www.bilibili.com/video/BV1ko4y1J7MC

https://www.bilibili.com/video/BV1ps4y1y7U1

        利用超宽带(UWB)定位技术,实现对智能车位置的实时获取和定位。上位机进行路径规划,并通过WIFI将坐标偏差信息发送给智能车,实现导航和控制。

        系统使用了STM32F103RCT6作为智能车的主控芯片,通过舵机控制车辆的方向,H桥驱动电机旋转以实现车辆的前进和后退。编码器被应用于闭环控制,以确保车速的精确控制,使用ESP8266模块与上位机进行WIFI通信,实现了上位机对车辆的起跑和停止控制。

        下面分以下三个部分进行说明。

1.UWB基站与标签

        UWB代码没贴出来,因为是使用浩如科技的代码,自己太垃圾了,没移植成功官方的DEMO。其他部分都是自己一行一行敲出来的。

        UWB的基站摆放如下图所示,充电宝供电,离地高度1.5m以上,每两个基站相隔5m以上,附近尽量不要有大面积玻璃金属的墙壁等,减少干扰。UP亲测,5m以上的测距误差基本在10cm以内,5m以内的话误差确实很大,最大能有1m多。

xHM4HcpDP3TsIAQH9Jw2k6a2lSymUZ6iGVOQSAba.jpeg

图 1 UWB基站摆放示意图

        这几个基站中的其中一个要与电脑连接,通过串口,将所有基站测得的距离发送给上位机,上位机在解算出坐标位置,如下图2所示。

TisXT3aWhhvuLFVZdBGJQnsuYLyOGMFmXbt5JT6h.jpeg

图 2 UWB基站摆放示意图

            标签插在车上,定位车的位置,如下图3所示。

Wn39meZ7cXwyNjUuhratxDlPhAzKMhFri7XnJx7m.jpeg

图 3 UWB基站在车上

2.上位机

        首先打开热点,需要小车与电脑连接在同一个WIFI下。打开上位机后,首先在左侧更新基站的坐标和小车行驶的终点,如果是四个基站,则勾选上A3,如下图4所示。坐标纸上,绿线是规划的路径,蓝点是基站的位置。

eAIly6GU14XwT2bGrjnL0KDs19kIBJlWzrTZ48Tz.png

图 4 上位机图

        更新完基本信息后,需要选择串口号和波特率,还有端口号,确认选择后,打开设备,会提示成功与否,如下图5所示。这里有个小BUG,打开上位机之前要先插上设备,我上位机只在打开那一下扫描一下串口设备,所以打开之后再插上就不会被扫描到,由于本人太懒,没有改,就一直这么凑活使。

zyhtU29dzmSYrrJixW5cMfTm2te2swEegXeaibK7.png

图 5 上位机图

        提示:如果你WIFI通信不成功,可以检查一下你的防火墙。

        当有数据时候,解析出来的位置就会打印在坐标纸上,左下角的临时按键是假数据,如果你没有数据输入,你可以点击一下它,看到他打印线的效果。打印的是粗虚线,但是平时使用时,由于移动速度慢,一般都是实线的效果。如下图6所示。

7wceY7m5z5NoVTGJtQTqV3gCJtQ7Af0SNjleyzQP.png

图 6 位置轨迹图

        如下图7所示,可以上下左右移动图像,可以放大缩小,可以清屏,清屏后,图像恢复初始大小的比例,坐标纸上的红色轨迹被清除,其他不变。

n6Fp6cLCf23vDt58QxUMXvB1yrkXeSGO3tHo3Zn6.png

图 7 上位机图

3.小车

        小车采用8.4V锂电池供电,供电电路板负责总体的供电,其负责降压5V、6V为系统供电,5V降3.3V为芯片供电,8.4V升12V为控制MOS开关,这里一个小BUG是NMOS做了上管,导致开驱动或者所需电流太大时,系统会重启,其实很大一部分原因也是因为降5V的DC-DC上的一个电阻太大,不过不影响系统的正常工作,还是太懒,就没改,一直凑活使。

        主控板上为STM32F103RCT6及其外设接口。因为作品已经上交,这些都是之前做的老图。

        具体模块都是什么,如下图8的标注。

YxftkmVVWnkEq7DdYQMEyVLNpqqHWE2jS1hvUQii.jpeg

图 8 小车模块示意图

软件说明

        差不多就是这个流程,画的不是很好,和实际代码的思路有点出入。测速、陀螺仪测角度和PWM的调节我都放在了定时器中断里。

aMCphFRvLIiO5hUmuGZeyIOJPKUag0rScpTq1AUN.png

图 9 上位机代码流程图

3sC0RetTNcovRU68aX9lNKMMD950H2lCtYuf6vp9.png

图 10 小车软件流程图

      下图11所示的代码为调速,将pwmduty设为常数,就可以不闭环了。

zHyEEgDMfGbtHM7MIAtgMrknoR5rAWggJMGYta46.png

图 11 PID调速代码

        没敢吧速度放太快,怕小车反应不及时。因为我怕单片机运算量太大导致它运行出问题,但是在电脑上运行好在发送给单片机有延时,另外数据量太大也会出现丢数据的问题。建议大家之后可以用高性能单片机,或者多个单片机,把大部分运算放单片机里,这样小车运行起来更顺畅。

项目属性

        本项目为首次公开,为本人原创项目。为本人的毕业设计,在此之前,项目未参加任何比赛。代码一堆屎山,仅供参考。

 

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
Car.zip
231
2
QtSerialTCP.zip
577
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航