当前位置: 首页 > news >正文

第六章 Freertos智能小车循迹模块

        本文是【Freertos实战】智能小车的最后一个模块"循迹模块"。当手机APP切换到循迹模式下,小车会循黑线,不断走动。如果是突然跳转看到这篇的朋友们,可以通过这篇文章进行跳转回顾前期的内容:【Freertos实战】零基础制作基于stm32智能小车

      1.循迹模块寻迹模块TCRT5000

        模块简介

        TCRT5000是一款基于红外对管(红外发射管 + 红外接收管)的低成本循迹 / 避障模块,广泛应用于机器人循迹小车、智能车等场景。其核心原理是利用红外光在不同颜色表面(如黑白线)的反射率差异,检测障碍物或轨迹线条,输出数字信号供单片机处理。

        选取两个该循迹模块,分别用热熔枪固定在小车的两侧 ,当左侧模块检测到黑线:小车右转调整。当右侧模块检测到黑线:小车左转调整。 

        接线方式

TCRT5000 引脚单片机(STM32)
VCC5V 或 3.3V(需确认模块兼容电压)
GNDGND
DOGPIO 引脚(左侧循迹模块接PB4、右侧循迹模块接PB5)
AO悬空

        硬件程序设计 

#ifndef __SENSOR_H
#define __SENSOR_Htypedef struct Get_Sensor{int Left;int Right;
}Sensor;void Sensor_Init(void);
void Sensor_GetNum(Sensor *temp);#endif

        将PB4、PB5引脚置为上拉输入,同时在Sensor_GetNum传入指针,来获取两个循迹传感器的状态,从而配合电机控制完成循迹的效果

#include "stm32f10x.h"                  // Device header
#include "Sensor.h"void Sensor_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);		GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);				
}void Sensor_GetNum(Sensor *temp)
{temp->Left = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_4);temp->Right = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);
}

         2.主程序逻辑

#include "Sensor.h"//循迹/*
*************************************************************************
*                             全局变量
*************************************************************************
*//*获取循迹传感器的状态,只在循迹模式下生效*/Sensor sensor;/* 循迹模块 */Sensor_Init();Sensor_GetNum(&sensor);//获取循迹传感器的状态if(sensor.Left == 1 && sensor.Right == 0)//当左循迹传感器有反应时,小车向左转{Motor_Leftward(40);//小车向左转vTaskDelay(70);}else if(sensor.Left == 0 && sensor.Right == 1)//当右循迹传感器有反应时,小车向右转{Motor_Rightward(40);//小车向右转vTaskDelay(70);}else{Motor_Forward(40);//当小车居于中间位置时,前进vTaskDelay(70);}Motor_Stop();

相关文章:

  • 2025.05.21华为暑期实习机考真题解析第二题
  • jenkins数据备份
  • 改写视频生产流程!快手SketchVideo开源:通过线稿精准控制动态分镜的AI视频生成方案
  • Spring Boot AI 之 Chat Client API 使用大全
  • Spring Boot + +小程序, 快速开发零工市场小程序
  • 游戏引擎学习第303天:尝试分开对Y轴和Z轴进行排序
  • GPU加速Kubernetes集群助力音视频转码与AI工作负载扩展
  • 野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(四)安装RKNN Toolkit Lite2
  • DataGridView中拖放带有图片的Excel,实现数据批量导入
  • 【JAVA】比较器Comparator与自然排序(28)
  • 【Java】泛型在 Java 中是怎样实现的?
  • PostgreSQL 日常维护
  • VLA模型:自动驾驶与机器人行业的革命性跃迁,端到端智能如何重塑未来?
  • 【C++】移动语义与move()实用性教学
  • Docker网关冲突导致容器启动网络异常解决方案
  • 蓝桥杯3503 更小的数
  • Podman(Pod Manager)简介
  • Zabbix开源监控的全面详解!
  • Docker面试题(1)
  • ADB常用语句
  • 哈尔滨网站开发渠道/电话营销销售系统
  • 国际业务网站有哪些/现在最好的营销方式
  • 广告公司微网站建设/网络营销的重要性
  • 嘉兴网站建设网站/郑州官网网站优化公司
  • 企业大型网站开发需要多少钱/推广员网站
  • 网站实名认证中心/怎么创建一个网站