1.控制器的功能
机器人的控制系统是其最重要的组成部分,作用就相当于人类的大脑。它负责接收外界的信息与命令,并对接收到的信号与命令进行及时处理,以形成独特的控制指令,控制机器人做出相应的反应。对于机器人来说,保证其有效工作的控制系统包含:控制器、专用的传感器、运动伺服驱动器等。同时,机器人除了需要具备基本的运动控制功能外,还需要具备一些其他功能,以方便人们与机器人开展人机交互和读取系统参数,具体包括:
(1)记忆功能。在仿蛇机器人的控制系统中,一般会配置SD卡,它可以用来存储机器人的关节运动信息、位置姿态信息以及控制系统运行信息。
(2)示教功能。通过示教功能寻找机器人各类运动的最优姿态和最佳流程,以便机器人照样使用。
(3)与外围设备的通信功能。主要通过输入和输出接口、通信接口实现与外部设备的通信和控制。
(4)传感器接口。仿蛇机器人的传感系统包含:位置检测传感器、视觉传感器、触觉传感器和力传感器等,这些传感器随时都在采集机器人的内部和外部的信息,并将其传送到控制系统,以实现机器人的运动控制。
(5)位置伺服功能。机器人的多轴联动、运动控制、速度和加速度控制等工作都与位置伺服功能相关,这些运动需要通过程序编写实现。
(6)故障诊断与安全保护功能。机器人的控制系统时刻监视着其运行状态,并进行故障状态的安全保护,一旦检测到机器人的运动发生故障,就立即停止工作以保护机器人。
2.控制器的种类
(1)单片机。
单片机(Microcontrollers,见图5-1)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小巧而完善的微型计算机系统,在控制领域应用十分广泛。
图5-1 89S52单片机
单片机自动完成赋予其任务的过程就是单片机执行程序的过程,即执行具体一条条指令的过程[138]。所谓指令就是把要求单片机执行的各种操作用命令的形式写下来,这是在设计人员赋予它的指令系统时所决定的。一条指令对应着一种基本操作。单片机所能执行的全部指令就是该单片机的指令系统。不同种类的单片机其指令系统亦不同。为了使单片机能够自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是单片机能够识别和执行的指令),这一系列指令的集合就称为程序。程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像摩天大楼是由许多房间组成一样,指令就存放在这些单元里。众所周知,摩天大楼的每个房间都被分配了唯一的一个房号,同样,存储器的每一个存储单元也必须被分配唯一的地址号,该地址号称为存储单元的地址。只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以十分方便地被取出,然后再被执行。程序通常是按顺序执行的,所以程序中的指令也是一条条顺序存放的。单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中)。在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令能够顺序执行。
单片机与计算机的主要区别在于:
①计算机的CPU主要面向数据处理,其发展途径主要围绕数据处理功能、计算速度和精度的进一步提高而展开。单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。
②计算机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64KB[139]。
③通用微机中的I/O接口主要考虑其标准外设,如CRT、标准键盘、鼠标、打印机、硬盘、光盘等。单片机的I/O接口实际上是向用户提供的与外设连接的物理界面,用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。
简单而言,单片机就是一个集成芯片外加辅助电路构成的一个系统。由微型计算机配以相应的外围设备(如打印机)及其他专用电路、电源、面板、机架以及足够的软件就可构成计算机系统。
图5-2 DSPIC30F4011-30I
(2)DSP。
DSP(Digital Signal Processor,见图5-2)是一种独特的微处理器,它采用数字信号来处理大量信息[140]。工作时,它先将接收到的模拟信号转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。DSP不仅具有可编程性,而且其实时运行速度极快,可达每秒数以千万条复杂指令程序,远远超过通用微处理器的运行速度,是数字化电子世界中重要性日益增加的电脑芯片。强大的数据处理能力和超高的运行速度是其最值得称道的两大特色。超大规模集成电路工艺和高性能数字信号处理器技术的飞速发展使得机器人技术如虎添翼,将得到更好的发展。
DSP的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作模式,提供特殊的DSP指令,可以用来快速实现各种数字信号处理算法[141]。根据数字信号处理的相关要求,DSP芯片一般具有如下特点:
①在一个指令周期内可完成一次乘法和一次加法;
②程序和数据空间分开,可以同时访问指令和数据;
③片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
④具有低开销或无开销循环及跳转的硬件支持;(www.xing528.com)
⑤具有快速中断处理和硬件I/O支持功能;
⑥具有在单周期内操作的多个硬件地址产生器;
⑦可以并行执行多个操作;
⑧支持流水线操作,使取址、译码和执行等操作可以重叠进行。
(3)ARM。
ARM(见图5-3)是高级精简指令集机器(Advanced RISC Machine)英文首字母的缩写形式,是一个32位精简指令集(RISC)的处理器架构,它广泛用于嵌入式系统设计[142]。ARM开发板根据其内核可以分为ARM7、ARM9、ARM11、Cortex-M系列、Cortex-R系列、Cortex-A系列,等等。其中,Cortex是ARM公司出产的最新架构,占据了很大的市场份额。Cortex-M是面向微处理器用途的;Cortex-R系列是针对实时系统用途的;Cortex-A系列是面向尖端的基于虚拟内存的操作系统和用户应用的。由于ARM公司只对外提供ARM内核,各大厂商在授权付费使用ARM内核的基础上研发生产各自的芯片,形成了嵌入式ARM CPU的大家庭。提供这些内核芯片的厂商有Atmel、TI、飞思卡尔、NXP、ST、三星等。
ARM内核采用精简指令集计算机(RISC)体系结构,是一个小门数的计算机,其指令集和相关的译码机制比复杂指令集计算机(CISC)要简单得多,其目标就是设计出一套能在高时钟频率下单周期执行的简单而高效的指令集。RISC的设计重点在于降低处理器中指令执行部件的硬件复杂度,这是因为软件比硬件更容易提供更大的灵活性和更高的智能水平。因此ARM具备了非常典型的RISC结构特性:
①具有大量的通用寄存器;
②通过装载/保存(load-store)结构使用独立的load和store指令完成数据在寄存器和外部存储器之间的传送,处理器只处理寄存器中的数据,从而避免多次访问存储器;
③寻址方式非常简单,所有装载/保存的地址都只由寄存器内容和指令域决定;
④使用统一和固定长度的指令格式。
这些在基本RISC结构上增强的特性使ARM处理器在高性能、低代码规模、低功耗和小的硅片尺寸方面取得良好的平衡。
图5-3 STM32F103芯片
图5-4 Arduino芯片
(4)Arduino芯片。
Arduino(见图5-4)是一款快捷灵活、易学易用的开源电子原型平台,它包含硬件(各种型号的Arduino板)和软件(Arduino IDE),是由一个欧洲开发团队在2005年冬季开发成功的。Arduino的成员十分众多,其中包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。它构建于开放的原始码simple I/O界面版,具有类似Java、C语言的Processing/Wiring开发环境,包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;软件部分则是Arduino IDE,类同于计算机中的程序开发环境。用户只要在IDE中编写程序代码,将程序下载到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了[143]。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境[144]。其板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)来实现的。基于Arduino的项目可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,它们之间进行通信(比如Flash,Processing,MaxMSP)来实现,因为软件比硬件更容易提供更大的灵活性和更高的智能水平,因此Arduino具备以下特性:
①跨平台运行。Arduino IDE可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发[145]。
②简单清晰、易学易用。对于初学者来说,它极易掌握,同时又有着足够的灵活性。Arduino语言基于wiring语言开发,不需要太多的单片机基础和编程基础,简单学习以后,一般人也可以快速地进行开发。
③开放性。Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。
④发展迅速、应用广泛。Arduino简单的开发方式使得开发者更关注创意与实现,更快地完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。
(5)控制器的选择。
通过对以上各类控制器的性能特性和使用特点进行比较,可以发现ARM和DSP的性能比单片机和Arduino芯片的性能要好,但对应软件的使用和编程的复杂度较大。由于本教程和教具的目标群体是青少年学生,这个群体的专业知识和编程能力偏低,所以,在设计仿蛇机器人的控制系统时选择Arduino作为主控芯片,比如,可从网上直接购买Arduino开发板(见图5-5)。
Arduino UNO R3是一款市场中较为常见、价格较低的开发板,即使小学生也可以在一周内完成简单操作,包括硬件连接、软件打开、程序下载等。该开发板是基于ATMGA328的单片机,它拥有14个数字I/O引脚,其中6个可以作为PWM输出,6个模拟输入、1个16MHz振动器、1个USB连接端、1个电源端、1个IC5P接头、1个复位键。该Arduino开发板包含组成微控的所有结构,同时仅仅需要一条USB数据连接线就可以实现与电脑相互通信、程序的下载,同时也支持外部电池直接供电运行。
图5-5 Arduino开发板
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。