当前位置: 首页 > 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模…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

EtherNet/IP转DeviceNet协议网关详解

一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...