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

基于单片机的智能小车的开发与设计

摘要:本文论述了基于 STC89C52 单片机的智能小车的开发与设计过程。该设计采用单片机、电机驱动及光电循迹等技术,保证小车在无人管理状态下,能按照预先设定的线路实现自动循迹功能。在电路结构设计中力求方便,可操作,实用性强。本产品电路结构设计简单明了,系统可操作性和实用性强,故障率低,具有良好的应用前景。
关键词:单片机;光电循迹;驱动电路; C 程序;智能小车
智能小车是一种使用充电蓄电池作为动力来源的新型小车,工作中零噪音、零污染,对工作环境清洁度要求高的企业亦能适用。因此,智能循迹小车的相关研究,对未来工业、农业、制造业、服务等行业都拥有重要意义,是提升国家综合竞争力的重要体现[1] 。该方案应用单片机做作为主发与设计实现小车的相关功能。采用红外光电二极管和光电晶体管系统跟踪传感器模块,使用该模块对黑色轨迹预设的判断,再由单片机发出指令控制驱动系统,改变直流电机的现有工作状态,最终实现小车的自动循迹运行。

1 系统的基本构成

该智能循迹小车主要五大模块组成,如图 1 所示。单片机控制系统充当循迹小车的大脑,负责接收和下达指令,光电循迹系统充当循迹小车的触角,直流电机模块充当循迹小车的双脚。曲线所在位置可由检测系统检测出来并输出相应的信号,对该部分信号进行分析、处理后将信号输入至单片机,进而单片机按照输入信息进行处理,通过控制电机驱动模块和电机轨迹检测模块对小车进行判断,从而实现小车寻迹。

2 系统硬件设计

本设计整体方案的主控模块选用单片机 STC89C52 控制行进中的小车,以实现其既定的性能指标。为了达到更好的控制和驱动直流电动机目的,驱动模块选用L9110 。红外寻迹模块选用TCRT5000 的红外反射式开关,通过对接收管上是否接收 到红外光来判断小车得的行进路线。循迹过程是黑色引导线制作成不规则行进路线,检测系统对黑色路径进行检测,并将相应路径检测信息传输到单片机模块进行信息进行信号分析处理,再将控制命令输出到系统驱动模块,达到调控直流电机转向目的,使小车能在黑色引导线上循迹自动行驶[2]

2.1单片机模块与循迹模块设计

STC89C52 单片机 [3] 程序兼容传统的 8051 单片机,通过 ISP可在PCB 板上直接编写、修改,不需编程器,不需改变硬件,不仅不占用用户资源,而且功耗较低,抗干扰能力较强。图2 为单片机系统模块图。

2.2 光电循迹模块

光电循迹模块就是利用红外线对黑颜色漫反射的反射程度差异,再通过光敏二极或三级管所接收漫反射的程度不同,产生强弱不同的光信号,转换为电流信号通过电阻作用,将电流信号转换为高低电平进而可被单片机识别。小车行行驶过程中不断向附近地面发射红外光线,红外光探测白色地面时发生漫反射,小车上的接收管会接收这些漫反射红外光:当红外光照射到黑线时被吸收,小车的接收管无反射光信号接收。发射管与 330Ω 的电阻串联发射红外线,接收管与 47KΩ 的电 串联接收信号。当红外光被吸收接收管未收到漫反射时,其阻状态显示高阻态,TX 则为高电平输出。当接收管接收到反射光时,接收管导通,并且电阻非常小,TX 低电平输出 [4] 。下图为循迹模块电路图,如图3 所示。
3 循迹模块电路图

2.3 电机驱动原理

下图为小车运动逻辑。电机的运转就只需要用两个信号控制:如果 IB 为“ 0 ”, IA 信号为“ 1 ”,电机正转;如果 IB 信号变为:“1 ”,而 IA 信号变为“ 0 ”,电机反转。电机控制逻辑以电机 A为例如表1 所示。如果输入引脚 IA 为低电平而输入引脚 IB 为高电平,电机A 反转;相反情况时,电机 A 正转。

2.4 系统设计的结构

单片机模块分别与循迹模块和电动驱动模块构成了系统的整体设计结构,具体如图4 所示。

3 系统软件设计

单片机模块系统分别为数据处理和过程控制两个过程。其中数据处理过程包括数据信息的采集、数字滤波和标度变换三方面内容。过程控制程序重点是保证单片机遵循固定的方式进行计算,再将结果输出,实现控制生产目的。本系统软件采用模块化结构,由整体主程序和子程序构成。由于采用程序控制小车的行驶方向,因此软件的设计在整个系统中的地位也很重要。如图5 所示软件设计系统主程序流程图。

4 结论

现如今“智能”两个字与人们的生活越来越密不可分,智能产品种类越来越丰富,智能产品技术越来越高端,希望越来越多的研究者参与研发智能产品,提高国内科学技术水平,提升国家的综合竞争力。

相关文章:

基于单片机的智能小车的开发与设计

摘要:本文论述了基于 STC89C52 单片机的智能小车的开发与设计过程。该设计采用单片机、电机驱动及光电循迹等技术,保证小车在无人管理状态下,能按照预先设定的线路实现自动循迹功能。在电路结构设计中力求方便,可操作,…...

解决 GitLab CI/CD 中的 `413 Request Entity Too Large` 错误

解决 GitLab CI/CD 中的 413 Request Entity Too Large 错误 在使用 GitLab CI/CD 时,我们可能会遇到 413 Request Entity Too Large 的错误提示。通常,这是因为 GitLab Runner 在上传工件(artifacts)到 GitLab 服务器时&#xf…...

