0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用AT89C52单片机和红外光电传感器实现机器人三点三轮寻迹系统设计

电子设计 来源:单片机与嵌入式系统应用 作者:唐甫世,齐明侠, 2021-04-07 09:24 次阅读

作者:唐甫世,齐明侠,张晓春

智能寻迹机器人是一种被广泛研究的机器人,而且国内外都有许多重要的比赛都以寻迹机器人为核心展开,如我国的“飞思卡尔”杯全国大学生智能车大赛,以及吸引亚太地区众多国家参赛的亚广联(ABU)机器人大赛等。

所谓的复杂路线,即由小半径弯道、各种角度折道、直道等组成的不规则导引线,它是相对由大半径弯道组成、过渡平滑的简单路线而言的。笔者所设计的寻迹机器人小车,以AT89C52单片机控制芯片,采用自制的3个红外光电传感器,以简单的设计、较低的成本实现了复杂路线下机器人的自主寻迹。

1 硬件及电路

1.1 控制芯片

考虑到实用性和性价比,采用AT89C52单片机作为机器人的控制芯片。AT89C52是美国 Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8 KB的可反复擦写的只读存储器(PEROM)和256B的随机存取数据存储器(RAM),32个I/O口线,3个16位定时/计数器,1个全双工串行通行口。器件采用Atmel公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容。

1.2 传感器模块

作为寻迹机器人的“眼睛”,选择合适的传感器是关键。目前市面上可选用的传感器主要有CCD传感器和红外光电传感器两种。近年来CCD传感器技术已趋成熟,在近几届“飞思卡尔”杯智能车大赛上,采用CCD传感器的智能车越来越多,并取得了不错的成绩。不过,CCD传感器价格较高,体积较大,数据处理相当复杂,因此在按既定路线行走的寻迹机器人设计中,红外光电传感器以其体积小、价格低、数据处理简单而显得更有优势。

红外光电传感器由1个红外发射管和1个光敏二极管组成。工作时,红外发射管发射的红外光被被测表面反射回来,光敏二极管接收被反射光。由于被测表面的材质不同,反射率也不一样。当被测表面为白色时,反射光较强,光敏二极管将导通;反之,被测表面为黑色时,光敏二极管将截止。考虑到外界环境光照等干扰因素,输出的电压值有一定的波动范围,若直接输给单片机,可能导致检测判断错误。因此,需要将输出电压通过比较器(LM324)与预置的阈值电压比较,然后得出一个高低电平输给单片机。阈值电压通过试验测量得出,其电路如图1所示。其中LED为传感器工作指示灯,R1为阈值电压调节电阻

o4YBAGBxSHaAUxA6AABpBCPdHAs921.png

根据上述电路,自制了3个简易的红外光电传感器。经测试表明,性能良好,有效检测距离为1~4 cm,满足机器人寻迹的要求。

1.3 驱动模块

驱动机器人行走的2个电机需要不同的转速来实现转弯。选用的驱动芯片为L293D,它包含4个输出通道,最大输出峰值电流为1.2 A,能同时驱动2个直流电机工作;其信号输入端和使能端接收到来自单片机的信号,控制电机的通断以及正、反转,还可以通过向使能端输入不同占空比的方波信号来调整电机转速(PWM方式)。如图2所示,IN端口接控制信号,OUT端口接电机的两端,EN端口接使能信号。一组IN端口输入为高/低或低/高电平时,能实现电机的正/反转。一组IN端口输入均为高或低电平时,电机将停转。EN使能端为高电平时,相应端口输入信号有效;反之,则输入信号无效。在EN 端输入PWM波,通过调整PWM波的占空比,即可实现电机的无级调速。

o4YBAGBxSFqAPUQWAAC66V5IjQA008.png

2 寻迹控制

机器人寻迹控制示意图如图3所示,机器人采用前轮驱动后轮辅助的三轮差动式行走方式。车体前部两轮均为主动轮,由两个电机分别驱动,利用它们的转速差来控制机器人运动方向;后轮为从动万向轮,仅起着支撑车体的作用。车底板前部以车体中心线为轴线对称放置着3个自制的红外光电传感器,作为机器人的寻迹传感器。

