单片机实现的简易智能机器人

发布者:anluran最新更新时间:2011-09-27 关键字:单片机  简易智能机器人 手机看文章 扫描二维码
随时随地手机看文章

  引言

  随着微电子技术的不断发展,很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人

  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。

  

电机控制电路

[page]

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个按键组成,其中一个为启动键,另一个为显示切换键,当机器人行走完全程后,按下该键,将显示整个行走过程的时间。[page]

2.5 显示单元

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

  2.6 声光报警单元

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

  2.7 电源单元

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

  3 系统的软件设计

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

  

 

  4 结束语

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

  

关键字:单片机  简易智能机器人 引用地址:单片机实现的简易智能机器人

上一篇:基于单片机的电子密码锁设计
下一篇:基于C8051F920的无线电遥控多路开关系统设计

推荐阅读最新更新时间:2024-03-16 12:42

基于STM32单片机1602显示电子时钟
1、本系统采用1602显示时分秒,4个按键可以调整时间,一个按键是选择按键,一个按键是加,一个按键是减,一个按键是退出按键。 2、当选择按键按下的时候,该选择位闪烁。 主函数代码: #include delay.h #include sys.h #include 1602.h #include timer.h #include key.h u8 table1 = liyang ; u8 table2 = 9876543210654321 ; signed char miao,fen,shi; u8 flag_100ms=0; u16 count_ms=0; u8 S1num; /******************
[单片机]
用51单片机控制的LED流水灯设计
  1.引言   当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。   2.硬件组成   按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系
[单片机]
用51<font color='red'>单片机</font>控制的LED流水灯设计
51单片机资源扩展:从片内ROM跳转到片外ROM
源于一年前想自己动手给51写个OS,编译选Large模式,调试时整个流程都跑的好好的,可是烧写到片上后得不到预期的效果,后来查书才知道51单片机片上只有4KRom,如果没有扩展片外Rom,当访问4K以外的程序空间,程序指针又会回到最开始执行。参考手册扩展片外Rom后,能访问达64K的程序空间。网上能搜索到的扩展方式都是将EA引脚接地,让MCU上电后从外部ROM开始执行。但查看芯片手册,明明说EA为高时,程序从片内ROM执行,当执行到0x1000以上地址时(标准51单片机),会跳转到片外ROM执行。按网上的做法,为了扩展个片外ROM,片内的基本ROM都不用了,有点浪费了,于是开始找资料如何从片内跳转到片外执行。 射人先射马,发
[单片机]
51<font color='red'>单片机</font>资源扩展:从片内ROM跳转到片外ROM
DHT11温湿度检测器 基于51单片机的proteus仿真
单片机源程序如下: #include reg52.h /////////////头文件 //////////////////////////////////////////////////////////////////////////// void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str); void ConfigTimer0(unsigned int ms); unsigned char IntToString(unsigned char *str, int dat); extern bit Start18B20(); ex
[单片机]
DHT11温湿度检测器 基于51<font color='red'>单片机</font>的proteus仿真
上汽变速器陆季波:高转速深度集成电桥的解决方案
2020年12月3-4日,由盖世汽车主办,上海市嘉定区经济委员会特别支持的“2020中国汽车动力总成电气化国际峰会”在上海汽车城瑞立酒店隆重召开。峰会期间,上海汽车变速器有限公司前瞻技术总监 陆季波博士发表了精彩演讲。 上海汽车变速器有限公司前瞻技术总监 陆季波博士 以下为演讲实录: 各位上午好!很荣幸今天有机会向大家介绍一下我们公司的高转速深度集成电桥的解决方案。今天的汇报大概分为三个部分,首先简单介绍一下我们上海汽车变速器有限公司,然后介绍一下我们公司是动力总成电气化全方位解决方案的提供商,切合今天的主题,最后比较详细的介绍一下我们高转速深度集成电桥,我们公司内部叫S-EDS。 上海汽车变速器有限公司(以下简
[汽车电子]
上汽变速器陆季波:高转速深度集成电桥的解决方案
单片机双机通信(C51程序)
/* 发送程序 连线:两个单片机用3根线连起来,要共地,rxd,txd要交叉连接 程序效果:通过主机发送,从机接收 在主机中通过记下按键按下的次数,主机中显示最后 按下的六个数值,并发送给从机,从机也显示这六个数值 */ #include reg52.h //头文件 #include intrins.h //循环移位文件 #define uchar unsigned char//宏定义 #define uint unsigned int sbit key1=P3^5; //位声明 uchar code table ={0X00,0x3f,0x06,0x5b,//数码管显示的数值 0x4f,0x66,0x6d,0x7d,0x07
[单片机]
51单片机实现直流电机的调速控制
前一段时间一直拿一个开发板练习51,觉得对AD还不是很熟练,就想单独画一块板子,图都做完了一查价钱,小小的一个样板就要上百,实在有点舍不得,就先再proteus上仿真了一下,然后准备在万用板上搭电路。 电路图如下 占空比18%-82%连续可调,通过调节电路中的电位器实现。 做了单定时器控制和双定时器控制两个程序,电路图一样。 单定时器控制程序 #include reg51.h // #include intrins.h int count0=1000; bit A=0; sbit IN1=P3^4; sbit IN2=P3^5; sbit INTR=P3^2; sbit wr=P3^6; sbit rd=P3^7;
[单片机]
8051单片机供水系统水位控制的硬件电路设计
供水系统水位控制原理 下图是水塔水位控制原理图。图中虚线表示允许水位变化的上下限。在正常情况下,应保持水位在虚线范围之内,为此,在水塔的不同高度安装固定不动的三根金属棒,以感知水位变化情况。其中A棒处于下限水位以下,C棒处于上限水位,B棒在下限水位处。A棒接+5V电源,B棒、C棒各通过一个电阻与模拟地相连。 水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制的目的。供水时,水位上升,当达到上限时,由于水的导电作用,B棒、C棒连通+5V电源,因此,b、c两端均为高电平“1”状态。这时,应停止电机和水泵的工作,不再给水塔供水。 当水位降到下限时,B棒、C棒都不能与A棒导通,因此,b、c两端均为“0”状态。这时,应启动电机,
[单片机]
8051<font color='red'>单片机</font>供水系统水位控制的硬件电路设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved