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

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

3天内不再提示

基于AT89C2051单片机和GPS技术实现机器人定位模块的设计

电子设计 来源: 微计算机信息 作者:高珊,李欣 2021-04-07 11:01 次阅读

1 引言

定位是根据先验的环境信息,结合当前的机器人位置信息以及传感器输入信息,准确地确定机器人位姿的过程。可靠定位是移动机器人研究中备受关注和富有挑战性的一个重要研究主题。

机器人定位技术可分为绝对定位和相对定位技术两类,绝对定位主要采用导航信标、主动或被动标识、地图匹配或卫星导航技术(GPS) 进行定位。相对定位是通过测量机器人相对于初始位置的距离和方向来确定机器人的当前位置,通常也称为测程法。绝对定位和相对定位各有优缺点,具有互补性,将两者结合能形成更加准确可靠的定位系统。本实验模块的设计就是先用测程法进行相对定位,然后利用电子罗盘进行纠正。

2 定位原理及硬件设计

2.1定位原理

本设计对应的机器人是前后轮独立驱动的,在两个后轮的内侧分别装上两个光电开关。本设计中应用的光电开关[1]是集发射器和接收器于一体的光电传感器。轮子的轴线共有6根,当轮子旋转轴线阻挡了光电开关的发射器发射的光线时,光电开关输出端会产生一个从低到高的跳变,单片机的计数器会对此种跳变进行计数。根据计得的数就可以算得轮子转过的圈数,从而可以分别算出机器人左右轮移动的距离。从而可以得出机器人转过的角度等等,进而可以得出机器人的准确位置。由于轮子存在打滑现象,并且轮间距,轮径,几何中心的重合精度也会带来一定的误差,而本设计中电子罗盘的作用就是对机器人移动的角度误差进行适时地纠正,减少误差。

2.2定位模块硬件设计

本实验用的处理单元是AT89C2051。 AT89C2051是一带有2K字节闪速可编程可擦除只读存储器,高性能8位CMOS微型计算机。它有2个16位的计数器,15根可编程的I/O口线,5个中断源。通过在单块芯片上组合通用的CPL1和闪速存储器,ATMEL AT89C2051是一强劲的微型计算机,它对许多嵌入式控制应用提供一高度灵活和成本低的解决办法。用到的电子罗盘为TDCM3,有8个引脚,3种模式状态,设计中应使RX=1,即选取状态为normal mode。本设计中还用到了NE555P组成的单稳态电路,用于对光电开关产生的开关信号进行整型,消除干扰。硬件电路结构图如下图所示:

o4YBAGBtIjiALmB2AABvLbZppr8380.png

3、定位算法介绍

假设轮直径为2R,轮子的轴线数为6,在时间内光电开关输出的脉冲数为N,车轮运行的距离为S,L为小车左右轮的间距,则有:

20100810143158242.jpg

算法分析图如下:

20100810143158243.jpg

图中A(x,y,α )为小车后轮轴的中点,α 为小车中轴与X轴的夹角,SL,S,SR分别为小车左轮、小车、小车右轮的运行距离,假设小车在水平面内做纯滚动运动,在时间内小车从A点到B( x + Δx, y + Δy,α + Δα )点,则有

pIYBAGBxRAWAcMlOAANx3-VnGK0954.png

o4YBAGBxQ_qATvBEAAISWczM6t8629.png

4 软件流程

定位主程序处于无限循环中,每经过一段延时时间,对电子罗盘TDCM3和T0 T1进行读数,然后数据送入2051进行处理。TDCM3有三种工作模式,程序中应令RX=1即进入Normalmode。Init()为初始化函数,DelayTime()为延时子程序,Get_dir()为TDCM3读角度子程序,process()为AT89C2051处理子程序,flag为状态标志。TR1和TR0为计数器T1 和T0启动控制位。程序流程图如下图所示:

pIYBAGBxQ_GAdT4bAAAm9J7zQm8013.png

5 显示测试

定位的硬件模块设计并制做完成后,为了测试模块的性能,可以在AT89C2051单片机端口接上由MAX7219和LED组成的显示模块,将程序烧写到2051中后,定位模块测得的数据会显示在LED上。该定位模块成本低,定位的测量误差基本可以满足误差的要求,可以在应用于诸多场合。

6 结论

