STM32智能小车循迹教程

简介: STM32智能小车循迹教程

前言

本篇文章将带大家学习STM32智能小车的循迹功能。

一、红外循迹模块工作原理及接线图

红外循迹模块工作原理

电路工作描述

以其中一路为例

image.png

TCRT5000传感器的红外发射二极管不断发射红外线,当发射的红外线没有被反射回来或者反射回的强度不够大时,红外接收管一直处于关闭状态,此时比较器LM393的2脚的电压低于3脚的电压,输出OUT1为低电平,LED1为点亮状态;当红外反射强度足够且被接收到时,比较器LM3932脚的电压大于3脚的电压,输出OUT1为低电平,LED1为熄灭状态。简单的可以理解为遇到黑线灯亮,遇到白线灯灭。


红外循迹模块和STM32的接线图

此红外循迹模块使用到了4个IO口分别接到了STM32的PA4~PA7。

image.png

二、cubeMX配置

将红外循迹的4个IO口都设置为上拉输入模式即可。


三、代码解析

find.c

#include "find.h"
#include "Moto.h"
extern TIM_HandleTypeDef htim3;
/*
函数功能:调节小车左右电机PWM
Left:左电机PWM
Right:右电机PWM
*/
void Moto_speed_set(int Left,int Right)
{
  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3, Right);
  __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4, Left); 
}
/*
函数功能:循迹
*/
void Find(void)
{
  //全是白线前进
  if((IO1_read()==0)&&(IO2_read()==0)&&(IO3_read()==0)&&(IO4_read()==0))
  {
    Moto_speed_set(800,800);
    car_move(0);    
  }
  //右边有黑线小车向左即左轮加速右轮减速
  else if((IO1_read()==0)&&(IO2_read()==1)&&(IO3_read()==0)&&(IO4_read()==0))
  {
    Moto_speed_set(800,0);
    car_move(0);    
  }
  //右边有黑线小车向左即左轮加速右轮减速
  else if((IO1_read()==1)&&(IO2_read()==1)&&(IO3_read()==0)&&(IO4_read()==0))
  {
    Moto_speed_set(800,0);
    car_move(0);    
  }
  //右边有黑线小车向左即左轮加速右轮减速
  else if((IO1_read()==1)&&(IO2_read()==0)&&(IO3_read()==0)&&(IO4_read()==0))
  {
    Moto_speed_set(800,0);
    car_move(0);    
  }
  //左边有黑线小车向右即右轮加速左轮减速
  else if((IO1_read()==0)&&(IO2_read()==0)&&(IO3_read()==1)&&(IO4_read()==0))
  {
    Moto_speed_set(0,800);
    car_move(0);    
  }
  //左边有黑线小车向右即右轮加速左轮减速
  else if((IO1_read()==0)&&(IO2_read()==0)&&(IO3_read()==1)&&(IO4_read()==1))
  {
    Moto_speed_set(0,800);
    car_move(0);    
  }
  //左边有黑线小车向右即右轮加速左轮减速
  else if((IO1_read()==0)&&(IO2_read()==0)&&(IO3_read()==0)&&(IO4_read()==1))
  {
    Moto_speed_set(0,800);
    car_move(0);    
  }
  //全是黑线停车
  if((IO1_read()==1)&&(IO2_read()==1)&&(IO3_read()==1)&&(IO4_read()==1))
  {
    Moto_speed_set(0,0);
    car_move(2);
  }
}

find.h

#ifndef _FIND_H_
#define _FIND_H_
#include "main.h"
#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned int
//红外循迹IO口定义
//传感器从右到左  IO1 IO2 IO3 IO4
#define IO1_read() HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_4)
#define IO2_read() HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_5)
#define IO3_read() HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_6)
#define IO4_read() HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_7)
void Find(void);
void Moto_speed_set(int Left,int Right);
#endif

总结

循迹代码已经贴出希望大家可以好好理解一下循迹算法的编写。

相关文章
|
9月前
|
传感器 数据采集 人工智能
基于STM32单片机的智能晾衣架设计与实现【开源免费】
随着智能家居的发展,传统晾衣架已经难以满足现代家庭对便捷、智能化的需求。基于STM32单片机的智能晾衣架能够实现自动升降、光照检测、风干控制、远程控制等功能,为家庭用户提供更智能、更舒适的晾晒体验。本项目以STM32F103C8T6为核心控制器,通过电机驱动模块、光照传感器、温湿度传感器、蓝牙/Wi-Fi通信模块,实现晾衣架的自动化与远程控制。
基于STM32单片机的智能晾衣架设计与实现【开源免费】
|
9月前
|
传感器 机器人 物联网
【免费开源】基于STM32的蓝牙小车/智能小车项目详解(附源码)
通过本项目,你可以系统掌握STM32外设控制、蓝牙通信、电机驱动和传感器数据处理技术,实现一辆可远程控制并具备避障功能的智能小车。该项目具有高度可扩展性,后续可增加循迹、自动寻路、摄像头等高级功能。
2302 43
【免费开源】基于STM32的蓝牙小车/智能小车项目详解(附源码)
|
9月前
|
传感器 人工智能 监控
【免费开源】基于STM32的智能宠物喂食系统设计与实现(全流程技术详解)附源码
本项目基于STM32F103C8T6设计实现智能宠物喂食系统,支持定时喂食、远程控制、余粮检测、语音提示等功能,结合传感器与物联网技术,提升宠物喂养智能化水平,适用于家庭及嵌入式课程实践。源码开源,具备良好扩展性。
【免费开源】基于STM32的智能宠物喂食系统设计与实现(全流程技术详解)附源码
|
9月前
|
传感器 数据采集 安全
STM32与传感器技术结合打造智能行李箱 | 自动跟随与报警系统【免费开源】
本项目成功实现了基于STM32的智慧行李箱设计,采用了超声波测距、重力传感器和报警系统等技术,打造了一款智能且安全的行李箱。通过超声波测距模块,行李箱能够实时跟随主人并根据距离变化调整电机的速度与方向,确保小车始终保持与主人的相对位置。此外,重力测量模块能够检测行李箱内物品的重量,若超重则及时通过LED和蜂鸣器提醒主人,避免物品过重对行李箱造成损害或不便。
STM32与传感器技术结合打造智能行李箱 | 自动跟随与报警系统【免费开源】
|
存储
【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程(二)
【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程(二)
647 0
|
存储 芯片
【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程(一)
【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程(一·)
774 0
|
传感器 数据采集 监控
基于阿里云MQTT服务,设计一个STM32的智能光伏控制系统
这篇文章详细介绍了利用STM32F103C8T6单片机实现光伏发电系统的关键技术。全文分为四章:第一章阐述了光伏发电的背景、意义及应用场景,强调其在绿色能源领域的重要性。第二章介绍了如何通过STM32F103C8T6及光敏电阻和伺服电机实现光线追踪系统,详细描述了硬件选择、连接及使用HAL库编写的单片机程序。第三章讲解了最大功率点追踪(MPPT)的原理,并展示了如何利用STM32F103C8T6和相关传感器、DC-DC转换器实现MPPT功能。第四章描述了如何通过STM32F103C8T6与SIM7600CE 4G模块连接到阿里云MQTT服务,实现设备状态数据的远程传输和控制。本文提供了全面的硬
18444 5
|
算法
STM32CubeMX PID差速循迹小车
STM32CubeMX PID差速循迹小车
949 1
STM32CubeMX PID差速循迹小车
|
物联网 程序员 语音技术
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-3
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-3
|
传感器 语音技术
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-1
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结
STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结-1