Java项目实战II基于Java+Spring Boot+MySQL的洗衣店订单管理系统(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 随着生活节奏的加快,现代人对便捷、高效服务的需求日益增长,洗衣店作为日常生…...

Can‘t connect to local MySQL server through socket

mysql -uroot ERROR 2002 (HY000): Cant connect to local MySQL server through socket /tmp/mysql.sock (2)这是mysql登录时找不到套接字的问题。 首先需要明白的是,Linux端的mysql server启动时会开启一个socket,Linux上的MySQL的客户端在不使用IP连…...

【车载以太网】【SOME/IP】Wireshark 解析

目录 ​​​​​​​Wireshark 官方插件 相关代码: 启用协议插件 Lua插件 测试数据包 Wireshark 下载链接:Wireshark Go DeepSOMEIP插件介绍:https://www.wireshark.org/docs/dfref/s/someip.html官方插件 Wireshark从3.2版本开始支持SOME/IP,启用相应的插件即可以…...

Perl 进程管理

Perl 进程管理 Perl,作为一种高级、通用、解释型、动态编程语言,广泛用于各种任务的自动化,包括进程管理。在Perl中,进程管理涉及创建、控制、同步和终止进程。本文将深入探讨Perl中的进程管理,包括基础知识、高级技巧以及最佳实践。 基础知识 进程创建 在Perl中,使用…...

爬虫 ----hook

目录 定义: 了解什么是hook? 举例 hook XHR请求 XMLHttpRequest 案例地址: Interceptors-拦截器 HOOK cookie操作 cookie 示范 常见的hook代码总结 1.Hook Cookie 2.Hook Header 3.Hook URL 4.Hook JSON.stringify 5.Hook JSON.parse 6.Ho…...

【监控】【Nginx】使用 Docker 部署 Prometheus + Grafana 监控 Nginx

在现代应用程序中,监控是确保服务高可用性和性能的关键。本文将详细介绍如何使用 Docker 部署 Prometheus 和 Grafana,以监控 Nginx。我们将分步骤讲解每个环节,以确保你能够顺利完成整个过程。 准备工作 在开始之前,请确保你的…...

Vue3 + Vite Web项目 Electron 打包桌面应用程序

在根目录下创建 electron 文件夹 创建 electron/main.js 文件: // 导入模块 const { app, BrowserWindow ,Menu } require(electron) const path require(path)// 创建主窗口 const createWindow () > {const mainWindow new BrowserWindow({width: 1440…...

Linux:login shell和non-login shell以及其配置文件

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 shell是Linux与外界交互的程序,登录shell有两种方式,login shell与non-login shell,它们的区别是读取的配置文件不同,本…...

面试速通宝典——1

1. 内存有哪几种类型? ‌‌‌‌  内存分为五个区,堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量&#…...

用uniapp 及socket.io做一个简单聊天 升级 9

比这之前优化了以下功能 上线通知 群聊里适时显示在线人数 约请好友 通过好友通过socket 相应端自动变化 PC端可以拉取摄象头拍照 PC端可以录音发送 拉起摄象头发送录象 <template><view class""><scroll-view scroll-y"true" class&…...

【Unity Shader】Special Effects(九)Vortex 旋涡(UI)

源码:[点我获取源码] 索引 Vortex 旋涡思路分析旋涡中心旋涡旋转旋涡强度旋涡动画Vortex 旋涡 旋涡效果可以将一张图像以指定点作为旋涡中心,呈顺时针旋涡动画效果,使用动画播放器: 思路分析 首先,旋涡特效的核心也即是旋转(特别是uv坐标的旋转); 在此基础上,旋涡中…...

01_两数之和

一、题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。…...

ChatGLM-6B-部署与使用

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f4ab; 欢迎来到我的学习笔记&#xff01; 什么是ChatGLM-6B 一、简介 ChatGLM-6B 是由清华大学知识工程实验室&#xff08;KEG&…...

李宏毅结构化学习 03

文章目录 一、Sequence Labeling 问题概述二、Hidden Markov Model(HMM)三、Conditional Random Field(CRF)四、Structured Perceptron/SVM五、Towards Deep Learning 一、Sequence Labeling 问题概述 二、Hidden Markov Model(HMM) 上图 training data 中的黑色字为x&#xff…...

java重点学习-总结

十五 总结 https://kdocs.cn/l/crbMWc8xEZda &#xff08;总结全部的精华&#xff09; 1.面试准备 企业筛选简历规则简历编写注意事项(亮点)项目怎么找&#xff0c;学习到什么程度面试过程(表达结构、什么样的心态去找工作) 2.redis 缓存相关(缓存击穿、穿透、雪崩、缓存过期淘…...

文件操作

文件的由来&#xff1a;在程序中&#xff0c;之前每一个程序都是需要运行然后输入数据&#xff0c;当程序结束时输入的数据也随之消散&#xff0c;为了下一次运行时不再输入数据就有文件的由来&#xff0c;使用文件我们可以将数据直接存放在电脑的硬盘上&#xff0c;做到了数据…...

docker存储

docker分层结构 如图所示&#xff0c;容器是由最上面可读可写的容器层&#xff0c;以及若干个只读镜像层组成&#xff0c;创建容器时&#xff0c;容器中的 数据都来自镜像层。这样的分层机构最大的特点是写时复制&#xff1a; 1、容器中新生成的数据会直接存放在容器层&#xf…...

Ubuntu20.04.6 环境下docker设置proxy

问题背景&#xff1a; 在进行dokcer pull操作的时候&#xff0c;会失败且出现如下提示Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting h…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...