基于LPC2104的爬壁机器人控制系统设计

发布者:沈阳阿荣最新更新时间:2012-08-30 来源: 单片机及嵌入式系统应用 关键字:爬壁机器人  LPC2104  μCOS-II  ARM 手机看文章 扫描二维码
随时随地手机看文章

引言

近年来,随着微机电系统(MEMS)技术的发展和微小型移动机器人应用领域的不断拓展,出现了这样一种需求,即用微型爬壁机器人代替人工进行各种极限作业,如公安消防中使用微型爬壁机器人进行纵横交织;上下连通的大楼通风管道进行灾情现场考察;敌情侦察;或进入空间狭窄的核工业管道群之间进行外管壁的检测和维修等。微型摒弃壁机器人具有广泛的应用前景,在国家自动科学基金和上海市启明星的联合资助下,笔者开发了基于并联腿机构的四足微型爬壁机器人。

1 机构简介

本文所设计的微型爬壁机器人(长10cm,宽4cm,高4cm)采用四足对称结构,随机构采用并联机构(也称并行三连杆机构),吸附装置采用仿生高分子粘性材料经切削加工制成的贴性吸盘。每一条腿有三个自由度,分别通过三个微型直流电机配合微型线杠螺母机构直接驱动。图1中,电机1驱动腿机构,使其实现左、右转动;电机2驱动机器人小腿,实现向前、向后迈步;电机3驱动机器人大腿,实现大腿的抬起、放下运动。协调控制四条腿上的12个直流电机,就可以使微型爬壁机器人实现前进、倒退和转弯等各种运动。

2 控制系统硬件设计

该微型爬壁机器人采用12个微型电机驱动,4个接触传感器,4个压力传感器,以后还要增加用于壁障的红外传感器和用于采集现场信号的微型摄像头,所以对主控制器的要求较高。设计中,最终选定Philips公司最新开发的基于32位ARM7TDMI-S内核的低轼耗ARM处理器LPC2104作为控制系统主控制器。LPC2104具有以下特性:

*128KB片内Flash程序存储器,带ISP和IAP功能;

*16KB静态RAM;

*向量中断控制器;

*仿真跟踪模块支持实时跟踪;

*标准ARM测试/调试接口,兼容现有工具;

*双UART,其中一带有调制解调器接口;

*高速I2C串行接口,400kb/s;

*SPI串行接口;

*2个定时器分别具有4路捕获/比较通道;

*多达6路输出的PWM单元;

*实时时钟;

*看门狗定时器;

*通用I/O口;

*CPU操作频率可达60MHz;

*两个低功耗模式,空闲和掉电;

*通过外部中断,将处理器从掉电模式中唤醒;

*外设功能可单独使能/禁止实现功耗最优化;

*片内晶振的操作频率范围10~25MHz;

*处内PLL允许CPU可以在超过整个晶振操作频率范围的情况下使用。

微型爬壁机器人控制系统的原理框图如图2所示,选用LPC2104作为嵌入式控制器。为提高系统效率和降低功耗,功放驱动电路采用基于双极性H-桥型脉宽调整方式PWM的集成电路L293D。L293D采用16引脚DIP封装,其内部集成了双极型H-桥电路,所有的开量都做成n型。这种双极型脉冲调宽方式具有很多优点,如电流连续;电机可四角限运行;电机停止时有微振电流,起到“动力润滑”作用,消除正反向时的静摩擦死区:低速平稳性好等。L293D通过内部逻辑生成使能信号。H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM)。另外,L293D将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。选用一路PWM连接EN12引脚,通过调整PWM的占空比可以调整电机的转速。选择一路I/O口,经反向器74HC14分别接IN1和IN2引脚,控制电机的正反转。为了节省LPC2104的I/O口资源,选用2片74LS138和IN2引脚,控制电机的正反转。为了节省LPC2104的I/O资源,选用2片74LS138译码器对I/O口进行扩展,每片分别选用3路I/O作为输入信号和1路I/O作为片选信号,这样就可以将8路I/O口扩展或16路I/O口。如前所述,因为直注电机采用PWM调速,这样每1个电机至少需要1路PWM,12个电机需要12路PWM,而LPC2104只有6路PWM输出,所以选用2片电平锁存器74LS373使12个电机分成2组共用6路PWM信号。[page]

接触传感器由外层管和内部超弹性线构成,内外两层通过硅管隔开。当内线和外层接触时,开关关闭。通过这种方法,接触传感器向LPC2104发送信号,借此来控制吸盘的方向。

从压力传感器来模拟信号经A/D转换器转换成数字信号,LPC2104通过压力传感器来的信号来判断吸盘是否安全的吸附在墙壁上。

