STM32F1实现GPS户外导航+语音播报(1、功能篇)

前言:

        编者能力有限,实物于2023年四月份开始做,需要在5月上旬完成,中间还有很多杂七杂八的事情需要处理,能在规定的时间完成属实不易,算法上有待改进。原计划抽时间6月份把文章整理出来以供参考和阅读,却一拖再拖弄到了现在,这篇文章会分为功能篇代码篇问题篇来还原制作的所有过程,分别讲述机器人的功能、机器人如何制作、机器人制作工程中遇到的问题以及编者制作时遗留的问题等等。如果该篇文章反响好的话我会尽快更新剩余两篇的,反之则抽时间更新吧,还希望大家能够多多支持。

一、硬件部分

1、机器人硬件

       ① TB6612四路电机驱动

       ② 3S电池

       ③四个510霍尔编码器电机

       ④ATK-IMU901模块(正点原子十轴陀螺仪)

       ⑤ATK-1218-BD模块(GPS与北斗双模)

       ⑥2.8寸LCD屏幕(便于读取各类参数)

       ⑦STM32F103ZET6开发板

       ⑧ASRPRO最小系统板(可以不用,仅用来播报语音)

2、机器人主控芯片

        机器人选用的芯片为STM32F103ZET6。这款芯片在F1系列算是性能靠前的了,拥有144个IO口以及8个定时器,512KBFlash等等,这里就不一一介绍了。实际做完后发现,只要是有8个定时器的F1系列的芯片都能做出来,这里是板子上刚好有一个2.8寸屏幕接口便于观察一系列数据(直插即可根本不用接线),想节省成本的小伙伴可以考虑STM32F103RCT6系统板。

3、核心思想

        由于没有用到物联网相关的芯片,所以只能靠ATK-1218-BD反馈的经纬度坐标来实现导航这一功能。假定机器人现在的坐标为A,目的地坐标为B,A->B的过程我们可以认为是数轴上的1---2,直接靠两点实现导航是不可取的中间分析过程太为复杂。我们不妨对这个数轴进行细分,细分为1-1.1-1.2-...-1.9-2.0,我先导航到过程中的某一点,再由这一点导航到下一个点,如此循环下去就可以把很长的一段路程分为一小段一小段的短路程(为什么这么做会在第三篇文章进行详细的说明),这样处理起来会让机器人的导航过程更为精准和简便。具体过程就是靠ATK-1218-BD去打点(获取中间路段的坐标点和起始、终点的坐标点)储存在FLASH或者一个数组中,由ATK-IMU901反馈的偏航角数据来往下一个目的地逼近(由于硬件的原因只能靠逼近的方式来确认是否到达了下一个目的地地点),最终导航到目的地。

4、实物及效果展示

功能展示

         第一篇文章到这里就结束了,如果对文章感兴趣的话请多多支持,你们的支持是我更新最大的动力,后续文章会抽时间更新的。

第二篇文章链接:

STM32F1实现GPS户外导航+语音播报(2、代码篇上)-CSDN博客

不会使用IMU901的读者可参考这篇文章:

正点原子IMU901/IMU601陀螺仪如何进行正方向判断(标准库代码)-CSDN博客

  • 9
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
STM32单片机(也称为STM32微控制器)是一款广泛应用于嵌入式系统开发的单片机,具有丰富的外设功能。其中,DMA(直接内存访问)能够高效地管理数据的传输,ADC(模数转换器)用于模拟信号的采集和数字化转换,UART(通用异步收发传输器)用于串口通信。下面将介绍如何在STM32单片机实现DMA、ADC和UART的功能。 在进行实现之前,首先需要配置并初始化STM32单片机的相关寄存器。通过HAL库或标准外设库进行初始化配置,包括DMA控制器、ADC模块和UART模块。 首先实现DMA功能。在DMA配置中,设置所需的数据传输源地址和目的地址,以及传输长度。通过配置DMA通道,可以实现从ADC数据寄存器到内存或其他外设的数据传输。在DMA传输期间,单片机的CPU可以完成其他任务,提高系统效率。 然后是ADC功能。配置ADC模块的输入通道和采样周期。通过设置ADC控制寄存器,可以选择不同的模式(单通道、多通道、连续或单次转换模式等)。启动ADC转换后,模拟信号通过模拟输入引脚转换为数字值,并存储在ADC数据寄存器中。 最后是UART功能。通过配置UART的波特率、数据位数、校验位等参数,可以实现串口通信。使用UART发送函数将数据发送至目标设备,或使用接收函数接收来自目标设备的数据。 以上就是实现DMA、ADC和UART功能的基本步骤。在具体应用中,可以根据需求进行更详细的配置和功能扩展。掌握了STM32单片机的DMA、ADC和UART功能,可以实现更复杂的嵌入式系统应用,如数据采集、通信传输等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值