在这里插入图片描述


👨‍💻个人主页:@开发者-削好皮的Pineapple!

👨‍💻 hello 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 削好皮的Pineapple! 原创

👨‍💻 收录于专栏:C语言到基于STM32 的智能矿探小车


请添加图片描述

请添加图片描述

文章目录

    • 前言
    • 🎶一、小车循迹功能
      • 1.1 红外模块
    • 🎶二、小车循迹实现
      • 2.1 电平状态读取与对应关系
      • 2.2 红外模块GPIO配置
      • 2.3 循迹伪代码
        • 结束语🥇


前言

小车循迹功能的实现,包括红外模块的组成、接线方法、组装与调试技巧,以及通过读取GPIO引脚电平状态来控制小车行驶状态的循迹逻辑。掌握这些知识,能让矿探小车沿着指定路线行驶并在终点稳稳停住,为智能矿探小车的进一步开发奠定关键基础。


🎶一、小车循迹功能


1.1 红外模块

  • 功能:使矿探小车能够沿着指定的路线行驶,并且在终点处能够稳稳停住。
  • 组成
    • 红外中空板(大红外)1块

    • 在这里插入图片描述
      在这里插入图片描述

    • 红外探头(小红外)2个

    • 在这里插入图片描述

    • 10根杜邦线

  • 接线
    • 红外探头与红外中空板:
      • 红外探头的VCC接红外中空板的VCC
      • 红外探头的GND接红外中空板的GND
      • 红外探头的OUT接红外中空板的INx(1、2、3、4),两个探头接在中控板上的任意两组即可
    • 红外中空板与单片机:
      • 红外中空板的VCC接单片机的5V
      • 红外中空板的GND接单片机的GND(注意不要反接,接正确后指示灯D5会亮)
      • 红外中空板的OUTxINx)(1、2、3、4)接单片机的GPIO(不是4根都要连接,具体看红外探头和中空板的连接,选择两个即可)
  • 工作原理:正确连接好线之后,上电如果小红外发送的红外线遇到能够反射光线的障碍物(黑色物体不可以反射光线),则小红外会通过OUT输出一个低电平给中空板,并且对应的指示灯(D1、D2、D3、D4)会亮。
  • 组装:小红外用铜柱固定在小车前部,红外灯管朝下。
  • 经验分享
    • 调试好再组装。
    • 接好线上电,让红外探头探测光滑的平面,对应的指示灯应该要亮;如果不亮,可以调节对应的电位器从而调节红外探头的检测距离,直到调亮;如果调节怎么都调节不亮,请换一组。
    • 再让红外探头检测黑色物体,对应的指示灯应该熄灭;如果不熄灭,调节对应电位器,直到熄灭为止。
  • 最终的调试结果:红外探头靠近光滑平面,对应指示灯亮;远离或遇到黑色物体,对应指示灯熄灭。

🎶二、小车循迹实现


2.1 电平状态读取与对应关系

  • 读取对应GPIO引脚电平状态的函数:
    GPIO_ReadInputDataBit(GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin)
    
    • 参数:
      • GPIOx:指定GPIO组号
      • GPIO_Pin:指定引脚编号
    • 返回值:
      • 0 表示读取到的GPIO是一个高电平
      • 1 表示读取到的GPIO是一个低电平
  • 电平状态对应情况:
    • 红外探头检测到光滑地面时,会输出一个低电平给中空板,中控板通过OUTx/INTx传输给对应GPIO低电平。
    • 红外探头检测到黑线时,会反馈一个高电平给对应GPIO。

2.2 红外模块GPIO配置

  1. 时钟使能
  2. GPIO初始化为浮空输入

2.3 循迹伪代码

left right
if(left == 0 && right == 0)
{//小车前进
}
else if(left == 1 && right == 0)
{//小车左转
}
else if(left == 0 && right == 1)
{//小车右转
}
else if(right == 1 && left  == 1)
{//小车停止
}
结束语🥇