LPC2104还可以通过串口RS232和上位机进行通信。

3 控制系统软件设计

微型爬壁机器人控制系统软件选用嵌入式实时多任务操作系统μC/OS-II。它是一个源代码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用ANSI C写的,移植方便,且运行稳定可靠。目前,它已经在几十种从8位到64位的微处理器、微控制器上实现了成功的移植。下面首先介绍μC/OS-II在LPC2104上的移植过程,然后介绍微型爬壁机器人控制软件的设计。

3.1 μC/OS-II在LPC2104上的移植

移植μC/OS-II,主要包括:设置堆栈的增长方面,声明3个宏(开中断、关中断和任务切换),声明10个与编译器相关的数据类型;用C语言编写6个与操作系统相关的函数(任务堆栈初始化函数和5个钩子函数);用汇编语言编写4个与处理器相关的函数。

用汇编语言编写的4个与处理器相关的函数如下:

①OSStartHighRdy()用于在调度中使最高优先级的任务处于就绪态并开始执行;

②OSCtxSw()完成任务级的上下文切换;

③OSIntCtxSw()完成中断级任务切换,其过程与OSCtxSw()类似,只是在执行中断服务子程序后可能使更高优先级的任务处于就绪态;

④OSTickISR()是系统节拍中断服务子程序。

3.1.1 OS_CUP.H的移植

μC/OS-II不使用C语言中的short、int、long等数据类型的定义,因为它们与处理器类型有关,隐含着不可移值性,所以代之以移值性强的整数数据类型,这样,既直观又可移值。



    在μC/OS-II中,使用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()开中断和关中断来保护临界段代码。ARM处理器核的用户模式和执行Thumb代码时,不能改变处理器的开中断位I。为了兼容各种模式,使用软中断指令SWI使处理器进入管理模式和ARM指令状态,即使用SWI 0x02关中断,使用SWI 0x03开中断。

ΜC/OS-II使用结构常量OS_STK_GROWTH指定堆栈的增长方式,0表示堆栈从低地址往高地址增长,1表示堆栈从高地址往低地址增长。虽然ARM处理器核对于两种方式支持,但ADS的C语言编译器仅支持一种方式,即从高地址往低地址增长,并且必须是满递减堆栈,所以OS_STK_GROWTH的值为1。以上内容在文件OS_CPU.h中做如下定义。

Typedef unsigned char BOOLEAN;/*布尔变量*/

Typedef unsigned char INT8U; /*无符号8位整型变量*/

Typedef signed char INT8S;/*有符号8位整型变量*/

Typedef unsigned short INT16U;/*无符号16位整型变量*/

Typedef signed short INT16S;/*有符号16位整型变量*/

Typedef unsigned int INT32U;/*无符号32位整型变量*/

Typedef signed int INT32S;/*有符号32位整型变量*/

Typedef float FP32;/*单精度浮点数(32位长度)*/

Typedef double FP64;/*双精度浮点数(64位长度)*/

Typedef INT32U OS_STK;/*堆栈是32位宽度*/

_swi(0x02) void OS_ENTER_CRITICAL(void);/*关中断*/

_swi(0x03) void OS_EXIT_CRITICAL(void); /*开中断*/

#define OS_STK_GROWTH 1/*堆栈由高地址向低地址增长*/

3.1.2 OS_CPU_A.ASM文件的移值

OS_CPU_A.ASM文件要实现在多任务启动函数中调用OSSTartHightRdy(),任务切换函数OSCtxSw(),中断任务切换函数OSIntCtxSw()和时钟节拍服务函数OSTickISR()这4个汇编函数的改写。上层任务调度部分不需要任何改动。具体移值见网站www.dpj.com.cn。

3.2 系统任务划分及调度

3.2.1 系统任务划分

嵌入式实时系统中的任务不同于前后台系统中的子程序模块,任务是处理机按程序处理数据的过程,是个动态的概念。一般,一个任务对应于一段独立的主程序。它可以调用各种子程序,并使用各种系统资源如中断、外设等,以完成某种预定的功能,且允许多个任务并行运行。嵌入式系统任务划分,是将系统中所有要处理的事情划分为一个个相对独立的任务模块,所有待处理的任务模块按顺序建立一个个的任务,并分配任务的优先级。在主程序中,所需要做的工作只是建立这些模块的任务,然后每次执行就绪任务队列中优先级最高的任务。根据微型爬壁机器人控制系统的性能指标和技术要求,对可系统进行如下的任务划分:前进、后退、左转弯、右转弯、串行通信、数据采样与数据处理等任务。

3.2.2 任务调整