o4YBAGBxSFSAS4FcAACyb6tF5NA088.png

机器人寻迹场地中除了黑线,其他区域均为白色。当传感器正下方为黑线时,输出“0”状态,当其为白色区域时,输出“1”状态。因此,理论上3个传感器输出的组合状态会有8种,如表1所列。每一种组合状态都对应着一种机器人下一步的行走动作,共有前进、左转、快速左转、右转、快速右转、原地旋转、停止7种动作。

pIYBAGBxSE-AXt-fAAGUQbhAjRI354.png

注:“+”指车轮向前运动,“-”表示车轮向后运动,“1.0”、“0.3”指的是控制相应电机转速的PWM波的占空比,可根据实际需要在程序中修改。

本机器人有着双级转弯的设计,即普通转弯和快速转弯。当机器人对黑线的偏离量比较小时,使用普通转弯,即两个驱动轮都向前运动,速度一大一小,依靠两轮的速度差来实现转弯;而当机器人偏离黑线较远时,使用快速转弯,即两个驱动轮一个向前运动,一个向后运动,这样能迅速实现转弯。普通转弯用于大半径弯道、大角度折道,而快速转弯则用于小半径弯道和直角锐角折道等非平滑过渡路线。对于非封闭路线,还设计了原地旋转的动作,来实现原路返回:一旦机器人小车走完全程,3个传感器将均检测到白色区域,输出组合状态“111”,此时一轮全速前进,一轮全速后退,小车原地旋转,直到掉过头来传感器检测到黑线为止。

o4YBAGBxSEmAEdARAAGhLQzboqc461.png

3 程序设计

程序设计时,采用汇编语言编程。其思路为:第1步,系统初始化后,读取单片机P2口的值,然后对其 P2.0、P2.1、P2.2按位取与,得到传感器模块的组合值。第2步,将得到的组合值与预定的值比较,若相等则执行相应的动作,否则继续比较,直到获得正确的动作。比较完全部动作后,转到第1步重新扫描传感器的状态值。

为了进一步提高系统的安全性和可靠性,还需增加异常处理算法。可能出现的异常情况有:过小弯道或小角度折道时,机器人还来不及转过弯来,就已经完全偏离黑线。这种情况下,3个传感器都输出“1”,检测不到黑线,若不及时处理,机器人将无法继续寻迹。针对该情况,设计了原地旋转动作来找回预定路线,不过原地旋转有顺、逆时针之分,因此还得区分开来。改进后编程的思路为:每次读取P2口值之前,将其上一次的传感器组合值存入某个寄存器,当出现组合值为 “111”的情况时,立即查询上一次的值,根据该值,可以判断出机器人是从哪一侧偏离黑线的,从而进行顺或逆时针原地旋转。其主要程序如下:

pIYBAGBxSEOAKBm0AAD-q2VZlf8691.png

结语

根据上述设计思路,我们制作出寻迹机器人并进行了测试。测试场地如图4所示,黑色导引线宽度为3 cm,黑线周围区域均为白纸覆盖。测试结果表明:该寻迹机器人能在此复杂路线下平稳、顺利地沿着黑线走完全程,并在终点沿原路返回,达到了预期的目标。这为进一步研究复杂环境下的自动行走机器人提供了参考。

本文的创新点为:使用3个自制的红外光电传感器,以简单的设计和较少的硬件实现了复杂路线下机器人的寻迹。而基于该机器人双级转弯的设计思想,可以增加传感器数量、组成传感器阵列来实现多级转弯,从而对机器人的自主寻迹有着更为精确的控制。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2525

    文章

    48065

    浏览量

    739974
  • 单片机
    +关注

    关注

    6000

    文章

    43970

    浏览量

    620766
  • 机器人
    +关注

    关注

    206

    文章

    27023

    浏览量

    201367
