当前位置: 首页 > 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 芯片等器件,利用提前烧写进单片机中的程序操控小车,实现智能寻光、自动避障、避障显示、蓝牙遥控等功能。本产品是在智能控制与自动化方面的研究基础上设计的,该设计操作简单、抗干扰
能力强,可应用于无人驾驶、辅助救援等领域。

相关文章:

  • P4408 [NOI2003] 逃学的小孩
  • C++ 11新特性之tuple
  • linux上部署ftp服务
  • Python:批量url链接保存为PDF
  • Flink 1.18.1的基本使用
  • 全面理解jvm
  • 板块零 IDEA编译器基础:第二节 创建JAVA WEB项目与IDEA基本设置 来自【汤米尼克的JAVAEE全套教程专栏】
  • 网络异常案例六_IP冲突
  • 【C语言】三子棋游戏实现代码
  • Java赋能:大学生成绩量化新篇章
  • 【机器学习】AAAI 会议论文聚类分析
  • Antd+React+react-resizable实现表格拖拽功能
  • 通过docker-compose部署NGINX服务,并使该服务开机自启
  • DQN的理论研究回顾
  • nvm安装node后,npm无效
  • 网络传输文件的问题
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 77. Combinations
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Git 使用集
  • HTML5新特性总结
  • java 多线程基础, 我觉得还是有必要看看的
  • Javascript编码规范
  • opencv python Meanshift 和 Camshift
  • sublime配置文件
  • 大整数乘法-表格法
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 理清楚Vue的结构
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 仓管云——企业云erp功能有哪些?
  • 容器镜像
  • 通过调用文摘列表API获取文摘
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​secrets --- 生成管理密码的安全随机数​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #预处理和函数的对比以及条件编译
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (篇九)MySQL常用内置函数
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转) Face-Resources
  • (转)四层和七层负载均衡的区别
  • (转载)CentOS查看系统信息|CentOS查看命令
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Mobi域名介绍
  • .NET : 在VS2008中计算代码度量值
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)