μC/OS-II的任务调度是按优先级进行的,根据各任务的实时性要求及重要程度,分别置它们的优先级为10、9、5、6、12、11,其中0、1、2、3、OS_LOWEST_PRIO3、OS_LOWEST_PRIO3、OS_LOWEST_PRIO2、OS_LOWEST_PRIO1、OS_LOWEST_PRIO0这几个优先级保留以被系统使用。优先级号越低,任务的优先级越高。

为了在后台实时检测同步信号的变化,及时产生相应的事件,可直接利用嵌入式微控制器所提供的各种中断,通过对中断服务处理程序传递信号量,来唤醒等待同步信号的任务,使这个任务从挂起状态到就绪状态,送到CPU执行,从而达到实时处理的目的。

在多任务系统中,消息、信号是系统能够在各个任务之间通信最常用的手段,其中,使用信号量是协调多任务最简单有效的手段。在μC/OS-II中,一个任务或者中断服务子程序,通过事件控制块来向另外的任务发信号。当微型爬壁机器人启动之后,首先通过接触传感器和压力传感器检测4只吸盘是否很好的与壁面吸合;同时,通过红外传感器检测前面是否有障碍物。如果一切正常就发送信号量给直线前进任务,直线前进任务接受到信号量开始运行,通过协调控制12个电机并配合相应传感器使爬壁机器人沿直线运行。当红外传感器检测到前面有障碍物时,会进入中断程序,在中断程序中发送信号给停止任务,停止任务接收以信号量后运行。首先使机器人停下来调整好姿势确保机器人四足吸在壁面上,然后发送信号量唤醒左转或者右转任务,控制机器人绕过障碍物。以后还可以给微型爬壁机器人配备微型摄像头,对目标现场进行实时数据采集。总之,在微型爬壁机器人的控制系统中,信号、消息不断传递,使得各个任务不断切换运行,整个系统得以正确运转工作。

4 未来的工作

因为微型爬壁机器人的关键技术是基于微机械电子技术、微驱动器技术、微传感器技术、高分子材料技术等方面,所以只有在这些方面有所突破,微型爬壁机器人才能走向实用化。所设计的微型爬壁机器人目前只能采用半闭环控制,因为微型电机没有理想的位置反馈传感器,所以目前只能通过反复和实验测出各位置的时间,然后通过时间来控制微型电机的转动位置,在以后的研究工作中,我们希望能在微型传感器方面有所突破。

关键字:爬壁机器人  LPC2104  μCOS-II  ARM 引用地址:基于LPC2104的爬壁机器人控制系统设计

上一篇:关于lpc2292外接ds1302时钟芯片的驱动程序
下一篇:LPC213x内部RTC供电的问题

推荐阅读最新更新时间:2024-03-16 13:07

基于ARM的GPS地面目标跟踪及报警系统的设计
  随着现代化科技的发展,人们对移动目标监控的要求越来越高。例如,地面目标跟踪及报警系统可协助家长实现对孩子的监控,孩子若遭遇走失或劫持事件,监控中心通过分析手持终端发送的GPS数据确定孩子所在位置,以采取相关安全措施。   1 引言   此外,地面目标跟踪及报警系统在城市出租车调度、物流运输监控等领域都有着广泛的应用前景。   地面目标跟踪及报警系统是伴随着GPS技术和GSM网络的成熟而发展起来的。20世纪90 年代初,GPS技术逐渐兴起,基于GPS的移动跟踪、监控系统开始走向市场。近年来,GSM网络发展迅速,其数据传输能力明显加强,并且,GPS技术更加成熟。2000年5月1日,美国政府宣布取消GPS普通定位的
