02 制作机器人该用什么单片机
很多接触机器人不久的朋友面对种类繁多的单片机常会感到困惑,到底它们之间有何不同?制作机器人用哪种单片机控制比较好?我与大家分享我在制作机器人过程中使用单片机的一些经验,希望能让初学者少些迷茫,让已经入门的朋友思维开阔。
撰写本文时,我仅有3年单片机实践经验和机器人制作经验,比较了解51系列和AVR系列单片机(见图2.1),本文中,我会着重讨论AVR单片机,都是我在机器人制作中一些切身体验,错误和偏颇可能难免,希望大家指正!
图2.1 笔者用AVR单片机做的吸尘机器人
2.1 入门首选 AT89S51系列单片机
AT89S51适合做单片机学习板、电子时钟、超声波测距仪等不需要采集模拟量和控制大功率外部元件的电路。S51与过去的C51的区别在于,S51支持ISP在线编程,即C51需要几百元的编程器编程,而S51仅需一条25针并口线和非常简单的转换电路,接在台式电脑打印机接口上,通过电脑中烧写程序的小软件,即可实现对S51单片机编程。从这一点看,AT89S51是制作机器人控制部分的入门之选。
2.2 爱好者制作机器人首选 AVR系列单片机
AVR单片机(见图2.2)是1997年由Atmel公司研发出的增强型内置Flash的RISC精简指令集高速8位单片机,具有高可靠性、功能强、高速度、低功耗等特点。AVR单片机比51单片机的运行速度快得多,其内部还集成了多路A/D转换器、电压比较器、ISP、I2C、JTAG总线电路、UART串口、大功率I/O口、看门狗等实用电路,并且很多AVR单片机型号有EEPROM、Flash、SRAM三种存储器,可以实现实时修改程序存储器中的内容,即AVR单片机可以自己修改自己的程序。同时,AVR单片机一般能工作在宽电压范围(2.7~6.0V),有的居然可以在1.8V电压下工作。虽然以上这些性能只是AVR众多性能中的一部分,然而已经让51系列单片机望尘莫及了。
图2.2 AVR单片机的各种封装形式
如此高性能的单片机,价格居然和51单片机差不多,比如ATmega8价格为8元左右,ATmega16在13元左右,这是AVR有极高性价比的真实写照。
AVR家族人丁兴旺,包括ATinyAVR(微小型),低功耗类,ATmegaAVR高、中、低档5类单片机。它们都基于同一核心技术,但在内部集成的电路多少上有所不同。不论你要做电子手表,还是进行视频处理,都有一款合适的AVR单片机能满足你的需要(见图2.3)。
图2.3 吸尘机器人的控制电路板
AVR的I/O口能输出20mA和吸收40mA的电流,不仅可直接驱动LED,甚至可直接驱动微型直流减速电机,而且AVR的I/O口可编程设置成输入、输出、高阻态,是真正的3态I/O口。
顺便提一句,目前非常火热的开源硬件平台Arduino也是基于AVR单片机的。
根据任务具体需要,选择最合适的单片机,使单片机资源充分利用,使系统性价比达到最高,同时兼顾未来扩展要求,不要一味选用高性能单片机,这就是单片机的选型原则。
2.3 高级机器人控制器 ARM
ARM是一个公司名,他们基于同一内核设计了很多高性能处理器,这些处理器都叫ARM。该技术被很多公司购买后生产出了集成很多功能电路的ARM芯片,使得ARM成为高性能单片机。ARM一般为32位单片机,适于处理大量复杂数据,很多ARM装上了μCOS2、Windows CE、Linux操作系统,能够同时运行多个程序。ARM广泛应用于手机、MP3、GPS导航仪、吸尘机器人等产品上。
用ARM+操作系统做超声波测距仪——杀鸡用了牛刀,用AVR中档单片机做机器视觉——有些吃不消。如果把它们调换一下,一切就恰到好处了。
2.4 音频/视频处理首选 DSP
DSP数字信号处理(Digital Signal Processing,简称DSP),是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
在高速小车循线、语音识别等领域,DSP被广泛应用。但如果仅用DSP检测几个碰撞开关、控制几个电机,当然会显得大材小用。
2.5 新兴控制器 FPGA
FPGA(Field - Programmable Gate Array),即现场可编程门阵列,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路出现的,系统设计师可以根据需要通过可编辑的连接,把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。简单来说,如果使用者想开发一个用简单数字逻辑电路就能控制的小车,又嫌搭电路麻烦,他就可以用软件给一个FPGA编程,让它实现数字电路功能,去控制小车。也就是说,FPGA可被用来模拟各种电路,有的FPGA甚至能模拟51单片机的运行。由于FPGA通过编程即可修改它模拟的电路结构,因此在系统实验、调试中很方便,很多爱好者正在尝试用FPGA做机器人控制器。
2.6 更多可供选择的单片机
我们在为机器人选择一款单片机前,首先要考虑自己面对的实际任务需要什么性能的单片机。此时我们要考虑不同单片机的“应用广泛程度”,比如,当我们要做一个电子大赛智能小车,有AVR单片机和PIC单片机可满足任务需要,如何在两者中作出选择,需要考虑哪种单片机学起来比较容易、学习资料容易获取、可供参考的程序和案例更加丰富,哪种单片机更容易获得编程软件和下载器等。笔者感觉,要想做智能小车,AVR单片机的资料比较丰富。
世界上有种类繁多的单片机,它们当中绝大多数都可用来控制机器人,但存在一个是否合适的问题。比如,PLC是可编程控制器,当然可以用来控制爱好者手中的机器人,但PLC多用于工业控制领域,设备庞大,价格昂贵,同时不易获得用PLC控制小型机器人的资料。爱好者选择学一种单片机前,首先得明确自己要用单片机干什么,然后再选最合适的单片机学习。学单片机重在学精一两种单片机,如果有人泛泛地学ARM、PLC、PIC、DSP、FPGA等所有有名的单片机,那么他将无法拥有真正的深度开发能力。所谓深度开发,以AVR单片机为例,初学者可以用它实现小灯交替闪烁,中级技术人员可以用它控制参加小车比赛的机器人,而真正的高级开发人员可以用AVR实现机器视觉、无人机自动驾驶、坦克火控系统……
2.6.1 AVR单片机过时了吗?
有初学者甚至中级开发人员认为,因ARM性能比AVR性能高,因此ARM将代替AVR, AVR将退出历史舞台,或者MSP430将代替51系列单片机,或者FPGA将取代所有单片机等。
我个人认为这种看法不对,因为不同单片机都有各自的特点和优点,没有哪种单片机是完美的,在不同场合用最合适的单片机,发挥它们各自的特长,而不存在ARM一统天下,取代所有其他型号单片机的可能性。试想,原本十几元的普通电子表因为采用ARM控制卖到几百元,谁能受得了?因此,不要觉得AVR已经过时,学完51就直接学ARM,或者觉得学51没用,直接学ARM,否则你容易碰壁。
2.6.2 MSP430系列单片机如何?
这个系列的单片机也比较适于机器人开发,是美国德州仪器推向市场的一种16位、具有精简指令集的、超低功耗的混合信号处理器。MSP430系列单片机采用的是1.8~3.6V电压,因而可使其在1MHz的时钟条件下运行时,芯片的电流会在200~400μA,时钟关断模式的最低功耗电流只有0.1μA。MSP430系列单片机的各成员都集成了较丰富的片内外设,分别是看门狗、模拟比较器、定时器、串口0/1、硬件乘法器、液晶驱动器、10位/12位ADC、16位Sigma-Delta A/D、直接寻址模块(DMA)、I/O端口、基本定时器等外围模块的不同组合。MSP430系列单片机的开发工具也比较简便,价格也相对低廉,并且也可以实现在线编程。
2.6.3 PIC单片机如何?
PIC可用于机器人开发,是8位单片机,产品种类丰富,采用精简指令集,有不错的开发环境,引脚驱动能力强,可直接连接继电器控制强电。自带看门狗,有睡眠和低功耗模式,但很多性能不如AVR和MSP430系列单片机。
2.6.4 凌阳单片机如何?
凌阳单片机比较适合机器人开发,以16位计算为核心,集成不同规模的RAM、ROM和其他丰富的功能电路,使用者可以根据自己需要选择集成了特定功能电路的凌阳单片机系列。凌阳单片机指令系统提供出具有较高运算速度的16位,16位的乘法运算指令和内积运算指令,为其应用添加了DSP功能,因此更适合进行语音识别。在我国,凌阳单片机在学校比较常见,应用实例较多,可作为机器人爱好者选用的单片机之一。
TIPS:
单片机诞生前人们用什么控制机器人
1.模拟计算机
在数字计算机诞生前,人们用电子管、电容器和电感线圈、电阻搭建模拟计算机,能够完成许多简单的计算和控制任务。所谓模拟计算机(见图2.4),就是其计算采用的信号不是1、0这样的数字信号,而是电压连续变换的模拟信号,类似于自动控制原理中的各种控制器采用的运算。别小看了模拟计算机,20世纪80年代第5次中东战争时,一些国家使用的前苏制全自动自行防空炮(见图2.5)就是采用模拟计算机来实现飞机轨迹的计算,并控制火炮射击目标。
图2.4 早期模拟计算机
图2.5 采用模拟计算机的防空炮
2.由齿轮和凸轮组成的控制器
在模拟计算机诞生前,也就是蒸汽机时代,有些机械天才硬是用数百个齿轮和凸轮搭建出机械计算机,人们通过转动印有数字的各种齿轮,另一些齿轮就将运算结果显示出来了。机械计算机在人类史上曾经是高科技产品,第二次世界大战时,德国著名的密码机(见图2.6)就是一种机电混合式计算机,它是当时最保密的通信工具。
图2.6 密码机
3.由发条、秒表和继电器组成的控制器
在电气时代开始时,人们用钟表内机械的旋转分时针控制继电器的通断,从而控制一些机床和生产线的运行。这种装置类似于早期洗衣机内的定时器。