本文对定位模块的设计方法进行了阐述,重点介绍了定位模块的软硬件设计及相应的算法。测程法在短期内能提供很高的定位精度,但其无限的误差累积是最大的缺点,而将光电开关测得的数据信息与电子罗盘测得的角度信息进行融合,可以有效地克服这一缺点。在测程法中由于做了一些近似,会带来一定的舍入误差,所以在计算时要使用双精度数据以减小这一误差。

创新点:

本设计是基于测程法的定位模块的设计,但是存在界的累积误差,而用电子罗盘对其角度进行修正,可以有效地减小误差。

本设计中用到了由NE555P组成的单稳态电路,能够很好地滤除突发脉冲的干扰,从而使得2051对电子开关产生跳变的计数更加准确。

责任编辑:gt

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

    关注

    5992

    文章

    43910

    浏览量

    619660
  • 机器人
    +关注

    关注

    206

    文章

    26831

    浏览量

    201033
  • gps
    gps
    +关注

    关注

    22

    文章

    2735

    浏览量

    164079
收藏 人收藏

    评论

    相关推荐

    at89c2051实用程序集

    ) DS1302.EXE SUB6----AT89C2051与上位RS232通讯接口子程序 源程序/原理图(25K) RS232.EXE SUB7----VB5.0 与AT89C2051通讯接口子程序 源程序
    发表于 10-14 17:04

    SM894051/AT89C2051

    SM894051/AT89C2051***新茂(SyncMOS)与爱特梅尔(ATMEL)8051内核单片机替换表SM8952AC40PP/JP/QP=AT89S52-24PU/JP
    发表于 07-05 14:33

    AT89C2051烧写程序问题

    怎么用RF910烧写AT89C2051啊,引脚怎么连,比如单片机1脚链烧写器的那个脚啊
    发表于 09-14 09:09

    AT89C2051单片机1智能充电器

    AT89C2051单片机1智能充电器
    发表于 04-10 18:38

    AT89C2051单片机控制实现的32×16的矩阵交换

    AT89C2051单片机控制实现的32×16的矩阵交换
    发表于 11-07 18:53

    AT89C2051的中文数据资料

    ), 器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可为您提供许多高性价比的应用场合。
    发表于 07-20 17:23

    如何利用AT89C2051单片机实现水温控制系统的设计

    文末下载完整资料                基于单片机的水温控制系统设计                      摘要:  本系统以AT89C51,AT89C2051单片机为核心
    发表于 11-10 08:58

    基于AT89C2051单片机的数字电容表设计

    基于AT89C2051单片机的数字电容表设计:AT89C2051单片机的P1.0、P1.1的模拟输入阻抗很低,被测信号进行阻抗变换后,才能送入P1.0(电容积分信号)、P1.1(参考电
    发表于 09-13 16:52 144次下载

    AT89C2051单片机时钟程序源代码

    AT89C2051单片机时钟程序源代码:AT89C2051组成的时钟电路原理图
    发表于 03-06 10:14 203次下载

    AT89C2051单片机引脚图,引脚说明

    AT89C2051高性能8位单片机AT89C2051引脚图)  
    发表于 04-29 22:06 1.5w次阅读
    <b class='flag-5'>AT89C2051</b><b class='flag-5'>单片机</b>引脚图,引脚说明

    AT89C2051单片机的比较器的应用

    AT89C2051单片机的比较器的应用 AT89C2051的一个特殊应用,用它的比较器做一个光强调节器,应用
    发表于 09-13 16:28 2476次阅读

    AT89c2051单片机介绍

    AT89c2051单片机是ATMEL公司出产的低电压,高性能COMS八位单片机。本文为您提供了 AT89c2051 单片机的主要性能参数,功
    发表于 08-11 15:26 381次下载
    <b class='flag-5'>AT89c2051</b><b class='flag-5'>单片机</b>介绍

    基于AT89C2051单片机GPS时钟系统

    基于AT89C2051单片机GPS时钟系统
    发表于 02-07 16:14 33次下载

    使用AT89C2051单片机实现模转数换的程序免费下载

    本文档的主要内容详细介绍的是使用AT89C2051单片机实现模转数换的程序免费下载。
    发表于 03-25 11:36 26次下载

    基于AT89C2051单片机语音模块的语音报价系统设计

    电子发烧友网站提供《基于AT89C2051单片机语音模块的语音报价系统设计.pdf》资料免费下载
    发表于 10-13 10:52 3次下载
    基于<b class='flag-5'>AT89C2051</b><b class='flag-5'>单片机</b>语音<b class='flag-5'>模块</b>的语音报价系统设计