基于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…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...

企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...

aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...