历史上的今天
返回首页

历史上的今天

今天是:2025年01月28日(星期二)

2021年01月28日 | 基于AT89C51单片机设计的简易智能机器人的设计

2021-01-28 来源:eefocus

简介:随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。


1 设计思想与总体方案


1.1 简易智能机器人的设计思想


本机器人能在任意区域内沿引导线行走,自动绕障,在有光源引导的条件下能沿光源行走。同时,能检测埋在地下的金属片,发出声光指示信息,并能实时存储、显示检测到的断点数目以及各断点至起跑线间的距离,最后能停在指定地点,显示出整个运行过程的时间。


1.2 总体设计方案和框图


本设计以AT89C5l单片机作为检测和控制核心。采用红外光电传感器检测路面黑线及障碍物,使用金属传感器检测路面下金属铁片,应用光电码盘测距,用光敏电阻检测、判断车库位置,利用PWM(脉宽调制)技术动态控制电动机的转动方向和转速。通过软件编程实现机器人行进、绕障、停止的精确控制以及检测数据的存储、显示。通过对电路的优化组合,可以最大限度地利用51单片机的全部资源。


P0口用于数码管显示,P1口用于电动机的PWM驱动控制,P2,P3口用于传感器的数据采集与中断控制。这样做的优点是:充分利用了单片机的内部资源,降低了总体设计的成本。该方案总体方案见图1。



2 系统的硬件组成及设计原理


此系统的硬件部分由单片机单元、传感器单元、电源单元、声光报警单元、键盘输入单元、电机控制单元和显示单元组成,如图2所示。



2.1 单片机单元


本系统采用AT89C51单片机作为中央处理器。其主要任务是扫描键盘输入的信号启动机器人,在机器人行走过程中不断读取传感器采集到的数据,将得到的数据进行处理后,根据不同的情况产生占空比不同的PWM脉冲来控制电机,同时将相关数据送显示单元动态显示,产生声光报警信号。其中,P0用于数码管动态显示,P1.0一P1.5控制2个电机,P1.6、P1.7为独立式键盘接口,P2接传感器,P3.2接计里程的光电码盘,P3.7接声光报警单元,P3.4、P3.5、P3.6接用于显示断点数目的发光二极管。


2.2 电机控制单元


本机器人采用了双电机双轮驱动的小车作为其底座。2个电机分别独立控制其左右两边的车轮,靠两边电机的转速的不同来实现转弯功能,还可让其原地转弯,便于控制。而传统的小车是靠动力电机和转向电机驱动,转弯角度难以控制,不便于使用。


电机控制电路采用大功率对管BDl39、BDl40组成的H型驱动电路,通过单片机产生占空比不同的PWM脉冲,精确调整电机的转速。这种电路由于工作在晶体管饱和或截止状态,避免了在线性放大区工作时晶体管的管耗,可以最大限度地提高效率;H型电路保证了可以简单地实现电机转速和方向的控制;电子开关的速度和稳定性也完全可满足需要,整套驱动电路是一种被广泛采用的电机驱动技术。电路见图3。



2.3 传感器单元


整个机器人共采用了9个传感器,分布在整个机器人的不同部位,相互配合起不同的作用,见图4。



图4中各传感器说明如下:


传感器1置于机器人正前方朝下的金属探测传感器,用于探测金属。


传感器2置于机器人正前方朝前的超声波传感器,用于检测障碍物。超声波来源于555产生40 kHz的方波信号,经超声波发射头发出。发射头不断发出信号,当遇到障碍物时,信号会被反射回来,从而接收头会接受到信号,将信号送入单片机进行相应的判断和处理。


传感器3置于机器人正前方朝下的红外光电传感器,用于检测停止线。红外发射管发出信号,经不同的反射介质反射,根据红外接收管是否接收到信号做出相应的判断。


传感器4、5置于机器人底座下方朝下的红外光电传感器,用于检测地面的引导线,原理同传感器3。


