基于单片机及传感器的机器人设计与实现

摘要 : 本设计基于单片机及多种传感器 , 完成了一个自主式移动机器人的制作。单片机作为系统检测和控制的核心 , 实现对机器人小车的智能控制。反射式红外光电传感器检测引导线, 使机器人沿轨道自主行走 ; 使用霍尔集成片 , 通过计车轮转过的圈数完成机器人行走路程测量; 接近开关可探测到轨 道 下 埋 藏 的 金 属 片 , 发 出 声 光 信 息 进 行 指 示 , 并 能 实 时 显 示 金 属 片距起点的位置。
关键词 : 单片机 ; 机器人 ; 传感器

1 前言

机器人技术是融合了机械、电子、传感器、计算机、人工智能等许多学科的知识, 涉及到当今许多前沿领域的技术。一些发达国家已把机器人制作比赛作为创新教育的战略性手段。如日本每年都要举行诸如 “NHK 杯大学生机器人大赛”、“全日本机器人相扑大会”、“机器人足球赛”等各种类型的机器人制作比赛, 参加者多为学生 , 旨在通过大赛全面培养学生的动手能力、创造能力、合作能力和进取精神, 同时也普及智能机器人的知识.
开展机器人的制作活动 , 是培养大学生的创新精神和实践能力的最佳实践活动之一, 特别是机电专业学生开展综合知识训练的最佳平台。本文针对具有引导线环境下的路径跟踪这一热点问题, 基于单片机控制及传感器原理 , 通过硬件电路制作和软件编程, 制作了一个机器人 , 实现了机器人的路径跟踪和自动纠偏的功能, 并能探测金属 , 实时显示距离。

2 机器人要完成的功能

选取一块光滑地板或木板 , 上面铺设白纸 , 白纸上画任意黑色线条( 线条不要交叉 ) , 作为机器人行走的轨迹 , 引导机器人自主行走。纸下沿黑线轨迹随机埋藏几片薄铁片, 铁片厚度为0.5~ 1.0mm 。机器人沿轨迹行走一周 , 探测出埋藏在纸下铁片 ,发出声光报警, 并显示铁片距离起点的位置。

3 硬件设计方案

机器人总体构成

如图 1 所示 , 以微处理器为核心 , 接受传感器传来外部信息, 进行处理 , 控制机器人的运行。

系统电源供电部分

由于机器人电机 , 传感器及系统 CPU 等部分均采用 +5V 供电, 考虑电动车功率和车载质量及摩擦阻力问题 , 电源我们采用电动车自带干电池组, 功耗小、体积小和质量轻 , 安装较为方便。

电机驱动及 PWM 调速部分

机器人需控制在一个合适的速度行驶 , 速度太快 , 因单片机对各传感器传来的信号有一个响应、处理时间, 小车极易偏离轨道。小车的速度是由后轮直流电机转速控制, 改变直流电机转速通常采用调压、调磁等方式来实现。其中, 调压方式原理简单, 易与实现。
采用由晶体管组成的 H PWM 调制电路。通过图 2 PWM 调制电路 , 用单片机控制晶体管使之工作在占空比可状态, 实现调速。
令单片机 P1.7 口为低电平 , P1.6 口为高电平 , 此时 Q1 Q4导通, Q2 Q3 截止 , 电动机正常工作。改变 P1.6 口高电平周期 ,即改变 PWM 调制脉冲占空比 , 可以实现精确调速。脉冲频率对电机转速有影响, 脉冲频率高连续性好 , 但带负载能力差 ; 脉冲频率低则反之。经实验发现, 脉冲频率在 30Hz 以上 , 电机转动平稳, 但小车行驶时 , 由于摩擦力使电机转速降低很快 , 甚至停转; 脉冲频率在 10Hz 以下 , 电机转动有跳跃现象 , 实验证明脉冲频率在 25 35Hz 效果最佳。我们选取脉冲频率为 30Hz

引导线检测模块

根据白纸和黑线反射系数不同 , 通过以光电传感器为核心的光电检测电路将路面两种颜色进行区分, 转化为不同电平信号, 将此电平信号送单片机 , 由单片机控制转向电机作相应的转向, 保证小车沿引导线行驶。考虑到小车与路面的相对位置 ,采用反射式光电检测电路。
红外光电传感器 TCRT1000 , 它是一种光电子扫描 , 光电二极管发射, 三极管接收并输出的装置 . 它的特点是尺寸小、使用方便、信号高输出、工作状态受温度影响小。它的外围电路简单, ( 如图 3 所示 ) 。二极管的 C 端和三极管的 E 端接地 , 二极管的 A 端通过一电阻和电源相接 , 组成偏置电流电路 ; 三极管的C 端也通过一电阻和电源相接 , 组成输出电路。当检测器检测到白色时, 其输出低电平 ; 当检测到黑色时 , 则输出高电平。为提高检测精度, 采用了多传感器信息融合技术。设计中 ,在车头均匀布置三个光电传感器, 其中 , 中间一个 (Q1) 安装在小车正中央。Q1 的输出经一级比较器和非门 , 接单片机的 P1.3脚.Q1 左右两端分别布置一个传感器 , 经与图 3 相同的电路后也连接到单片机 P1 口。若两侧某一传感器检测到黑线 , 表明小车正脱离轨道, 3 个检测点的结果融合后作为单片机的输入, 机器人按照单片机 P1 口信息进行判断调整 , 实现路径跟踪和自动纠偏。

