智能机器人在当今社会的应用越来越广泛。从普通的玩具机器人到工业控制机器人,从能够炒菜的机器人到可以进行太空探测的机器人,可以预见今后智能机器人的应用将更加广泛。普通的无线遥控车大家都很熟悉,任天堂的电玩WII大家也都觉得很神奇。熟悉的不好玩,神奇的又玩不起,可能是很多人遇到的共同问题。本设计从全新的思维角度出发,制作一个日常生活可以玩的智能小车,以飨有共同爱好的读者。
系统总体设计
智能小车系统原理是,将三维坐标传感器安装在小车上,小车即具有智能感知功能,就会随着目标物的前后左右移动而跟着移动。系统主要有3个组件:一为三维坐标光感传感器(ETOMS-ET21X111),用于采集目标物的移动坐标,该传感器使用非常简单;二为MCU(EMC-EM78P156),读取传感器数据控制马达转动,EM78P156是市面上常见的MCU,使用简单,价格便宜;三是马达,马达选用普通直流马达即可,采用PWM控制。系统整体框架如图1所示。
该设计的整体功能简单概括起来就是:让小车能够跟着人(或是目标物)走。分开来讲需要实现以下3个小功能:传感器
硬件系统设计
1 传感器周边电路设计
ETOMS-ET21X111是一款高性能具有X、Y、Z坐标资料输出功能的光感传感器。具有如下特点:高速资料输出,每秒钟输出坐标资料高达75frame;低电压工作,电压范围2.7~3.5V;采用标准RS232串行资料输出格式输出坐标值;使用外部晶振,范围0.5~12MHz,通常采用3.58MHz;具有可控制曝光接口EO4~EO7。
EO4~EO7这四个接口是用于曝光控制的,既可以用软件进行控制,也可以用硬件的方式进行控制。根据自己的需要选择合适的即可。本设计采用硬件的方式将这四个接口全部置为高电平。
传感器周边详细的接口电路如图2所示,从图2中可知EO4~EO7为高,这是曝光设置为硬件拉高,也可以在软件中设置。IC正常工作时,坐标数据由RS232端口输出。注意图2中的4个LED为红外LED。IC工作电压是3.3V,系统采用5V供电。IC采用3.58MHz外接晶振,上电自动复位后即可正常工作。
2 MCU接口电路设计
MCU周边控制电路详细设计如图3所示。图3中L、L+控制左边路马达PWM,R、R+控制右路马达PWM。RS232接收传感器坐标数据输入。IC工作于3.3V电压,上电后自动复位。系统时钟采用4MHz外接晶振。
3 左路马达控制电路
左路马达控制电路如图4所示。右路马达控制电路同左路的一样,图中Q3、Q4采用PNP管,L和L+不可同时为LOW,以免造成短路。
软件系统设计
系统上电后,首先进行初始化,对EMC78P156的寄存器进行设置,使能中断标志寄存器,等待中断。图5是主程序流程图。
中断产生时进入中断处理子程序,首先要关闭中断标志且保护好现场,然后读取并解析XYZ坐标值,分成以下几种情况。
(1)判断X轴变化,如果X值在大于14小于等于17时,马达不左右转动,然后再判断Z轴坐标值的变化,如果Z值也在大于14小于等于17时,马达不前后转动。
(2)如果X轴坐标值大于17,判断Z轴坐标,若Z值大于17,则反转右马达,之后左右马达后转;若Z值小于14,则正转左马达,之后左右马达前转;否则马达不转动。