[单片机]
基于<font color='red'>ARM</font>的GPS地面目标跟踪及报警系统的设计
基于ARM的网络型电能质量监测装置人机交互研发
0 引言 非线性、非对称、非平稳电力设备的大量使用,给保证供电质量带来了严峻的挑战。电能质量问题已经越来越引起用户和供电部门的重视。采取技术措施来对电能质量进行改善,首先就要对电能质量进行及时准确的监测。具有图形化接口的 人机交互功能 作为必不可少的功能之一,在 电能质量监测装置 的开发中占有重要的地位。文献[3-4]都实现了人机交互功能,但文献[3]只移植了μC /GUI 图形接口,而没有使用μC /OS-Ⅱ,系统对多任务的支持不够;文献[4]中完成了一定的人机交互功能,图形化程度不高,而且它们都是基于S3C44B0X 处理器。LPC2478 作为32 bit ARM7 处理器,集成了非常丰富的功能模块,可以大大减少外部
[电源管理]
ARM基础知识八
简介:ARM编译器中预定义的宏 ***************************************************** ARM编译器中预定义的宏 ***************************************************** ARM编译器预定义了一些宏,这些预定义宏对应一定的数值,有些预定义宏没有对应数值,见下表: _arm _ 使用编译器armcc,tcc,armcpp,tcpp时 _ARMCC_VERSION Ver 代表编译器版本号,其格式为: PVtbbb,其中: P为产品编号(1代表ADS) V为副版本号(1代表1.1) T为补丁版本号(0代
[单片机]
ST iMOTION™ IMC300赋予Arm® MCU最佳灵活性
英飞凌科技股份公司(FSE: IFX / OTCQX: IFNNY)发布IMC300全新电机驱动控制器系列。该系列将iMOTION™运动控制引擎(MCE)和新增的基于Arm® Cortex®-M0内核的微控制器整合在一起。该系列是对IMC100系列的提升,主要针对有着非常高的应用灵活性需求的变频驱动。这两个系列都采用了MCE 2.0,能助力驱动电机,可选PFC控制功能。通过使用MCE进行电机控制,客户将能把精力集中在完全独立运行于嵌入式Arm®微控制器的系统应用上。 英飞凌经实践验证的MCE 2.0实现了永磁同步电机(PMSM)的高效的FOC(Field Oriented Control)控制。MCE集成了所需的所有硬件和软件
[工业控制]
OEM/ODM力拱 64位ARM微服务器Q4登场
   安谋国际(ARM)架构的64位元微伺服器(Micro Server)可望于第四季上市。在原始设备制造商(OEM)与原始设计制造商(ODM)抬轿之下,采用64位元ARM处理器的微伺服器,预计最快可于下半年出炉,将与64位元x86架构微伺服器共同分食资料中心市场商机大饼。 超微企业副总裁暨伺服器业务部门总经理Suresh Gopalakrishnan表示,该公司第一代和第二代ARM架构64位元处理器仍将锁定在中低阶市场,但3年后将会跨足高阶领域。 超微半导体(AMD)企业副总裁暨伺服器业务部门总经理Suresh Gopalakrishnan表示,OEM与ODM采用可客制化设计的ARM架构处理器打造专用型伺服器的比重正与日俱增,
[手机便携]
ARM CEO:ARM应独立运作,不建议收购
网易科技讯 6月18日消息,据国外媒体报道,ARM控股公司的首席执行官沃伦·伊斯特(Warren East)近日表示,最适合ARM发展的道路就是让其作为一个独立的企业存在,任何企图收购ARM的买家都无疑是在浪费钞票。 伊斯特在旧金山接受采访时表示:“收购ARM的计划没有任何经济意义,那些想收购ARM的人唯一的借口可能就是想把ARM从他的竞争对手名单中除名。” 如今ARM生产的芯片已经被广泛的运用在全球顶尖的IT产品中,其中就包括了苹果公司的iPhone,同时半导体制造商高通公司以及德州仪器等等巨头都是ARM的客户。伊斯特表示使用ARM的芯片设计生产技术只需要支付数千万美元的专利费,而收购ARM的话则至少需要5
[单片机]
ARM S3C2410 看门狗设置原理及源码
S3C2410 看门狗只要有两个功能 1、作为常规时钟,并且可以产生中断 2、作为看门狗定时器使用,当时钟减到0时(超时),它将产生一个128个时钟(PLCK)的时钟信号。 看门狗的设置: 1、 看门狗的外部时钟源是有PLCK提供的, plck 通过预分频 和 与比例因子 产生适合看门狗的时钟。 t_watchdog = 1/ 上面就是它的计算公式。 2、相关寄存器的介绍 WTCON watchdog控制寄存器 看门狗控制寄存器能够禁止或者允许看门狗时钟,从四个不同的时钟源中挑选时钟信号,允许或禁止中断,并且能允许或禁止看门狗时钟输出。如果用户想要使用看门狗作为普通时钟,应该中断使能
[单片机]
三星宣布与 Arm 合作,以 GAA 代工技术优化下一代 Cortex-X CPU 内核
2 月 20 日消息,三星电子旗下芯片代工部门宣布与 Arm 合作,共同开发、优化下一代 Cortex-X 核心。据介绍,此次合作涉及通过使用 Arm 最新 Cortex-X 设计和三星 GAA 工艺,旨在提升 CPU 性能和能效表现。 也就是说,Arm 下一代 Cortex-X 系列 CPU 架构将针对三星电子的 Gate-All-Around(GAA)芯片制造技术进行优化,这意味着基于下一代 Cortex-X 系列架构的 CPU 在使用三星 2nm 和 3nm GAA 工艺制造时可获得进一步优化,从而提供更高的性能和更低的功耗。 IT之家查询相关资料获悉,GAA 是目前业界公认的下一代技术,相比 FinFET 进一步改进了半导
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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