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

摘 要:随着物联网技术的飞速发展和逐渐成熟,以单片机为主的智能小车在巡查、仓储、探险及国防等领域得到广泛应用。本文设计了一种基于单片机的智能寻光小车,该小车以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 芯片等器件,利用提前烧写进单片机中的程序操控小车,实现智能寻光、自动避障、避障显示、蓝牙遥控等功能。本产品是在智能控制与自动化方面的研究基础上设计的,该设计操作简单、抗干扰
能力强,可应用于无人驾驶、辅助救援等领域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/252633.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识C语言·编译与链接

1 翻译环境和运行环境 C语言标准ANSI C 实现C语言代码的时候 一般需要经过两种环境,一是翻译环境,二是运行环境,计算机能识别的是二进制的指令,人写完代码后通过翻译环境,使代码变成计算机能读懂的可执行的机器指令&a…

MySQL组复制的介绍

前言 本文介绍关于MySQL组复制的背景信息和基本原理。包括,介绍MySQL传统复制方法的原理和隐患、介绍组复制的原理,单主模式和多主模式等等。通过结合原理图学习这些概念,可以很好的帮助我们理解组复制技术这一MySQL高可用方案,有…

ChatGPT 4.0 升级指南, ChatGPT Plus(GPT 4.0) 有何优势?

1.ChatGPT 是什么? ChatGPT 是由 OpenAI 开发的一种基于人工智能的聊天机器人,它基于强大的语言处理模型 GPT(Generative Pre-trained Transformer)构建。它能够理解人类语言,可以为我们解决实际的问题。 ChatGPT 4.…

关于网络面试题汇总

什么是TCP/IP五层模型?它们的作用是啥?基于TCP/IP实现的应用(层协议)有哪些? TCP/IP五层模型,从上向下分别是: 应用层:应用程序本身,应用层的作用是负责应用程序之间的…

python使用fabric库

目录 一:介绍 二:远程命令执行 三:文件上传,下载 四:执行多台服务器命令 一:介绍 Fabric是一个Python库,用于简化SSH连接和自动化任务。它提供了一个简单的API来执行远程命令、上传和下载文…

京东广告算法架构体系建设--大规模稀疏场景高性能训练方案演变

一、前言 京东广告训练框架随着广告算法业务发展的特点也在快速迭代升级,回顾近几年大致经历了两次大版本的方案架构演变。第一阶段,随着2016年Tensorflow训练框架的开源,业界开始基于Tensorflow开源框架训练更复杂的模型。模型对特征规模和…

ctfshow——文件包含

文章目录 web 78——php伪协议第一种方法——php://input第二种方法——data://text/plain第三种方法——远程包含(http://协议) web 78——str_replace过滤字符php第一种方法——远程包含(http://协议)第二种方法——data://&…

Visual Studio 2010+C#实现信源和信息熵

1. 设计要求 以图形界面的方式设计一套程序,该程序可以实现以下功能: 从输入框输入单个或多个概率,然后使用者可以通过相关按钮的点击求解相应的对数,自信息以及信息熵程序要能够实现马尔可夫信源转移概率矩阵的输入并且可以计算…

电商推荐系统

此篇博客主要记录一下商品推荐系统的主要实现过程。 一、获取用户对商品的偏好值 代码实现 package zb.grms;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Doub…

C++内存分区模型

C程序在执行时,将内存大方向划为4个区域。分别是代码区、全局区、栈区、堆区。 栈区:由编译器自动分配释放,存放函数的参数值、局部变量等。 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系…

阅读笔记——《RapidFuzz: Accelerating fuzzing via Generative Adversarial Networks》

【参考文献】Ye A, Wang L, Zhao L, et al. Rapidfuzz: Accelerating fuzzing via generative adversarial networks[J]. Neurocomputing, 2021, 460: 195-204.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 目录 摘要 一、介绍 二、相关…

项目02《游戏-07-开发》Unity3D

基于 项目02《游戏-06-开发》Unity3D , 接下来做UI框架的逻辑系统,管理器和UI背包, 首先闯将UI框架的两个重要脚本 BasePanel.cs 和 UIManager.cs , 双击BasePanel.cs脚本修改代码: using UnityEngine; pu…

Redis核心技术与实战【学习笔记】 - 17.Redis 缓存异常:缓存雪崩、击穿、穿透

概述 Redis 的缓存异常问题,除了数据不一致问题外,还会面临其他三个问题,分别是缓存雪崩、缓存击穿、缓存穿透。这三个问题,一旦发生,会导致大量的请求积压到数据库。若并发量很大,就会导致数据库宕机或故…

【UE 材质】扇形材质

目录 效果 步骤 (1)控制扇形的弧宽度 (2)控制扇形的角度 (3)完整节点 效果 步骤 (1)控制扇形的弧宽度 创建一个材质,混合模式设置为“Additive”,着色…

用的到的linux-删除文件-Day3

前言: 上一节,我们讲到了怎么去移动文件,其中使用到两大类的脚本命令即cp和mv。各两种命令都可以完成移动,但是cp是复制粘贴的方式,可以选择原封不动的复制粘贴过来,即不修改文件及文件夹的创建时间等&…

2-2 动手学深度学习v2-损失函数-笔记

损失函数,用来衡量预测值和真实值之间的区别。是机器学习里面一个非常重要的概念。 三个常用的损失函数 L2 loss、L1 loss、Huber’s Robust loss 均方损失 L2 Loss l ( y , y ′ ) 1 2 ( y − y ′ ) 2 l(y,y^{\prime})\frac{1}{2}(y-y^{\prime})^{2} l(y,y′)21…

分享springboot框架的一个开源的本地开发部署教程(若依开源项目开发部署过程分享持续更新二开宝藏项目PostgresSQL数据库版)

1首先介绍下若依项目: 若依是一个基于Spring Boot和Spring Cloud技术栈开发的多租户权限管理系统。该开源项目提供了一套完整的权限管理解决方案,包括用户管理、角色管理、菜单管理、部门管理、岗位管理等功能。 若依项目采用前后端分离的架构&#xf…

1 初识JVM

JVM(Java Virtual Machine),也就是 “Java虚拟机”。 对于第三点功能:即时编译 常见的JVM 默认安装在JDK中的虚拟机为HotSpot:可以用“java -version”进行查看

LLMs之miqu-1-70b:miqu-1-70b的简介、安装和使用方法、案例应用之详细攻略

LLMs之miqu-1-70b:miqu-1-70b的简介、安装和使用方法、案例应用之详细攻略 目录 miqu-1-70b的简介 miqu-1-70b的安装和使用方法 1、安装 2、使用方法 miqu-1-70b的案例应用 miqu-1-70b的简介 2024年1月28日,发布了miqu 70b,潜在系列中的…

《动手学深度学习(PyTorch版)》笔记7.4

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…