收藏 人收藏

    评论

    相关推荐

    基于超声波传感器的自主移动机器人的探测系统

    不同的单片机控制,因此感测系统与移动机器人的上位必须依靠单片机间的I/O口线及串行异步通讯实现
    发表于 01-19 13:45

    智能小车毕业设计开题报告——STC89C51单片机智能小车设计

    ,超声波测距采用超声波发射和接收经锁相环电路检波完成,最后由控制单元处理数据后通过编程有序合理的将各模块信号整合在一起并完成相应动作,实现了智能控制,相当于简易
    发表于 03-09 10:55

    基于单片机设计的简易智能机器人

    停在指定地点,显示出整个运行过程的时间。本设计以AT89C51 单片机作为检测和控制核心。采用红外光电传感器检测路面黑线及障碍物,使用金属传感器
    发表于 07-13 14:39

    电子爱好者的扫地机器人 DIY (图+视频)

    寻迹传感器完成的:在同一时间内寻迹传感器没有反馈,表示悬空,使
    发表于 02-06 11:40

    基于at89c51单片机设计的简易智能机器人

    接受到信号,将信号送进单片机进行相应的判定和处理。 传感器3置于机器人正前方朝下的红外光电传感器,用于检测停止线。红外发射管发出信号,经不同
    发表于 02-09 16:12

    基于超声波传感器的自主移动机器人探测系统

    受限制。为了机器人自我调整姿态,需要确定其自身的转动方向和基准位置。因而自制一片由直射式红外光电传感器和转盘组成的简易光电编码。2个直射式红外光电
    发表于 11-02 16:04

    基于近红外光电传感技术的溢油监测系统设计

    技术的溢油检测系统。该系统采用红外光作为探测光源结合以单片机为主的数据采集模块,对近海海面进行在线实时监测,对于保护近海海域的环境安全具有
    发表于 11-02 10:46

    基于FPGA怎么实现三轮全方位移动机器人运动控制系统

    研究了一种用FPGA技术实现三轮全方位移动机器人运动控制系统的方法,与双DSP结构,DSP+CPLD结构,以及DSP+专用集成电路结构等相比,该方法具有简单可靠,扩展性强等特点。且FP
    发表于 10-22 07:35

    请问有AT89C52单片机水位传感器程序吗?

    本人大二学生,单片机初学者,求一AT89C52单片机接水位滴液传感器源代码,望大神指点。
    发表于 03-18 00:52

    红外光电传感器有哪些分类?

    红外光电传感器有哪些分类?红外光电传感器是怎样工作的?
    发表于 04-13 06:41

    如何利用AT89C52RC实现寻迹灭火智能小车机器人的设计

    摘要:一、硬件介绍:AT89C52RC单片机,L298N_电机驱动模块驱动直流马达,火焰传感器模块、YL-70四路循迹模块,5V继电器控制风扇的开关。二、功能介绍:“寻迹灭火
    发表于 11-10 06:44

    怎样去设计基于单片机寻迹灭火智能小车机器人

    摘要:一、硬件介绍:AT89C52RC单片机,L298N_电机驱动模块驱动直流马达,火焰传感器模块、YL-70四路循迹模块,5V继电器控制风扇的开关。二、功能介绍:“寻迹灭火
    发表于 12-02 06:31

    如何去实现一种基于AT89S52单片机的智能电动车设计

    摘要:本智能车是以铝合金为车架,AT89S52单片机为控制核心,加以直流电机、舵机、光电传感器、火焰传感器和电源电路以及其他电路构成。系统
    发表于 12-13 06:51

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

    本设计基于单片机及多种传感器,完成了一个自主式移动机器人的制作。单片机作为系统检测和控制的核心,实现
    发表于 08-05 09:54 49次下载

    使用AT89C52单片机和反射式传感器设计实现智能巡线机器人的资料说明

    本文介绍了利用红外反射式传感器实现小车自动识别路线的设计与实现系统控制核心采用
    发表于 10-17 17:16 10次下载
    使用<b class='flag-5'>AT89C52</b><b class='flag-5'>单片机</b>和反射式<b class='flag-5'>传感器</b>设计<b class='flag-5'>实现</b>智能巡线<b class='flag-5'>机器人</b>的资料说明