UWB DWM1000 跟随小车原理---一张图演示

更多内容参考论坛:bphero.com.cn

转载于:https://www.cnblogs.com/tuzhuke/p/10513013.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KDWM1000 是一款Local Positioning System (LPS)的开发模块,这款模块主要结合了自己之前做的SmartIMU与现成的 DWM1000 模块,目前版本 v1.4,大致的功能都验证过没问题。 该KDWM1000模组集成了 MPU9250(加速度计、陀螺仪、磁力计)、LPS25HB(气压计) 10DOF 的传感器,并采用 ARM CortexM4F STM32F411CE 来控制,除了传感器与 DWM1000 模块外,还有可控制的三个 RGB LED、一个电源开关、按键与一个 MicroUSB 接口,此外将其他没有使用到的脚位都拉到 2.54mm 的排针上面,可以直接插在面包版上做开发,预计之后要透过 IMU 与 UWB 来实现空间中的定位,并尝试将其结合至飞行器上,实现成另一款飞控板。 KDWM1000模组PCB结构: KDWM1000模组PCB 3D截: KDWM1000模组硬件: 控制器 : STM32F411C 48Pin 100MHz DSP FPU 感測器 : MPU9250 + LPS25HB UWB : DecaWave DWM1000 PCB 尺寸 : 25.4 x 45.72 mm Ultra-wideband(UWB) 是一种无载波通信技术,采用 nanosecond(ns) 至 picosecond(ps) 级的极短脉冲信号来传递数据,耗电量低,因为脉冲极短(光速大约30cm/ns),所以对于绕射、反射干扰影响较小,电波讯号穿透性较佳,理论上可以实现较精确的定位。 KDWM1000 UWB 部分使用的是 Decawave 开发的 DWM1000 模块,DWM1000 模块基本简介: 符合 IEEE802.15.4-2011 UWB 规范 在实时的定位系统中,可以达到室内 10cm 的精度 资料传输速度高达 6.8 Mb/s 通讯距离达 300m 支持高密度 tag,20m 半径内可达 11,000 对多路径与衰减具有高抗干扰能力,使其在高衰减环境亦可进行可靠的通讯 功耗低,可以使用电池工作在长时间下 体积小,容易结合至其他 RTLS 与 WSN 系统 集成天线的一款模块 更详细的说明与功能可以参考官方的相关资料:https://www.decawave.com/products/dwm1000-module DWM1000模块实物截: ,实体片↓
UWB是一种无线通信技术,DWM1000是一种UWB模块,可以用于测距、定位等应用。在跟随小车应用中,通常使用两个DWM1000模块,一个放在小车上,一个放在地面上。下面是UWB DWM1000跟随小车原理和代码解析。 1. 原理 UWB DWM1000跟随小车原理如下: 1)通过UWB模块测量小车与地面的距离,得到距离数据。 2)将距离数据传输给控制器,控制器计算小车与地面的相对位置和方向。 3)根据相对位置和方向,控制器调整小车的速度和方向,使小车跟随地面。 2. 代码解析 UWB DWM1000跟随小车的代码如下: ```c++ #include <DWM1000.h> // 定义UWB模块对象 DWM1000 uwb; // 定义小车位置、速度、方向变量 float car_x, car_y, car_v, car_h; void setup() { // 初始化UWB模块 uwb.setup(); // 初始化小车位置、速度、方向 car_x = 0; car_y = 0; car_v = 0; car_h = 0; } void loop() { // 获取UWB距离数据 float dist = uwb.getDistance(); // 计算小车相对位置和方向 float car_dx = dist * sin(car_h); float car_dy = dist * cos(car_h); float car_dh = atan2(car_dy, car_dx); // 更新小车位置、速度、方向 car_x += car_dx; car_y += car_dy; car_v = dist / uwb.getInterval(); car_h += car_dh; // 控制小车运动 controlCar(car_v, car_h); } void controlCar(float v, float h) { // 控制小车运动,使其跟随地面 } ``` 代码中,我们先定义了一个UWB模块对象uwb,然后在setup函数中初始化UWB模块和小车位置、速度、方向。在loop函数中,获取UWB距离数据,计算小车相对位置和方向,更新小车位置、速度、方向,最后调用controlCar函数,控制小车运动。其中,controlCar函数需要根据小车速度和方向来控制小车运动,使其跟随地面。 以上就是UWB DWM1000跟随小车原理和代码解析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值