基于stm32f103vc的智能小车——超声波避障部分

智能小车的超声波避障实现过程

在硬件综合训练这门课程中,我们以小组的形式完成了基于stm32f103vc的智能小车的制作,实现的主要功能有:遥控、避障、语音控制、人脸识别以及舵机控制摄像头旋转。其中我主要负责的是stm32板的开发,以下是超声波避障的实现过程。

  1. 超声波模块的介绍
    我们所用的是HC-SR04超声波测距模块,它可以测量 3cm – 4m 的距离,精确度可以达到 3mm。
    HC-SR04 实物图
  2. 超声波模块的工作原理
    (1)采用IO口TRIG触发测距,给至少10us的高电平信号;
    (2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
    (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速/2;
    (4)本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测,即可以达到你移动测量的值。
  3. 超声波模块电路图
    在这里插入图片描述
  4. 超声波模块时序图
    在这里插入图片描述
  5. 超声波模块实现代码
    时钟与GPIO初始化:
void iniTim()
{
   
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructer;
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
 	TIM_TimeBaseInitStructer.TIM_Period=9999;// 定时周期 .1s 100ms overflow
 	TIM_TimeBaseInitStructer.TIM_Prescaler=71;  // 72 000 000 1mhz 1us
 	TIM_TimeBaseInitStructer.TIM_ClockDivision=0; 
 	TIM_TimeBaseInitStructer.TIM_CounterMode=TIM_CounterMode_Up;
 	TIM_TimeBaseInitStructer.TIM_RepetitionCounter = 0;
 	TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructer);

	TIM_Cmd(TIM2,ENABLE);
 	TIM_ITConfig(TIM2,TIM_IT_Update
  • 26
    点赞
  • 216
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值