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

小车避障功能的实现(第七天)

在这里插入图片描述


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

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

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

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


请添加图片描述

请添加图片描述

文章目录

    • 🎶一、避障原理与红外探头的应用
    • 🎶二、避障代码实现与解析
        • 结束语🥇


前言
在探矿小车的实际运行环境中,障碍物的出现是常见情况。为了保证小车能够持续、安全地完成探矿任务,避障功能就显得尤为重要。本文将围绕探矿小车的避障功能展开,详细介绍基于红外探头的避障原理以及相应的代码实现,帮助大家理解小车如何在遇到障碍物时做出正确反应并继续前进。与第六天的内容相差不大,主要就是一定要有耐心调试,硬件设备的调试。


🎶一、避障原理与红外探头的应用


  • 探矿小车的避障功能主要依靠红外探头来实现。红外探头能够发射和接收红外线,通过检测红外线的反射情况来判断前方是否存在障碍物以及障碍物的距离。
  • 本设计中,红外探头朝着小车正前方安装,左右各一个,分别用于检测左前方和右前方的障碍物情况。当探头检测到障碍物时,会输出相应的信号(通常0表示检测到障碍物,1表示未检测到障碍物),小车的控制系统根据这两个探头的信号来判断障碍物的位置,并做出相应的避障动作。

🎶二、避障代码实现与解析


以下是根据左右红外探头的信号来实现小车避障功能的代码:

//小车正前方有障碍物(距离是可以调节)
if(left == 0 && right == 0)
{//绕过障碍物,可先向右转弯一定角度,再前进car_right(); //小车右转delay_ms(500); //延迟一段时间,使小车转过一定角度car_up(); //小车前进
}
else if(left == 0 && right == 1) //左前方有障碍物,右前方无障碍物
{//向右转弯以避开左前方障碍物car_right(); //小车右转delay_ms(300); //延迟一段时间car_up(); //小车前进
}
else if(left == 1 && right == 0) //右方有障碍物,左前方无障碍物
{//向左转弯以避开右前方障碍物car_left(); //小车左转delay_ms(300); //延迟一段时间car_up(); //小车前进
}
else if(left == 1 && right == 1)
{//左右均无障碍物,小车前进car_up(); //小车前进
}
  • 代码解析:
    • 当左右探头都检测到障碍物(left == 0 && right == 0)时,说明小车正前方有障碍物,此时控制小车先向右转弯一定角度,然后前进,从而绕过正前方的障碍物。
    • 当左探头检测到障碍物而右探头未检测到时(left == 0 && right == 1),表明左前方有障碍物,此时控制小车向右转弯以避开左前方的障碍物。
    • 当右探头检测到障碍物而左探头未检测到时(left == 1 && right == 0),说明右前方有障碍物,控制小车向左转弯以避开右前方的障碍物。
    • 当左右探头都未检测到障碍物时(left == 1 && right == 1),小车正常前进。
结束语🥇

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

http://www.dtcms.com/a/277131.html

相关文章:

  • 使用微信免费的图像处理接口,来开发图片智能裁剪和二维码/条码识别功能,爽歪歪
  • Typecho分类导航栏开发指南:从基础到高级实现
  • 【零基础入门unity游戏开发——unity3D篇】光照探针 (Light Probes)实现动态物体的间接光照
  • python爬取新浪财经网站上行业板块股票信息的代码
  • Java 大视界 -- Java 大数据在智能教育学习资源智能分类与标签优化中的应用(346)
  • Pytorch实现感知器并实现分类动画
  • Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)
  • MacOS使用Multipass快速搭建轻量级k3s集群
  • 在Intel Mac的PyCharm中设置‘add bin folder to the path‘的解决方案
  • COZE token刷新
  • mac上BRPC的CMakeLists.txt优化:解决Protobuf路径问题
  • composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
  • 数据结构1:线性表的顺序存储的定义以及基本操作
  • [Linux 入门] Linux 引导过程、系统管理与故障处理全解析
  • Python 数据建模与分析项目实战预备 Day 4 - EDA(探索性数据分析)与可视化
  • ansible自动化部署考试系统前后端分离项目
  • 09.获取 Python 列表的首尾元素与切片技巧
  • 论文Review 3DGSSLAM GauS-SLAM: Dense RGB-D SLAM with Gaussian Surfels
  • OkHttp SSE 完整总结(最终版)
  • JAVA学习笔记 首个HelloWorld程序-002
  • javaweb-day10案例
  • Linux 系统——管理 MySQL
  • 入职华为od一个月的感受
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 44(题目+回答)
  • 鸿蒙项目构建配置
  • TDengine 使用最佳实践(2)
  • SpringBoot-23-企业云端开发实践之Vue框架组件化开发和第三方组件element-ui
  • 谷歌推出Vertex AI Memory Bank:为AI智能体带来持久记忆,支持连续对话
  • 【源力觉醒 创作者计划】文心开源大模型ERNIE-4.5私有化部署保姆级教程与多功能界面窗口部署
  • zotero自由编辑参考文献格式(2)