基于STM32F407的智能小车循迹避障设计

智能控制系统设计 课程设计(学年论文)

摘要:本文基于STM32微型处理器来对智能小车的硬件系统进行设计,用具有32位高频率处理器STM32F407ZET6作为本次智能小车系统的核心处理器,该芯片具有高速处理能力能在极短时间内处理大量运算数据,拥有多个通讯接口具有强大的扩展性。本次设计的智能小车以四轮式底盘的结构作为小车的搭载平台,系统上主要包括MCU主控电路、车轮电机驱动电路、力臂舵机驱动电路、循迹电路、避障电路等;以实现小车自动循迹、自动避障等。

关键词:舵机;红外;循迹;避障;STM32F407ZET6

引言

随着科技的飞速发展与进步,多学科融合已成为未来科学发展的必然趋势。智能机器人的应用在世界上越来越广泛,逐步在各个领域都有所涉及;在军事侦察、地质勘测、扫雷排雷等人类作业难度较大的领域以及对恶劣环境的监测工作中都有广泛的应用前景。智能小车作为智能机器人的一个分支集中运用了现代传感器技术、信息融合技术、自动控制等;本次设计的基于 STM32 循迹避障小车属于智能机器人中移动机器人的分支,该小车实现了对周围障碍物的感知并进行躲避,根据红外传感器、超声波传感器等相互配合统筹实现循迹避障功能。

一、系统的整体结构

该智能小车大体上可以分为六大组成部分:电源模块、微控制器模块、直流电机驱动模块、舵机转向模块、红外循迹模块和超声波模块。智能小车可以实现自动避障、循迹等功能。智 能小车以 STM32F407 单片机作为主控芯片,采用直流电机作为动力,通过 7.4V 电池供电。电源模块给系统的各模块供电,通过设计频率与占空比可调的PWM波发生器控制小车速度,控制舵机实现小车转向,利用光电传感器实现小车寻迹功能,同时利用超声波传感器实现小车避障。小车系统的总体设计如下图所示。

二、智能车硬软件设计

(一)电机驱动模块

1. 电机驱动原理

STM32F407电机驱动模块的原理涉及到电机的控制和STM32F407微控制器的相关功能。通常,电机驱动模块包含了与STM32F407连接的电机驱动芯片,用于控制电机的速度和方向。

控制信号方面:STM32F407通过其GPIO(General Purpose Input/Output)引脚或其他专用的定时器/计数器输出控制信号,这些信号用于控制电机的速度和方向。对于直流电机,可以使用PWM信号控制电机速度;对于步进电机,通常需要控制相序的信号。

PWM控制:对于直流电机,通常使用PWM信号来控制电机的转速。STM32F407的定时器/计数器可以生成PWM信号,通过改变PWM占空比,可以调整电机的平均电压,从而控制电机的速度。

方向控制:通过控制特定的GPIO引脚或使用额外的引脚,STM32F407可以改变电机的方向。例如,通过设置不同的引脚状态,可以让电机正转或反转。

2. 软件实现流程

(1)利用定时器产生可控方波

需要注意的是设置PWM输出引脚时要将引脚复用到定时器

(2)将电机控制引脚设置成推挽输出模式

(3)改变占空比即可改变速度

这里通过调用函数改变占空比即可改变调速 TIM_SetCompareN(TIMx, Compare2)

(二)舵机转向模块

1. 舵机的工作原理

舵机是一个微型的伺服控制系统,具体的控制原理可以用下图表示:

工作原理是控制电路接收信号源的控制脉冲,并驱动电机转动:齿轮组将电机的速度成大倍数缩小,并将电机的输出扭矩放大响应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。模拟舵机需要一个外部控制器(遥控器的接收机或者单片机)产生脉宽调制信号来告诉舵机转动角度,脉冲宽度是舵机控制器所需的编码信息。舵机的控制脉冲周期 20ms,脉宽从 0.5ms-2.5ms,分别对应-90 度到+90 度的位置(对于 180°舵机)。如下图所示:

2. 舵机角度转向原理

如:20ms的时基脉冲,如果想让舵机转63度,就应该发生一个高电平为1.2ms,

周期为20ms的方波,duty=1.2/20=6% ,而定时器自动重装载寄存器arr的值

为 1000 ,所以令duty=60,时占空比才为60/1000=6%。

时基脉冲与舵机转动角度关系如下表所示:

时基脉冲

舵机转动角度

时基脉冲

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于STM32的智能小车循迹的流程图如下: 1. 初始化系统:初始化STM32的外设,包括引脚配置、时钟配置和中断配置等。 2. 初始化传感器模块:初始化小车循迹传感器模块,包括红外传感器、超声波传感器和陀螺仪等。 3. 检测循迹信号:读取循迹传感器模块的信号,通过ADC转换获得黑线和白线的差异。 4. 分析循迹信号:根据循迹传感器的输出信号,判断小车当前位置是否偏离轨迹。 5. 控制小车行动:根据循迹传感器的分析结果,控制小车的转向和速度,使其重新回到轨迹上。 6. 检测碍物:使用超声波传感器模块,检测小车前方是否有碍物。若有碍物,需要进行处理。 7. 处理:根据超声波传感器的距离值,判断碍物的距离和方向。根据碍物的位置,调整小车的转向和速度,碍物,保证行动安全。 8. 检测小车位置变化:使用陀螺仪传感器模块,监测小车的姿态和运动方向的变化。 9. 更新小车状态:根据传感器的输出值,更新小车的状态信息,如位置、姿态和速度等。 10. 实时控制和反馈:根据小车的状态信息,实时调整小车的转向和速度,并根据需要给予用户反馈信息。 11. 循环执行上述步骤:不断地重复上述步骤,以实现小车循迹功能。 12. 结束系统:结束STM32外设的使用,释放资源,完成循迹任务。 注意:以上流程图仅为简化描述,具体实现中可能存在更多细节和算法判断。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值