传感器6、7置于机器人正前方朝前的光敏电阻传感器,用于寻找光源。当机器人前方有光源照射时,光敏电阻的大小将会改变,将2个传感器的改变量进行比较处理后送入单片机,单片机将会产生相应的调整信号,使机器人朝光强的方向行走。


传感器8置于机器人后方两侧朝外的超声波传感器,用于在机器人遇到障碍物时的转弯处理,判断机器人是否完全绕开障碍物,原理同传感器2。


传感器9置于机器人正后方的光电码盘,用于计里程,借助于鼠标原理,选用直径为2.6 cm的塑料小轮自制光电码盘,经过打磨使其周长为8 cm,再在该小轮上打等距离的8个孔,如图5所示。最小测距精度可达到1 cm,足以满足要求,两侧装上光电传感器,将其安装在车尾,使之与车的行驶同步。就实际情况自制出来的各个孔之间的距离无法精确相等,但经过具体测量该光电码盘,能保证行驶50 cm产生50个脉冲,于是采用其作为计算距离的基准单位。在直道区,可由该电路产生的脉冲数,计算出铁片中心线至起跑线间的距离。



此外,为了清楚直观地观察到各传感器的工作状态,电路中还专门为每个传感器设计了工作指示灯,实时显示每个传感器的工作状态。


2.4 键盘输入单元


键盘输入单元采用独立式键盘,由2个按键组成,其中一个为启动键,另一个为显示切换键,当机器人行走完全程后,按下该键,将显示整个行走过程的时间。


2.5 显示单元


显示单元由2个7段数码管组成,为了减少整个系统的功耗,采用了由单片机软件译码,动态显示,实时显示每个断点到起点的距离以及整个运行过程的时间。


2.6 声光报警单元


用555作为振荡源,用单片机触发振荡源驱动电磁讯响器作为声音指示器和1只发光二极管作为光指示装置,从而组成声光报警单元。


2.7 电源单元


本系统采用2套电源分别对电机和控制电路进行单独供电。系统控制电路采用经7805稳压后的输出供电(5V),电机则采用4节AA电池来供电。


3 系统的软件设计


该系统配套的软件程序采用模块结构,由C语言编写完成。主要由初始化程序、偏道调整程序、偏离光源调整程序、声光指示子程序、读传感器状态、显示程序、定时器0的中断服务程序、定时器1的中断服务程序、外部中断0的服务程序、停车处理等模块组成。系统的主体流程如图6所示。



4 结束语


该机器人在认为设定的跑道上经过多次实验,达到了预期的效果,但是其智能化程度还远远不够。随着人工智能和神经网络技术的不断研究和深入,智能机器人的发展前景将会越来越广阔。


推荐阅读

史海拾趣

EMMICRO公司的发展小趣事

面对竞争激烈的电子市场,EMMICRO公司制定了精准的市场拓展策略。公司根据市场需求和客户需求,不断调整产品结构和市场定位,积极开拓新的销售渠道和合作伙伴。同时,公司还加大了对新兴市场的投入和布局,通过差异化竞争策略,成功打开了多个新的市场领域。

FOSLINK公司的发展小趣事

FOSLINK公司自成立以来,始终将技术创新视为企业发展的核心驱动力。在早期,公司专注于研发高性能的电子元器件,如混合积体电路(IC)和单石数位积体电路(ASIC)。通过不断的技术积累和优化,FOSLINK成功推出了多款具有行业领先地位的产品,不仅满足了市场对高质量电子元器件的需求,还引领了行业的技术进步。这一系列的创新成果,使FOSLINK在电子行业中逐渐崭露头角,赢得了众多客户的信赖和好评。

Artaflex公司的发展小趣事

在电子行业的初创时期,Artaflex公司以其敏锐的市场洞察力和技术创新能力脱颖而出。公司创始人凭借对电子技术的深入理解和前瞻性思维,带领团队开发了一款具有革命性的电子元件,极大地提高了电子设备的性能和稳定性。这一突破不仅为Artaflex赢得了市场的认可,也奠定了其在电子行业中的坚实地位。