🔥 订阅专栏持续学习:C语言到基于STM32的智能矿探小车
💬 欢迎点赞、收藏、留言讨论,一起攻克嵌入式开发!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90648.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90648.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/90648.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ auto与 for循环

一、数组 #include <iostream> #include <vector> using namespace std; int main() {int vec[6] {1,2,3};for (auto num : vec) { /* num 是 int */ cout << "Hello, world!" << num <<endl;}return 0; }二、STL容器与迭代器 for 循…

【RK3568+PG2L50H开发板实验例程】FPGA部分 | ROM、RAM、FIFO 的使用

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 1.实验简介 实验目的&#xff1a; 掌握紫光平台的 RAM、ROM、FIFO IP 的使用 实验环境&#xff1a; Window11 PDS2022…

力扣-21.合并两个有序链表

题目链接 21.合并两个有序链表 class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode p1 list1;ListNode p2 list2;ListNode p new ListNode(0);ListNode cur p;while (p1 ! null && p2 ! null) {if (p1.val > p2.val) …

MoE混合专家模型:千亿参数的高效推理引擎与架构革命

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 从稀疏激活到多模态协同的智能计算范式 &#x1f9e9; 一、核心思想与…

【论文笔记】BlockGaussian:巧妙解决大规模场景重建中的伪影问题

论文地址&#xff1a;https://arxiv.org/pdf/2504.09048 大规模场景的重建方法不仅仅对于高空航拍数据有效&#xff0c;而且对于地面大中场景也有增强效果&#xff0c;故专门来学习一下这一方向的知识。感谢作者大佬们的great work。 Abstract 三维高斯泼溅&#xff08;3DGS…

网络众筹项目数据库(2014-2024.11)

1727网络众筹项目数据库&#xff08;2014-2024.11&#xff09;数据简介作为新兴互联网融资模式&#xff0c;众筹已成为越来越多创业者和中小企业获取资金的渠道&#xff0c;但众筹项目一直面临融资成功率低的困难&#xff0c;成功融资的项目在许多平台上占比不足五成。而目前对…

k8s新增jupyter服务

k8s新增服务 常用命令 kubectl apply -f xxxxxx.yaml # 部署资源&#xff0c;顺序&#xff1a;namespace -> pvc -> deployment -> servicekubectl create namespace jupyter # 创建namespacekubectl get namespaces # 查看nskubectl get pods -n jupyter # 查看p…

结构化数据、非结构化数据区别

一、核心定义结构化数据&#xff1a;指具有固定格式、可直接用二维表&#xff08;如数据库表&#xff09;表示的数据&#xff0c;其字段&#xff08;列&#xff09;定义明确&#xff0c;数据之间的关系清晰。例如&#xff1a;Excel 表格中的数据、关系型数据库&#xff08;MySQ…

Linux修炼:基础指令

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》、《C修炼之路》、《Linux修炼&#xff1a;终端…

【Linux网络】深入理解HTTP/HTTPS协议:原理、实现与加密机制全面解析

协议是通信双方必须遵守的规则&#xff0c;确保数据能够正确传输和解析&#xff0c;它规定了数据格式、传输顺序、错误处理等细节。应用层的协议一般都是我们自己进行定义的&#xff0c;但是有很多程序员前辈已经写出来了很哇塞的协议&#xff0c;我们直接进行学习和使用即可HT…

浅尝 Spring AI【使用超级简单~】

一直想要体验下 Spring AI&#xff0c;最近自己的一个工具有这个需求&#xff0c;所以这里准备使用下。其实使用起来超级简单。 1.IDEA 新建 Spring项目 1&#xff09;这里可以根据自己的喜好选择 项目名、jdk版本等 2&#xff09;这里选择 在ai中选择 openAI 即可。然后我另…

DDL期间TDSQL异常会话查询造成数据库主备切换

问题描述&#xff1a;7*24联机交易系统&#xff0c;傍晚时分&#xff0c;从客户端后台对3千万行的大表执行缩短varchar类型字段长度的ddl语句&#xff0c;执行期间&#xff0c;为了查看ddl进度&#xff0c;从TDSQL-MySQL赤兔前端页面点击异常会话查询&#xff0c;之后数据库卡住…

弧焊机器人气体全方位节能指南

氩弧焊&#xff08;TIG焊接&#xff09;作为其中一种高效且精密的技术&#xff0c;凭借其稳定性和高质量的焊接效果&#xff0c;在航空航天、汽车制造、船舶建造以及石油化工等领域占据了不可或缺的地位。氩弧焊通过使用惰性气体&#xff08;如氩气&#xff09;保护电弧和熔池&…

数据清洗(ETL/ELT)原理与工具选择指南:企业数字化转型的核心引擎​

目录 一、数据清洗&#xff08;ETL/ELT&#xff09;到底在干啥&#xff1f; 1.揪出并处理异常值 2.把缺失的数据补上&#xff08;或处理好&#xff09; 3.数据转换与标准化 4.一致性校验 二、工具怎么选&#xff1f;看菜吃饭&#xff0c;量体裁衣 1.数据量不大、要求不高…

阿里云服务器,CentOS7.9上安装YApi 接口管理平台

目录 1.node安装 1.1下载node,解压 1.2 部署bin文件 1.3 安装mongodb 2.启动yapi 2.1 前置命令 2.2 启动服务 3.利用pm2方便服务管理维护 3.1.安装pm2 3.2 常用 PM2 命令 4.常见问题 4.1. 确认 MongoDB 是否安装 4.2. 安装 MongoDB&#xff08;若未安装&#xff…

阿里云错题集分享

有最近想要考试阿里云的可以私信我 &#xff0c;一起加油错题集1.在使用阿里云的负载均衡SLB实例时&#xff0c;做了如下健康检查的配置:成功响应和超时响应时间均为1秒&#xff0c;健康检查间隔为2秒&#xff0c;不健康阈值为3&#xff0c;健康阈值为3。即对于确认一个云服务器…

Android 12 - 部分相机横屏显示方案

1.相机过渡界面方向旋转 Android 10 - 相机过渡界面默认角度 同A10 有些区别&#xff0c;再次增加记录修改。 这个文件没有修改&#xff0c;只是说明 src/com/android/camera/CameraActivity.javaprivate void freezeScreenCommon(boolean async) {long startTime System.…

Operation Blackout 2025 Phantom Check hayabusa+ControlSet001+VirtualBox

QAQA攻击者使用哪个 WMI 类来检索型号和制造商信息以进行虚拟化检测&#xff1f;Win32_ComputerSystem攻击者执行了哪个 WMI 查询来检索计算机的当前温度值&#xff1f;SELECT CurrentTemperature FROM MSAcpi_ThermalZoneTemperature攻击者加载了 PowerShell 脚本以检测虚拟化…

《O-PAS™标准的安全方法》白皮书:为工业自动化系统筑起安全防线

The Open Group 最新白皮书《O-PAS™标准的安全方法》重磅发布&#xff0c;为流程工业在迈向开放架构与多供应商互操作的过程中&#xff0c;指明了安全实践的方向。O-PAS™标准的安全方法ABOUT PUBLICATION亮点一&#xff1a;首次系统阐释 O-PAS™ 标准安全方法与 IEC/ISA 6244…

UML 图类型全解析:结构图与行为图分类详解

作为软件架构的核心建模语言&#xff0c;UML&#xff08;统一建模语言&#xff09;通过14种标准图表提供系统多维度视角。这些图表分为结构图&#xff08;静态模型&#xff09; 和 行为图&#xff08;动态模型&#xff09; 两大类&#xff0c;覆盖从需求到实现的完整生命周期。…