源码分享:基于STM32的智能循迹小车

本项目主要有三个模块包括信号检测模块、主控模块、电机驱动模块。信号检测模块采用光电传感器,用来对黑线进行检测。主控电路采用STM32F103C8T6单片机为控制芯片。电机驱动模块采用意法半导体的L298N专用电机驱动芯片,使用OLED显示行驶的路程和速度,单片机控制与传统分立元件电路相比,使整个系统有很好的稳定性。信号检测模块将采集到的路况信号传入STM32F103C8T6单片机,经单片机处理过后对L298N发出指令进行相应的调整。小车速度由单片机输出的PWM波控制。控制电动小车的速度及转向,从而实现自动循迹的功能。

一、总体设计

基于STM32平台实现智能循迹小车系统,含以下功能:

1、主要围绕STM32F103RBT6开展系统的控制实现设计;

2、采用红外对管传感器,自动检测循迹路线并反馈给主控中心;

3、在OLED屏上显示实时路程、实时速度;

4、通过红外发射按键可控制小车前后前进与左右转弯;

5、采用PWM方式控制电机的供电模式,当偏离路线差值较大时,通过调整左右电机使用 PWM 控制小车进 行差速转弯,当小车偏向左边时降低右边小车车轮达到右转,当小车偏向右边时降低左边小车车轮达到左转。

二、硬件电路

(1)stm32最小系统

   为了能够实现对数据进行高速准确的处理,本系统采用STM32F103C8T6作为主控核心。

图片

(2)循迹检测模块

   TCRT5000传感器的红外发射二极管不断发射红外线。

  当发射出的红外线没有被反射回来或被反射回来但强度不够大时(即检测到黑线),红外接收管一直处于关断状态,此时模块的输出端为高电平,指示二极管一直处于熄灭状态;

  被检测物体出现在检测范围内时红外线被反射回来且强度足够大(即检测到白线),红外接收管饱和,此时模块的输出端为低电平,指示二极管被点亮。

图片

(3)电机驱动模块

  由于STM32管脚直接输出的功率太小,系统若要控制电机使小车转弯和执行,就需要采用双路大电流3AL298N 电机驱动模块作为电机驱动电路。

  L298N是一种电压很高、电流很大的电机驱动芯片,逻辑电路电平支持常规的3V至5.5V。它的工作时的操作电压最高的时候可达到46V;输出的电流最高的时候可达到3A;在控制端输入PWM斩波信号能够进行调速;左右输出回路均具备使能,正转,反转及停止状态能独立控制,具有灵活的电源配置,支持3V~5.5V逻辑电路电平。

图片

图片

L298N模块信号示意图

   上图中P6,P3为模块控制端,分别控制P5,P4两个输出端的信号。IN为逻辑控制信号,EN是使能信号。P1,P2为电源控制端子,P2为电源接入端,其中VPOWER及GND提供P4,P5输出电源,VIN提供板上LDO(三端稳压器)电源,如使用板上LDO,需将VIN及VPOWER连接,并且使用短路帽将P1的3V3与VCC相连,并且要注意的是,此时的最大输入电压为12V。

(4)液晶显示模块

   使用的是OLED,即有机发光二极管,又称为有机电激光显示。

图片

图片

 该显示屏使用的是IIC通信协议,一个 I2C 总线只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。数据线即用来表示数据,时钟线用于数据收发同步。

(5)红外控制模块

   通用红外遥控器,采用的是 NEC 编码格式。在使用前一定要记得给红外遥控器上电池,还有红外遥控器要结合红外接收模块使用,它负责将接收红外遥控器发射过来的信息并将其解码成十六进制码,这样才能实现既定的通信。

图片

红外遥控器

图片

红外接收器

三、软件设计

左右电机驱动IN1、IN2、IN3、IN4分别接PA4、PA5、PA2、PA3。

循迹模块,3个光电对管,左光电接PA10 ,中光电接 PA11,右光电接 PA12 。

红外遥控接收器 接PA1 端口。

图片

软件工程文件夹目录结构如下:

图片

四、成品效果

图片

图片

免费开源《基于STM32的智能循迹小车》,含stm32 cube完整工程、c程序源码。

下载地址:   https://download.csdn.net/download/u011818860/89495381

  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有码甲

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值