基于STM32的无人小车自主避障系统设计
文章目录
- 前言
- 资料获取
- 设计介绍
- 功能介绍
- 设计程序
- 具体实现截图
- 参考文献
- 设计获取
前言
💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
单片机设计精品实战案例✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
资料获取
文章底部名片,详细资料联系我。
设计介绍
自动避障小车是通过内部和外部传感器检测外部环境并在障碍物中工作的智能设备,可以执行避障循迹运动。本文提供了基于STM32嵌入式微处理器设计系统的技术。该小车采用四轮驱动设计作为其发动机平台和控制系统。选择STM32F103单片机作为主控制器,搭配驱动控制器L298N。整合了丰富的芯片外部资源,为智能设备提供了强大的平台。避开障碍和跟踪轨迹是智能设备应该具备的功能。本文介绍了硬件和软件工具、实现其功能的方法。避开障碍的方法主要有两种方式,红外线和超声波。这两种方法都使用传感器收集数据并传输到STM32F103的CPU,处理来自不同传感器的数据,并集成了前进、转向、后退等循迹避障功能。该过程简单且设置成本低。试验结果通过实验获得,实现了循迹避障功能。
软件设计使用Keil软件,以方便未来的更新和升级。第一章简要介绍了国内外自动化小车领域的研究环境,涉及自动避障、PC上位机和Android手机控制端的设计,并介绍了自动化小车在外太空领域的研究;第二章介绍智能小车硬件系统的设计;第三章介绍了设计软件系统,首先描述了Keil开发环境,然后详细说明了每个模块系统的软件程序;第四章接着描述了系统调试,描述了每个部分调试的细节;最后描述了该主题的工作愿景及不足之处
功能介绍
避障小车主要由主控模块、驱动模块、检测模块、报警模块、显示模块、电源模块六个模块组成。当前方遇到障碍物时,小车减速并判断其左侧是否有障碍物,无则左转,有则继续判断右侧是否有障碍物,无则右转,有则制动并后退。
系统总体框图
整车主控系统的主要特点是是完成系统初始化任务、超声波测距控制、红外传感器测距、发动机驱动控制和红外光电跟踪轨迹。 收到外部命令后,运行命令行成功。如果小车没有得到指示,会继续发现障碍。 如果前方没有障碍物,汽车将转向目标。当传感器检测到迎面而来的障碍物时,它会进行干预以避开障碍物,并且电机会向障碍物行驶

设计程序
电机驱动IO口
IN1 --- 左电机前进 --PC11
IN2 --- 左电机后退 --PD0
IN3 --- 右电机前进 --PD6 IN4 --- 右电机后退 --PG9
ENA --- 左电机PWM---输入0时停车 --PD4
ENB --- 右电机PWM---输入0时停车 --PD2
具体实现截图