金属探测部分

如图 4 所示 , 金属探测器使用一接近开关 , 探测有效距离约为 4mm , 将它固定在机器人上 , 当探测到金属片时 , 探测器输出端输出低电平, 经反向器后接一发光二极管和一蜂鸣器 , 发出声光指示信号。同时输出反向后接单片机, 对探测到的金属片个数进行计数。

霍尔元件测距设计

霍尔集成片内部由三片霍尔金属板组成 , 当磁铁正对金属板时, 根据霍尔效应 , 金属板发生横向导通 , 因此可以在车轮上安装磁片, 而将霍尔集成片安装在固定轴上 , 通过对脉冲计数进行距离测量。小车后轮每转一圈, 霍尔元件产生的脉冲送入单片机的 T0 口进行计数 , 单片机完成脉冲数到距离的转换。在后轮安装一个磁极, 测量误差是一个车轮的周长 , 可在软件中给予补偿。

LCD 显示

液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点, 在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。? 这里采用 2 16 个字的 DM- 162 液晶模块 , 通过与单片机连接, 编程 , 完成显示功能。

4 系统软件流程

系统软件流程如图 5 所示。

5 结论

本文基于单片机及传感器原理 , 以单片机为控制器的核心, 小型直流电机作为驱动元件 , 配置不同类型的传感器 , 通过软件编程 , 制作出了一个价格低廉、模块化结构的小型机器人。大量的行走实验证明, 该机器人能够顺利路径跟踪和自动纠偏自主行走, 并完成探测、显示等功能。
本文作者创新点 : 本文针对具有引导线环境下的路径跟踪这一热点问题, 采用多传感器信息融合技术 , 通过单片机控制 ,实现了机器人的路径跟踪和自动纠偏的功能, 方法简单 , 易于实现, 造价低廉 , 效果较好。

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

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

相关文章

VBA 列方向合并单元格,左侧范围大于右侧范围

实现功能如下: excel指定行列范围内的所有单元格 规则1:每一列的连续相同的值合并单元格 规则2:每一列的第一个非空单元格与其下方的所有空白单元格合并单元 规则3:优先左侧列合并单元格,合并后,右侧的单元…

docker中kibana启动后,通过浏览器访问,出现server is not ready yet

问题:当我在浏览器访问kibana时,浏览器给我报了server is not ready yet. 在网上试了很多方法,都未能解决,下面是我的方法: 查看kibana日志: docker logs -f kibana从控制台打印的日志可以发现&#xff…

Lora模型微调(1): 原理讲解

1. 参数高效微调介绍 参数高效微调(Parameter-Efficient Fine-Tuning, PEFT) 是一种在深度学习模型微调过程中,通过仅更新少量参数来适应新任务的技术。这种方法在保持模型性能的同时,显著减少了计算资源和存储需求,特别适用于大模型(如 GPT、BERT 等)的微调场景。 PE…

【国产Linux | 银河麒麟】麒麟化龙——KylinOS下载到安装一条龙服务,起飞!

🗺️博客地图 📍一、下载地址 📍二、 系统安装 本文基于Windows操作系统vmware虚拟机安装 一、下载地址 官网:产品试用申请国产操作系统、麒麟操作系统——麒麟软件官方网站 下载自己需要的版本,完成后&#xff0c…

MySQL(单表)知识点

文章目录 1.数据库的概念2.下载并配置MySQL2.1初始化MySQL的数据2.2注册MYSQL服务2.3启动MYSQL服务2.4修改账户默认密码2.5登录MYSQL2.6卸载MYSQL 3.MYSQL数据模型3.1连接数据库 4.SQL简介4.1SQL的通用语法4.2SQL语句的分类4.3DDL语句4.3.1数据库4.3.2表(创建,查询,修改,删除)4…

解析 SQL,就用 sqlparse!

文章目录 解析 SQL,就用 sqlparse!一、背景:为什么你需要 sqlparse?二、什么是 sqlparse?三、如何安装 sqlparse?四、简单易用的库函数1\. parse(sql)2\. format(sql, **options)3\. split(sql)4\. get_typ…