AirBorn公司的发展小趣事

随着业务的发展,AirBorn开始将目光投向全球市场。公司积极参与国际电子展会,与全球各地的客户建立合作关系。同时,AirBorn还加大了对研发和生产设备的投入,提升产品质量和生产效率。这些举措使得AirBorn的产品在全球范围内赢得了良好的声誉,公司也逐渐成长为一家具有全球影响力的电子连接器制造商。

Dearborn Electronics Inc公司的发展小趣事

随着技术的不断进步,Dearborn Electronics Inc.不断投入研发,推出了一系列具有创新性的产品,如钽电容、陶瓷电容器等。这些产品以其卓越的性能和可靠性赢得了市场的广泛认可。同时,公司也积极拓展市场,将产品销售到全球各地,特别是医疗、石油、交通、工业等严苛应用领域。

上海国芯(Gcore)公司的发展小趣事
选择合适的速度传感器,确保能够准确测量被测物体的速度,并将其转换为电信号供555定时器处理。

问答坊 | AI 解惑

汽车电子上下游寻求联动2

摩托罗拉(中国)电子有限公司副总裁及总经理林信孚:    车载通信系统在中国发展前景巨大   摩托罗拉不只在无线通信、宽带通信领域具备相当经验和相当 实力,业已在汽车电子市场浸润了七十多年,在汽车通信领域也奠定 了其领先地位。摩 ...…

查看全部问答>

关于汇编语言转换为C语言

我有一个程序是用汇编写的(网上下载的),本人不会汇编,那位老师汇编好,帮忙看看,能不能翻译一下: ;************************************* ;STC89C51RC单片机,6M晶振 ;CH375A,D0--D7接S51,P2.0--P2.7 ;P0.7为红外输入 ;P0.6为无线电信 ...…

查看全部问答>

新手求助:Wince下的网络编程

要开发一个类似C/S模式的网络软件 我刚开始接触 什么都不了解 不知哪位达人能发个简单的例程给我看看?? …

查看全部问答>

请教

我用EVC 4编译了一个程序,如何从PC机上传送到硬件设备上,除了生成的EXE文件,还用到哪个DLL文件,请指点. 我的平台是用了WINCE 4.1模拟器,如果用VS2003开发的话除了EXE文件还需要哪个DLL文件,谢谢!…

查看全部问答>

关于单片机向串口发送数据的问题

我想用单片机(89c51)用下面的代码向串口发送数据,可不知道为什么不行。 不仅不能发送字符串,就连16进制的数都不能发。 main() {         TMOD=0x20;         TH1=0xe8;       &nb ...…

查看全部问答>

诚聘嵌入式开发人员,急急。。。

上海 外企诚聘嵌入式开发工程师/嵌入式开发主管,薪资是OPEN的,可以达到15K左右 1,主管(高级嵌入式开发软件工程师)   本科5年以上(不要求英文) 职位描述: 1、负责软件产品的系统分析和架构设计 2、指导工程师进行模块设计,解决工作 ...…

查看全部问答>

wince数据库,附代码,请教

{                 DWORD err = GetLastError();                 if…

查看全部问答>

MSP430F169如何与ADS931(一款AD芯片)连接

本人欲采用外部的AD模块进行模数转换,ADC芯片是TI的ADS931——我的办法是数据口与430的IO直接连,这样连接是否有问题?第二个问题是ADS931的CLK引脚和430该如何连接?谢谢 [ 本帖最后由 周星星在哈工程 于 2011-8-23 14:58 编辑 ]…

查看全部问答>

msp430单片机18B20测温程序

msp430单片机18B20测温程序 #include \"msp430x22x4.h\" typedef unsigned char uchar; typedef unsigned int  uint; #define DQ1 P2OUT |= BIT4 #define DQ0 P2OUT &= ~BIT4 #define DQ_in   P2DIR &= ~BIT4 #define DQ_o ...…

查看全部问答>