单片机机器人设计 下载本文

可以提供300mA的驱动电流,适用于继电器线圈工作电流小于300mA的使用场合。VCC的电压范围是10~30V。光电耦合器使用TLP521,其电流传输比不低于50%。晶体管9013的电流放大倍数大于50。当继电器线圈工作电流为300mA时,光电耦合器需要输出大于6.8mA的电流。其中,晶体管9013基极对地的电阻分流约0.8mA。输入光电耦合器的电流必须大于13.6mA,才能保证向继电器提供300mA的电流。图中光电耦合器的输入电流由7407提供,约20mA。二极管IN4001的作用是保护晶体管9013,防止9013关断时继电器线圈产生的感应电势所造成的损坏。

图3.18 输出驱动原理图

继电器的种类有好多种,本设计中采用的是超小型电磁继电器——当与电源回路并联的励磁线圈电压或电流达到规定值时动作,它的主要作用是电动机失压保护和制动以及反转控制等,有时也作过压保护。在这里用它来控制电动机的正反转。

图3.19 超小型继电器结构示意图

超小型继电器的内部结构示意图如图3.19所示。在继电器主体的塑料骨架上安装了线圈,固定了外罩,此骨架又是静触点簧片的支撑座。动簧片与薄片式弹簧连成一体。在没有激励状态下,薄片式弹簧给衔铁提供复原力,形成一对常闭点。在有激励状态下,衔铁被铁心吸引,形成一对常开点。 3.5硬件系统的抗干扰措施

在电平转换过程中提到的光电耦合器,是常用的一种硬件抗干扰措施,也是本设计所采取的主要硬件抗干扰措施。这是一种采用光电耦合器从电路上把干扰源和易干扰的部分隔离开来,使测控装置与现场仅保持信号联系,但不直接发生电的联系的隔离技术。隔离的实质是把引进的干扰通道切断,从而达到隔离现场干扰的目的。

除上面介绍的隔离技术外,还有以下几种硬件抗干扰措施: 3.5.1滤波技术

滤波是为了抑制噪声干扰,在数字电路中,当电路从一个状态转换成另一个状态时,就会在电源线上产生一个很大的尖峰电流,形成瞬变的噪声电压。在电源变压器的进线端加入电源滤波器,消弱瞬变噪声的干扰。 滤波器按结构分为无源滤波器和有源滤波器,也可分为低通滤波器、高通滤滤器、带通滤波器、带阻滤波器。在抗干扰技术中,使用最多的是低通滤波器,其主要元件是电容和电感。

3.5.2去耦电路

数字电路信号电平转换过程中会产生很大的冲击电流,并在传输线和供用电源内阻上产生较大的压降,形成严重的干扰。 在门电路的电源线端与地线端加接电容C1和C2,称为去耦电容,可以消除大部分高频干扰 3.5.3屏蔽技术与双绞线传输

屏蔽技术与双绞线传输方式都可以起到抑制外部电磁感应干扰的作用。屏蔽是指用屏蔽体通过空间进行电场、磁场或电磁场耦合的部分隔离开来,割断其空间场的耦合通道。屏蔽信号线的选取,一般的原则是:抑制静电感应干扰采用金属网的屏蔽线,抑制电磁感应干扰应该用双绞线。 3.6小结

本章根据设计的原理图,系统地分析了该巡线机器人的硬件结构及其电路设计,详细的说明了控制系统的组成,电机驱动电路、稳压电源、传感电路模块及其各自的硬件抗干扰措施等等。

4 控制系统的软件编程

在单片机应用开发中,软件编写与调试工作量一般占整个开发工作的70%—90%。它是为解决某个领域里的具体任务而编制的程序,具有明显的针对性、专业性和专用性。与硬件互相配合,协调一致的工作。硬件是基础,是软件赖于工作的基础,而软件是关键, 是关系到系统质量和功能的根本因素。

控制软件用AT89S51单片机的汇编语言编写。汇编语言程序没计在整个单片机系统中占有非常重要的地位:在单片机系统应用中,汇编语言程序不仅是人—机实现对话的基础,而且直接影响单片机整个控制系统的控制特性。 4.1工作流程图

该机器人可实现以下几种功能:巡线功能、越障功能和沿电力线行走功能。采用12个传感器与单片机的12个管脚相连,按事先设定好的规则判断,然后转向要实现的子程序执行。

根据题目或任务的要求,使用汇编语言编写源程序,进行汇编语言程序设计。一个实用程序从拟订设计的任务书到最后程序在机器上的模拟调试通过,一般要经过七个步骤。

(1)拟订设计任务书 (2)建立数学模型

(3)确定算法

(4)绘制程序流程图 (5)编写汇编语言源程序 (6)汇编

(7)上机调试

下面是机器人巡线越障过程的工作流程图:

启动检测有张开无检测有动作,大臂下降无检测有、行走无检测有动作,小臂上升测有动作,大臂上升无检测有闭合无检测有测有检测有、、行走无动作,大臂上升检测有闭合无检测有闭合无检无动作,大臂上升有动作,小臂上升检测有、行走无检测有、行走降无检测有动作,大臂下降无检测有动作,大臂下无检测有张开无检无无检测有张开无图4.1

工作流程图

4.2主程序

下面为该巡线机器人遇障完成一只臂动作的部分主程序:

ORG 0000H AJMP START ORG 0050H

SETB P3.7

START: MOV P3,#0FFH CLR P3.4 CLR P3.5

CLR P3.6 ;驱动行走电机全启动 MOV R6,#14H

LCALL DELAY ;延时1s NOP NOP

LOOP1: L1: L2: S1: L3: LCALL MOV MOV JB LCALL SETB SETB SETB MOV MOV LCALL JB LCALL MOV LCALL JB SETB LCALL CLR CLR MOV LCALL JB LCALL SETB SETB MOV MOV LCALL LCALL JB LCALL AJMP MOV LED P0,#0FFH P2,#0FFH

P1.0,#LOOP2 LED P3.4 P3.5 P3.6

P0,#0FEH R6,#14H DELAY P1.3,LOOP1

LED P0,#7FH DELAY

P3.1,L1 P0.7 P3.5

P3.6 R6,#28H DELAY

P1.1,L2 LED

P3.5 P3.6 P1,##07FH R6,#7CH DELAY

DELAY P3.1,L3 LED L4

P1,#0BFH ;LOOP2为传感器K2继续检测的循环程序;检测到障碍,显示灯提示行走行走电机

停止

;控制行走电机停下 ;小臂A2张开

;延时1s ;检测到小臂到位,提示小臂动作完成

;大臂A3动作下降

;检测到大臂到位,提示大臂动作完成

;驱动行走电机B1C1,机器人行走 ;延时稍长 ;红外传感器K2检测

;检测到障碍物,行走电机停止 ;小臂A4上升巡线 ;大臂A3上升寻线

LED ;延时稍长