微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于STC12C5A60S2的教育机器人的设计与实现

基于STC12C5A60S2的教育机器人的设计与实现

时间:09-13 来源:互联网 点击:

摘要:主要介绍以STC12C5A60S2单片机为核心的教育机器人设计,阐述了教育机器人的硬件电路设计、软件模块以及控制算法设计。系统设计的红外光电检测阵列和模糊自整定PID控制器,使教育机器人在行走时更平稳,且控制方法简单、实用。该系统可用于无人驾驶、自动探测等人工智能等领域。
关键词:STC12C5A60S2;红外光电检测阵列;模糊自整定PID控制

0 引言
目前许多高等教育院校采用教育机器人进行课堂教学和培养学生的创新能力。本文设计的教育机器人通过红外光电传感器阵列检测路面信息并利用模糊自整定PID算法将采集的路面信息和电机运行数据进行实时处理,实现教育机器人的智能巡航并将机器人的状态显示输出。

1 机器人的组成及工作原理
机器人由硬件和软件两部分组成。采用STC12CSA60S2单片机作为系统控制的核心部件,完成路面信息检测、直流电机控制、电机转速检测、数码管显示、蜂鸣器报警以及键盘输入等功能,硬件系统框图如图1所示。


软件部分主要完成路况检测、PID电机控制、输入输出人机接口,可实现各种机器人巡航动作、智能循迹等功能。

2 STC12系列单片机
本文采用的STC12C5A60S2单片机是是宏晶科技生产的STC12系列单片机。该单片机是单时钟/机器周期(1T),具有高速、低功耗、超强抗干扰和无法解密诸多优点。指令代码完全兼容传统8051,速度快8-12倍。工作电压为3.3 V~5.5 V(5V单片机),有6个16位定时器,兼容普通8051的定时器或4个外部中断,具有看门狗和EEPROM功能,并且内部集成MAX810专用复位电路。

3 硬件设计
3.1 系统电源
由于电机在启动瞬间电流很大,要求电源有足够大的驱动能力,因此系统采用双电源供电方式。利用LM7805将12 V锂电池组电压转换为5 V稳压电源给单片机最小系统电路、路面检测电路、数码管显示电路和电机测速电路供电。而电机驱动电路直接由另外一组锂电池输出的12 V电压直接供电。
3.2 电机驱动电路
本系统使用的直流电机额定电压为12 V,额定转速为300 rpm。电机驱动电路采用专用芯片L298N作为电机驱动芯片。用该芯片作为电机驱动,不仅稳定性好,大大地简化驱电路,而且驱动能力大,有利于电机转速的稳定。电机驱动电路如图2所示。


3.3 红外光电传感器寻迹阵列模块
红外光电检测电路工作原理是:红外线射到路面并反射,利用红外线在黑线和白线对光的反射系数不同的特点一白色反光线,黑色吸收光线,电路设计一个发射红外光和一个红外光敏二极管,当检测到黑线时,检测电路向单片机发出一个高电平信号。当检测到白色时,检测电路向单片机发出一个低电平信号。
由7组红外光电检测电路排成一排构成一个红外光电传感器阵列模块,安置在机器人的车头位置。在对黑线循迹的过程中,红外光电传感器阵列模块可以求得机器人对黑线轨迹位移偏移量。单片机检测到红外光电传感器阵列模块的信号与机器人的位移偏移量如表1所示。


当机器人行驶的状态不一样时,7组传感器输出的值也对应不同,从表中可以得到机器人在巡航过程中机器人所处位置与黑色轨迹的偏移量。
3.4 车速检测模块
教育机器人系统通过车速检测模块来读取当前车速。采用的方法是在后左右轮上分别粘贴一个均匀分布有黑白条纹的编码盘(见图3(a)),利用图3(b)的检测电路来对编码盘上的黑白条纹进行检测。当车轮转动时,红外接收管接收到的反射光强弱高低变化就会产生与车轮转速相对应的脉冲信号,将该脉冲信号进行放大整形后输入单片机的引脚P3.4和P3.5,记录单位时间内所得到的脉冲数,就能够表示出当前车左右轮子的速度,同时通过累加可以计算出小车所行走的路程。


3.5 其他电路
数码管显示电路主要是显示当前机器人的行走速度。采用LED数码管动态显示,段码用PNP三极管驱动。系统显示的距离范围在10米之内,选用4位LED共阳数码管,通过单片机编程实现动态扫描显示。显示字符由单片机P0口送出,P1.6、P1.7、P3.0和P3.1分别控制每一位数码管的动态显示。
报警电路通过单片机P3.7控制蜂鸣器来完成。P3.7输出低电平时,蜂鸣器报警;P3.7输出高电平,蜂鸣器不报警。单片机的外部中断输入口P3.2和P3.3与地之间分别接入轻触按钮作为系统的启动和停止开关,作为按键输入电路。

4 系统软件设计
系统控制的实现是由软件完成的。软件设计基于keilC51编写的,采用模块化结构设计,各个功能子块独立。在结构上由1个主程序文件main.c和8个子程序文件(key.c、pid.c、detect.c、seg.c、speed.c和motor.c)组成。main.c主程序文件完成一系列任务的初始化工作和处理各个任务工作的协调。key.c文件完成按键中断检测和蜂鸣器报警任务;seg.c文件完成数码管显示;sp∞d.c文件完成电机速度检测;motor.c完成PWM的配置和电机的控制;detect.c文件完成红外光电传感器阵列检测;pid.c文件实现模糊参数自整定PID运算处理。其中定时器TO产生采样周期T秒定时中断,每间隔T秒中断一次,完成一次PID控制计算,同时调用模糊参数自整定PID运算子程序对测试转速和设定转速进行差值计算得到输出值,用于配置PWM的输出,控制电机转速。主程序和定时器TO中断处理流程图如图4所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top