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

基于单片机的智能寻光小车设计

摘 要:随着物联网技术的飞速发展和逐渐成熟,以单片机为主的智能小车在巡查、仓储、探险及国防等领域得到广泛应用。本文设计了一种基于单片机的智能寻光小车,该小车以STC89C52RC 芯片为设计核心,结合光敏传感器和超声波传感器等多种传感器实现了具有追光寻光及自动避障和距离显示等功能、能用手机蓝牙控制的智能寻光小车。实验结果表明,本设计运行正常,能稳定可靠地完成预期目标,可以为智能控制领域及无人驾驶领域提供理论支持,在自动驾驶、辅助救援等领域有着广阔前景。
关键词:寻光小车;蓝牙控制;智能车;智能控制;单片机;传感器

0 引 言

近年来,随着时代的快速发展与科技水平的日益腾飞,现代仪器正朝着微小化、集成化的方向发展,这一现象促使单片机的应用场景愈加全面与广泛,单片机仪器与传感器在现代工业生产与生活中随处可见[1-4]。特别是随着物联网技术的飞速发展和逐渐成熟,以单片机为主的智能小车在巡查、仓储、探险及国防等领域得到广泛应用[5-8]。论文设计了一种基于单片机的智能寻光小车。设计以单片机为核心,由寻光模块、超声波传感器模块、显示模块、蓝牙控制模块组成,可以根据光敏传感器所传输的信号进行光源感知,从而采取相应运动,实现对光源的追寻。若前方遇到障碍物将自动避障,同时通过LCD1602 显示间距。小车也可以通过蓝牙控制。该小车是一套以智能控制和自动化为主题、多种学科相交融的集成化产品,在方便生产生活的同时还为自动驾驶等领域的研究提供思路与理论支持。因此,此设计对改进生产方式、促进智能控制领域研究具有一定的意义。

1 智能寻光小车的设计方案

智能寻光小车寻光时,由于光源外各个位置光照强度不同,使得所采用的光敏传感器对不同位置光照强度的反应不同[9]。此时光敏传感器会产生不同的电信号,并将所采集的信号发送至单片机进行处理,从而达到寻光的目标。在寻光的同时如遇障碍则触发避障功能,超声波传感器对遇障返回
的信号进行分析,再将信号传入单片机内;通过单片机操控进行转向等操作达到避障要求,在避障的同时由单片机将信号传入显示模块,由液晶显示器显示与障碍物之间的距离;也可以使用蓝牙进行连接[10],通过手动操控使得小车抵达所需位置。图1 为系统的总体设计框图。

2 系统硬件电路设计

2.1 单片机最小系统模块

单片机最小系统如图2 所示。单片机最小系统模块以STC89C52 为核心,包含电源、复位、时钟电路。电源为5 V 直流供电,完成对最小系统所有模块的供电。

2.2 寻光模块

寻光模块采用GY-30 数字光模块芯片。该芯片采用ROHM 原装BH1750FVI 芯片,使用5 V 电压进行供电,芯片集成度高,无需额外元件,受到的干扰小,并且光谱范围广,与人眼相近。电路如图3 所示。模块2、3 引脚分别为I2C 总线时钟和I2C 总线数据线。

2.3 避障模块

HY-SRF05 超声波测距模块为避障功能实现的核心。图4为HY-SRF05 芯片电路原理。超声波传感器发现障碍测距后,将信号反馈给单片机,然后由单片机控制电机实现避障。图5 为设计所用电机电路原理。

2.4 蓝牙控制模块

蓝牙控制由HC-05 芯片完成。该芯片采用集成封装模式,可以完成双向(全双工)无线功能,用于两个具有串行功能的微控制器之间的通信。图6 为芯片电路原理。

2.5 显示模块

显示模块使用LCD1602 液晶显示器实现功能。图7 为LCD1602 显示电路原理。

2.6 电源模块

对于整个系统设计而言,电源模块为整个系统提供稳定电压,从而保证系统有稳定供电,确保小车可以正常运转。本系统采用直流稳压电源模块为小车提供整体的供给电压。电源模块原理如图8 所示。

3 软件系统设计

系统的主程序是单片机系统程序的核心,通过程序控制单片机运行。在上电后运行系统对其进行初始化。通过设置单片机的特殊寄存器、定时器,对每个端口的操作完成初始化设置。系统启动后,智能寻光、自动避障及避障显示等任务通过不同的子程序控制所对应的外部硬件,从而达到设计要求。程序在Keil 环境下采用C 语言编程实现,图9 为主程序设计流程。

4 系统测试

小车设计完成后需要对各部分模块进行测试。表1 给出了需要测试的模块及要求。表2 为模块测试时遇到的问题及解决方案,其中避障模块在测试时顺利实现避障功能。最后通过最终调试及测试,设计基本实现了预设功能。

5 结 语

基于单片机的智能寻光小车设计以STC89C52RC 芯片为核心,运用GY-30、超声波模块、HC-05 芯片等器件,利用提前烧写进单片机中的程序操控小车,实现智能寻光、自动避障、避障显示、蓝牙遥控等功能。本产品是在智能控制与自动化方面的研究基础上设计的,该设计操作简单、抗干扰
能力强,可应用于无人驾驶、辅助救援等领域。

相关文章:

基于单片机的智能寻光小车设计

摘 要:随着物联网技术的飞速发展和逐渐成熟,以单片机为主的智能小车在巡查、仓储、探险及国防等领域得到广泛应用。本文设计了一种基于单片机的智能寻光小车,该小车以STC89C52RC 芯片为设计核心,结合光敏传感器和超声波传感器等多…...

数据结构——A/复杂度

A/基础铺垫 1. 什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的 数据元素的集合。 2.什么是算法? 算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输…...

锐捷VSU和M-LAG介绍