C++vector类

目录 一、vector的使用 1.1、vector的构造,push_back,和 [ ]运算符 1.2、迭代器和范围for 1.3、vector> 和 sort 算法 二、vector的实现 2.1、成员变量 2.2、构造函数,析构函数,赋值重载 ​编辑 2.3、push_back&#x…

模拟调制技术详解

内容摘要 本文系统讲解模拟调制技术原理及Matlab实现,涵盖幅度调制的四种主要类型:双边带抑制载波调幅(DSB-SC)、含离散大载波调幅(AM)、单边带调幅(SSB)和残留边带调幅(…

Android APP 启动流程详解(含冷启动、热启动)

目录 一、流程对比图 二、冷启动(Cold Launch) 2.1 用户点击应用图标(Launcher 触发) 2.2 AMS 处理启动请求 2.3 请求 Zygote 创建新进程 2.4 初始化应用进程 2.5 创建 Application 对象 2.6 启动目标 Activity 2.7 执行 …

前端项目中export和import的作用

之前写过代码,但是那个时候是使用jspdivcss写页面,jquery负责页面数据展示和数据请求。近期在学习前端,发现有export和import,想起了之前没用过,就研究搜索了一下,发现这个是在 ES6中添加的,难怪…

玩转ChatGPT:GPT 深入研究功能

一、写在前面 民间总结: 理科看Claude 3.7 Sonnet 文科看DeepSeek-R1 那么,ChatGPT呢? 看Deep Research(深入研究)功能。 对于科研狗来说,在这个文章爆炸的时代,如何利用AI准确、高效地收…

QLabel 介绍

一、介绍 QLabel 是标签,显示类控件。 二、属性 属性说明text显示的文本textFormat文本格式pixmap设置标签里面的图片scaledContexts内容是否自动填充标签(用于图片填满标签)alignment对齐方式wordWarp文本是否换行indent设置文本缩进marg…

ubuntu 20.04 C++ 源码编译 cuda版本 opencv4.5.0

前提条件是安装好了cuda和cudnn 点击下载: opencv_contrib4.5.0 opencv 4.5.0 解压重命名后 进入opencv目录,创建build目录 “CUDA_ARCH_BIN ?” 这里要根据显卡查询一下,我的cuda是11,显卡1650,所以是7.5 查询方法1&#xff1…

更新Vim使其支持系统剪切板

参考链接 [转]vim如何复制到系统剪贴板 - biiigwang - 博客园 执行命令 sudo apt-get install vim-gtk 可能遇到的报错 原因 旧版本的系统大多使用vim-gtk,在新版本中已经不存在这个软件包 可以通过输入命令查找是否存在 apt search vim-gtk 可以看到并没有…

TMS320F28P550SJ9学习笔记6:SCI所有寄存器__结构体寄存器方式配置 SCI通信初始化__库函数发送测试

继续学习如何使用结构体寄存器的方式配置这款单片机的外设,这里配置SCI通信的初始化 但SCI gpio 的初始化还是调用的库函数比较方便,它的发送部分页调用了库函数 有关收发方面的逻辑,我会在之后重新自己写一次 文章提供测试代码讲解、完整…

静态时序分析STA——2. 数字单元库-(1)

参考文献 [1]Static Timing Analysis for Nanometer Designs A Practical Approach [2]静态时序分析圣经翻译计划——第三章:标准单元库 (上) 一. 引脚电容 标准单元库的每个cell的每个输入和输出都可以在pin上指定电容。在大多数情况下&…

Spring-事务

Spring 事务 事务的基本概念 🔹 什么是事务? 事务是一组数据库操作,它们作为一个整体,要么全部成功,要么全部回滚。 常见的事务场景: 银行转账(扣款和存款必须同时成功) 订单系统…

蓝桥备赛(13)- 链表和 list(下)

一、动态链表 - list (了解) new 和 delete 是非常耗时的操作 在算法比赛中,一般不会使使用 new 和 delete 去模拟实现一个链表。 而且STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不高,竞赛…

MySQL中like模糊查询如何优化?

大家好,我是锋哥。今天分享关于【MySQL中like模糊查询如何优化?】面试题。希望对大家有帮助; MySQL中like模糊查询如何优化? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MySQL 中,LIKE 模糊查询虽然非常常见,…

DeepSeek使用教程--让DeepSeek生成精准题库

想让DeepSeek出好题,关键在于提示词的设计。总结了一个基本模板: 请帮我生成一套关于[学科/知识点]的题目,包括[题型],难度为[简单/中等/困难],适合[年级/学习阶段]的学生,总共[数量]道题。每道题请提供详细…