参考文献
[1]王大庆编制.美国 “机遇" 号成功着陆火星[EB/OL]. http://news3.xinhuanet.com/ziliao/2004-01/29/content_1290040.htm,2004一01—29
[2]新华网.机遇号、勇气号都达标美火星探测计划成功[EB/0L]. http://tech.sina.com/other/2004—04—27/1418355367.shtml,2004—04—27
[3]徐国华,谭民.移动机器人的发展现状及其趋势[J].机器人技术与应 用,2001(3):7—14
[4]新华网.中国月球车制造完毕2013搭嫦娥三号探月[EB/OL] http://news.xinhuanet.tom/tech/2010—04/10/content 13331069.htm , 2010-04-10
[5]李宁基于MDK的STM32处理器开发应用2008.10.
[6]蔡自兴,贺汉根,陈虹未知环境中移动机器人导航控制理论与方法2009.1
[7]广州周立功单片机发展有限公司.ARM Cortex-M3处理器简介.2006.1
[8]周立功等编著.ARM嵌入式系统软件开发实例[M].北京:北京航空航天大学出版 社,2005.
[9]杜春雷编著.ARM体系结构与编程[M].北京:清华大学出版社,2003
[10]曾德怀,谢存禧等.行走机器人的超声波测距系统的研究[J].机械科学与技 术,2004,23(5).613"–616.
[11]曹玉华超声测距系统设计及其在其在机器人模糊避障中的应用中国海洋大学 论文2007.5
[12]Roland Siegwart,Il lah R.Nourbakhsh.自主移动机器人导论.西安:西安交通大 学出版社,2006.
[13]贾一.美国的火星探测器机器人机器人技术与应用,2001(3):1’7
[14]李磊,曹志强等.基于行为的轮式移动机器人导航控制.控制与决策.2004年第6 期:707-710
[15]邱瑛,富大伟,王惠森等.移动机器人模糊控制系统避障研究.河北工业大学学 报.2007年第6期:86-89
[16]庞思红,李维,李春书等.移动机器人模糊逻辑控制系统避障研究.微计算机信 息.2007年第12—2期:250-252
[17]程智远,谭宝成.移动机器人运动控制的模糊逻辑系统设计.电子元器件应用 82008年第1期:54-56
[18]孟伟,黄庆成,韩学东,洪炳榕.一种动态未知环境中自主机器人的导航方法.计算 机研究与发展(J),2005,42(9):1538—1543
[19]张纯刚,席裕庚.动态未知环境中移动机器人的滚动路径规划.机器人 (J),2002,24(1):71—75
[20]徐撞,唐振民.动态环境中的移动机器人避碰规划研究.机器人(J),2003,25(2): 117-122
[21]丛爽.神经网络、模糊系统及其在运动控制中的应用.中国科学技术大学出版社.2001
[22]李贻斌,李彩虹,刘鲁源.不确定环境下移动机器人路径规划算法研究.杭州电子 科技大学学报(J),2005,25(2):i0—13
[23]A.Zelinsky.A mobile robot exploration algorithm.IEEE Transactions on Robotics and Automation,1992,8(2):707-717
[24]Koenig,S.;Likhachev,M.:Fast Replanning for Navigation in Unknown Terrain.IEEE Transaetions on RobotiCS and Automation.Volume21,Issue3,June 2005 Page(S):354—363
设计获取
文章下方名片联系我即可~
精彩专栏推荐订阅:在下方专栏👇🏻
毕业设计精品实战案例
收藏关注不迷路!!
🌟文末获取设计🌟
相关文章:
基于STM32的无人小车自主避障系统设计
文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设…...
杂牌鼠标侧键设置
X-Mouse Button Control修改侧键基本功能介绍-CSDN博客 下载链接 【X-Mouse汉化版】X-Mouse中文版 v2.19.2 绿色版(支持Win10)-开心电玩 (kxdw.com)...
Android WebView H5 Hybrid 混和开发
对于故乡,我忽然有了新的理解:人的故乡,并不止于一块特定的土地,而是一种辽阔无比的心情,不受空间和时间的限制;这心情一经唤起,就是你已经回到了故乡。——《记忆与印象》 前言 移动互联网发展…...
智源推出下一代检索增强大模型框架MemoRAG
北京智源人工智能研究院与中国人民大学高瓴人工智能学院联合发布了一款创新的人工智能模型框架——MemoRAG。该框架基于长期记忆,旨在推动检索增强生成(RAG)技术的发展,使其能够处理更复杂的任务,而不仅限于简单的问答…...
【AprilTag】视觉定位实战 | 使用 ROS 驱动的 USB 摄像头进行相机标定与 AprilTag 识别
写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…...
[数据集][目标检测]俯拍航拍森林火灾检测数据集VOC+YOLO格式6116张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6116 标注数量(xml文件个数):6116 标注数量(txt文件个数):6116 标注…...
windows10下tomcat安装及配置教程
Apache Tomcat是一个开源的、轻量级的Servlet容器,广泛用于运行Java Web应用程序。以下是Tomcat安装及配置的基本步骤,根据搜索结果整理: 一、安装前的准备工作 确保你的计算机上已经安装了Java Development Kit (JDK),因为Tomc…...
Spring MVC设置请求头和响应头的Header
在Spring MVC中,动态设置请求头和响应头的方法有多种,以下是一些常见的方式: 设置请求头 使用RequestHeader注解 这个注解用于读取请求中的单个HTTP头部值,并将其作为一个参数传递给控制器方法。 RequestMapping("/examp…...
一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)
前言 随着互联网应用的发展,后台管理系统的复杂度不断增加,对于开发者而言,既要系统的功能完备,又要追求开发效率的提升。然而,传统的开发方式往往会导致大量的重复劳动,尤其是在构建复杂的管理页面时。有…...
HTML讲解(二)head部分
目录 1. 2.的使用 2.1 charset 2.2 name 2.2.1 describe关键字 2.2.2 keywords关键字 2.2.3 author关键字 2.2.4 http-equiv 小心!VS2022不可直接接触,否则!没这个必要,方源面色淡然一把抓住!顷刻炼化&#x…...
Linux(Ubuntu)(终端实现helloworld输出)
一、终端实现gcc编译 1.写好helloworld.h,helloworld.c,main.c后,打开终端,切换到保存这些文件的文件夹的目录,我把这些文件存放在helloworld的文件夹下,所以输入cd ~/helloworld 2.查看该目录下的文件&a…...
开源模型应用落地-qwen模型小试-调用Qwen2-VL-7B-Instruct-更清晰地看世界-集成vLLM(二)
一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图像和视频理解能力,以及多语言支…...
【乐企-工具篇】有关乐企发票文件生成- OFD和PDF文件生成
有关乐企发票文件生成- OFD和PDF文件生成 本文主要是实现发票的OFD文件以及PDF文件的生成可以参考具体实现思路,具体情况需要根据自己业务进行改造! 具体的OFD文件模板可以从税局进行下载,下载之后放到resources资源目录下。 代码 package com.ruoyi.output.service.thi…...
llama网络结构及源码
目录 模型初始化 config lm_head transformer wte h rms_1/rms_2 attn c_attn c_proj 线性层mlp ln_f rope_cache mask_cache kv_caches tokenizer tokenizer初始化 tokennizer.encoder 位置编码和mask 确定最大文本长度 建立rope_cache 建立mask_cache …...
828华为云征文|Flexus云服务器X实例部署宝塔运维面板
本次华为云Flexus云服务器X实例部署宝塔运维面板教学,这次是推陈出新啊 之前的云耀云服务器L实例已经很不错了,大力赞叹华为云的 同时感谢华为云提供优惠卷,只能说白嫖真是太棒了 华为云近期正在筹办华为云828企业节活动,90款免…...
计算机网络 8.*结构化布线
第八章 结构化布线 第一节 结构化布线基础 一、认识结构化布线 1.定义:在建筑物或楼宇内安装的传输线路,是一个用于语音、数据、影像和其他信息技术的标准结构化布线系统。 2.任务:使语音和数据通信设备、交换设备和其他信息管理系统彼此相…...
c#的委托、事件
程序目的:实现对一个bool型变量的监视,当数据变化时,调用某一个函数,引申出委托、事件等基础概念。 方法一、在form1的类定义中,定义如下代码,这样定义是最直接的,也非常简单,没有涉…...
Day23笔记-Day21和Day22作业讲解单例类
Day22作业讲解 学生类Student:属性:学号,姓名,年龄,性别,成绩 班级类 Grade:属性:班级名称,班级中的学生 【使用列表存储学生】 方法:1.查看该班级中的所有学生的信息2.查看指定学号的学生信息3.查看班级中成绩不…...
k8s中的存储
目录 一 configmap 1.1 configmap的功能 1.2 configmap的使用场景 1.3 configmap创建方式 1.3.1 字面值创建 1.3.2 通过文件创建 1.3.3 通过目录创建 1.3.4 通过yaml文件创建 1.3.5 configmap的使用方式 1.3.5.1 使用configmap填充环境变量 1.3.5.2 通过数据卷使用c…...
【Linux进程控制】进程程序替换
目录 进程程序替换 替换函数 看现象 替换原理 多进程替换 exec*函数使用(部分),并且认识函数参数的含义 1.execl 2.execv 3.execvp 4.execvpe execlp 和execlpe 替换函数总结 进程程序替换 替换函数 有六种以exec开头的函数&am…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
多模态学习路线(2)——DL基础系列
目录 前言 一、归一化 1. Layer Normalization (LN) 2. Batch Normalization (BN) 3. Instance Normalization (IN) 4. Group Normalization (GN) 5. Root Mean Square Normalization(RMSNorm) 二、激活函数 1. Sigmoid激活函数(二分类&…...
TMC2226超静音步进电机驱动控制模块
目前已经使用TMC2226量产超过20K,发现在静音方面做的还是很不错。 一、TMC2226管脚定义说明 二、原理图及下载地址 一、TMC2226管脚定义说明 引脚编号类型功能OB11电机线圈 B 输出 1BRB2线圈 B 的检测电阻连接端。将检测电阻靠近该引脚连接到地。使用内部检测电阻时,将此引…...