参考网站 堆叠、级联和集群的概念 什么是堆叠? 框式集群典型配置 RG-S6230[RG-S6501-48VS8CQ]系列交换机 RGOS 12.5(4)B1005版本 配置指南 总结 根据以上的几篇文章总结如下: 级联:简单,交换机相连就叫级联,跟搭…...

MYSQL——MySQL8.3无法启动

在新电脑上装了个MySQL,但是无法使用net start mysql启动,很是纳闷,使用mysqld --console去查看报错,也是没报错的,但是奇怪的是,我输入完这个mysqld --console之后,就等于启动了mysql了&#x…...

PyTorch识别验证码

## 一、生成测试集数据pip install captcha common.py import random import time captcha_array list("0123456789abcdefghijklmnopqrstuvwxyz") captcha_size 4from captcha.image import ImageCaptchaif __name__ __main__:for i in range(10):image ImageC…...

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书类别信息表格数据显示以及搜索实现

锋哥原创的PyQt6图书管理系统视频教程: PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…...

【HarmonyOS】鸿蒙开发之自定义组件——第3.7章

自定义构建函数 (适合内部页面的封装,更加合适)(构建页面) 案例: 自定义组件文件 Index.ets //全局自定义构建函数写法 Builder function item1(){Row({space:10}){Text("我是自定义构建函数")} }Component export struct Index{build(){Column(){item…...

初探unity中的ECS

ECS是一种软件架构模式,就像MVC一样。ECS最早在游戏《守望先锋》中提及到的相关链接。ECS具体是指实体(entity)、 组件(component)和系统(system): 实体:实体是一个ID&a…...

力扣:131. 分割回文串

回溯解法思路: 1.先声明一个集合来接受全部的回文子串组合,在声明一个集合来接收单个回文子串的组合。 2.写一个回溯函数,里面有终止条件和遍历全部组合的for循环来进行遍历全部的组合,终止条件为开始索引等于字符串的长度时&am…...

2024美赛数学建模B题思路源码

赛题目的 赛题目的: 问题描述: 解题的关键: 问题一. 问题分析 要开发一个模型来预测潜水器随时间的位置,我们需要考虑以下几个关键因素: 海洋环境因素:当前和预测的洋流、海水密度(可能会随…...

线程的取消和互斥

线程的取消 int pthread_cancel(pthread_t thread); 注意:线程的取消要有取消点才可以,不是说取消就取消,线程的取消点主要是阻塞的系统调用(前面sleep就是一个阻塞的系统调用) 如果没有取消点,手动设置一个 把上图中sleep函数替换成这个一样可以取消 void pth…...

机器学习之DeepSequence软件使用学习1

简介 DeepSequence 是一个生成性的、无监督的生物序列潜变量模型。给定一个多重序列比对作为输入,它可以用来预测可获得的突变,提取监督式学习的定量特征,并生成满足明显约束的新序列文库。它将序列中的高阶依赖性建模为残差子集之间约束的非…...

【Kotlin】Kotlin环境搭建

1 前言 Kotlin 是一种现代但已经成熟的编程语言,由 JetBrains 公司于 2011 年设计和开发,并在 2012 年开源,在 2016 年发布 v1.0 版本。在 2017 年,Google 宣布 Kotlin 正式成为 Android 开发语言,这进一步推动了 Kotl…...

langgraph学习--创建基本的agent执行器

本文介绍如何使用langgraph创建一个基本的Agent执行器,主要包括下面几个步骤: 1、定义工具 2、创建langchain Agent(由LLM、tools、prompt三部分组成) 3、定义图形状态 传统的LangChain代理的状态有几个属性: (1&#…...

Mybatis中的sql-xml延迟加载机制

Mybatis中的sql-xml延迟加载机制 hi,我是阿昌,今天记录一下关于Mybatis中的sql-xml延迟加载机制 一、前言 首先mybatis技术本身就不多介绍,说延迟加载机制之前,那要先知道2个概念: 主查询对象关联对象 假设咱们现…...

【Linux系统学习】1.初识Linux

初识Linux 操作系统概述 初识Linux 虚拟机介绍 VMware WorkStation安装 1.操作系统概述 了解操作系统的作用 了解常见的操作系统 1.1 硬件和软件 计算机由哪两个主要部分组成? 硬件:计算机系统中由电子,机械和光电元件等组成的各种物理装置的…...

政安晨:政安晨:机器学习快速入门(三){pandas与scikit-learn} {模型验证及欠拟合与过拟合}

这一篇中,咱们使用Pandas与Scikit-liarn工具进行一下模型验证,之后再顺势了解一些过拟合与欠拟合,这是您逐渐深入机器学习的开始! 模型验证 评估您的模型性能,以便测试和比较其他选择。 在上一篇中,您已经…...

分享65个节日PPT,总有一款适合您

分享65个节日PPT,总有一款适合您 65个节日PPT下载链接:https://pan.baidu.com/s/1hc1M5gfYK8eDxQVsK8O9xQ?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知…...

架构学习(二):原生scrapy如何接入scrapy-redis,初步入局分布式

原生scrapy如何接入scrapy-redis,实现初步入局分布式 前言scrpy-redis分布式碎语 实现流程扩展结束 前言 scrpy-redis分布式 下图是scrpy-redis官方提供的架构图,按我理解,与原生scrapy的差异主要是把名单队列服务器化,也是存储…...

第1节、电路连接【51单片机+L298N步进电机系列】

↑↑↑点击上方【目录】,查看本系列全部文章 摘要:本节介绍如何搭建一个51单片机L298N步进电机控制电路,所用材料均为常见的模块,简单高效的方式搭建起硬件环境。 一、硬件清单 ①51单片机模块 ②恒流模块 ③开关电源 ④L298N模…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...