机器人制作天空宝典
前言………………………………………………………………………………………………5
理论篇……………………………………………………………………………………………6
如何制作机器人小车---给初学者………………………………………………………9
概念剖析:什么是BEAM机器人?………………………………………………………18
经验篇……………………………………………………………………………………………20
制作机器人常用的单片机性能特点及使用经验…………………………………………21
制作机器人常用传感器盘点………………………………………………………………35
制作机器人机械结构的一些经验…………………………………………………………41
看看你的实验室还缺了什么………………………………………………………………45
项目篇……………………………………………………………………………………………51
瓢虫机器人制作教程………………………………………………………………………52
日本爱好者制作的微型巡线小车…………………………………………………………68
如何制作你的第一个机器人………………………………………………………………74
基于笔记本电脑的移动机器人……………………………………………………………92
一个BEAM四足机器人的制作过程………………………………………………………105
用Arduino控制的三轮小车……………………………………………………………116
国内机器人爱好者的作品………………………………………………………………123
资源篇
楼主最近还看过
性能
AVR家族人丁兴旺,包括ATinyAVR(微小型)、低功耗类、ATmegaAVR
高中低档5类单片机。它们都基于同一核心技术,但在内部集成的电路多少上有不
同。不论你要做电子手表还是视频处理,都有一款合适的AVR单片机能满足你的
需要。
本文只列出ATmega16中档单片机的性能:
16KB的FLASH程序存储器;512B的EEPROM;1KB的SRAM;32个快
速寄存器;32个大功率IO口;20个中断;2个外部中断口;有SPI、SUART、I2C
总线接口;2个8位定时器;1个16位定时器;3个PWM通道;有实时时钟RTC;
8个10位AD通道;电压比较器;看门狗;内置时钟振荡器;JTAG接口;ISP在
线编程;电压范围为2.7V-5.5V;外部时钟晶振0-16MHz;有PID和多种贴片封装。
AVR的IO口能输出20mA和吸收40mA的电流,不仅可直接驱动LED,
甚至可直接驱动微型直流减速电机。而且AVR的IO口可编程设置成输入、输出、
高阻态状态,是真正的3态IO口。和51相比使用AVR开发产品你会发现前所未
有的方便和自由。
AVR单片机可上操作系统,比如UCOS2、Linux等,自主编程实现操作系统功能也很
容易。
根据任务具体需要选择最合适的单片机,使单片机资源充分利用,使系统性价比达
到最高,同时兼顾未来扩展需要,不要一味选用高性能单片机,这就是选单片机的原则。
用ARM+操作系统做超声波测距仪——杀鸡用了牛刀。用AVR中档单片机做机器
视觉——有些吃不消。如果把它们调换一下,一切就恰到好处了。
3333
使用方法
学AVR单片机的好书是《AVR单片机嵌入式系统原理与应用实践》,封面
见下图。
AVR一般采用CVAVR编程软件编程,也可用GUNGCCAVR、AVRStudio
软件编程。可采用汇编或C语言编程。烧程序前先输出HEX文件,然后用SLISP
(双龙ISP)软件加载,再通过ISP编程线或者25针并口连接线烧入AVR单片机,
支持在线编程。
由于AVR单片机最小系统很简单,就是电源+晶振(可不用)+LED+ISP
五高级机器人控制器
ARMARMARMARM
1111
简介
ARM是一个公司名,他们基于同一内核设计了很多高性能处理器,这些处理器
都叫ARM。该技术被很多公司购买后生产出了集成很多功能电路的ARM芯片,使得ARM
成为高性能单片机。ARM一般为32位单片机,适于处理大量复杂数据,很多ARM装上
了UCOS2、WindowsCE、Linux操作系统,能够同时运行多个程序。ARM广泛应用于手
机、MP3、GPS导航仪、吸尘机器人等产品上。
六音频视频处理首选
DSPDSPDSPDSP
1111
简介
DSP数字信号处理(DigitalSignalProcessing,简称DSP),它是一种独特的微处
理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1
的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译
回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千
万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
在高速小车巡线、语音识别等领域DSP被广泛应用。但如果仅用DSP检测几
个碰撞开关、控制几个电机显得大材小用。
七新兴控制器
FPGAFPGAFPGAFPGA
1111
简介
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是
在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专
用集成电路(ASIC)领域中的一种半定制电路而出现的,系统设计师可以根
据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试
验板被放在了一个芯片里。简单说,如果使用者想开发一个用简单数字逻辑电
路就能控制的小车,又嫌搭电路麻烦,他就可用软件给一个FPGA编程让它实
现数字电路功能去控制小车。即FPGA可被用来模拟各种电路。有的FPGA甚
至能模拟51单片机的运行。因FPGA通过编程即可修改它模拟的电路结构,
因此在系统实验、调试中很方便,很多爱好者尝试用FPGA做机器人控制器。
八更多可供选择的单片机
我们选择学一款单片机前首先要考虑自己面对的实际任务需要什么性能的单片机,
然后在众多性能满足要求的单片机中作出选择。此时我们还要考虑不同单片机的“应用广泛
程度”,比方说:当我们要做一个电子大赛智能小车,有AVR单片机和PIC单片机可满足任
务需要,如何在两者中作出选择需要考虑哪种单片机学起来比较容易、学习资料容易获取、
可供参考的程序和案例更加丰富、哪种单片机更容易获得编程软件和下载器等。笔者感觉要
想做智能小车,AVR单片机的资料比较丰富。
世界上有种类繁多的单片机,它们当中绝大多数都可用来控制机器人,但存在一个
是否合适的问题。比如PLC是可编程控制器,当然可以用来控制爱好者手中的机器人,但PLC
多用于工业控制领域,设备庞大价格昂贵,同时不易获得用PLC控制小型机器人的资料。
爱好者选择学一种单片机前,首先得明确自己要用单片机干什么,然后再选最合适的单片机
学习。学单片机重在学精一两种单片机,如果有人泛泛地学ARM、PLC、PIC、凌阳、DSP、
FPGA等所有有名的单片机,那么他将无法拥有真正的深度开发能力。所谓深度开发,以AVR
单片机为例,初学者可以用它实现小灯交替闪烁,中级技术人员可以用它控制参加比赛的机
器人,而真正的高级开发人员可以用AVR实现机器视觉、无人机自动驾驶、坦克火控系
统……
AVRAVRAVRAVR
单片机过时了吗?
有初学者甚至中级开发人员认为因ARM性能一般比AVR性能高,因此ARM将代
替AVR,AVR将退出历史舞台,或者MSP430将代替51系列单片机,或者FPGA将取代所
有单片机等。这种看法不对,因为不同单片机都有各自的特点和优点,没有哪种单片机是完
美的,在不同场合用最合适的单片机,发挥它们各自的特长,而不存在ARM一统天下,取
代所有其他型号单片机的可能性。试想,原本十几元的电子表因为采用ARM控制买到几百
元,谁能受得了?因此不要觉得AVR已经过时,学完51就直接学ARM,或者觉得学51
没用,直接学ARM,否则你将碰壁。
MSP430MSP430MSP430MSP430
系列单片机:比较适于机器人开发,是美国德州仪器推向市场的一种16
位、具有精简指令集的、超低功耗的混合信号处理器。具有Flash存储器,中断源较多,并
且可以任意嵌套,使用时灵活方便。MSP430系列单片机的电源电压采用的是1.8~3.6V电
压。因而可使其在1MHz的时钟条件下运行时,芯片的电流会在200~400uA左右,时钟关
断模式的最低功耗只有0.1uA。MSP430系列单片机的各成员都集成了较丰富的片内外设。
它们分别是看门狗、模拟比较器、定时器、串口0、1、硬件乘法器、液晶驱动器、10位/12
位ADC、16位Sigma-DeltaAD、直接寻址模块(DMA)、IO端口、基本定时器(BasicTimer)
等的一些外围模块的不同组合。MSP430系列单片机引进了JTAG技术,不仅使开发工具变
得简便,而且价格也相对低廉,并且还可以实现在线编程。
PICPICPICPIC
单片机:可用于机器人开发,是8位单片机,产品种类丰富,采用精简指令
集,有不错的开发环境,引脚驱动能力强,可直接连接继电器控制强电。自带看门狗,有睡
眠和低功耗模式。很多性能不如AVR和MSP430系列单片机,但因其有特殊优点,也被广
泛应用。
凌阳单片机:比较适于机器人开发,以16位计算机为核心,集成不同规模的
RAM、ROM和其他丰富的功能电路,使用者可以根据自己需要选择集成了特定功能电路的
凌阳单片机。凌阳单片机指令系统提供出具有较高运算速度的16位,16位的乘法运算指令
和内积运算指令,为其应用添加了DSP功能,因此凌阳适合进行语音识别。在我国凌阳单
片机在学校比较常见,应用实例较多,可作为机器人爱好者选用的单片机。
九实例:用
AVRAVRAVRAVR
单片机创造机器生命
1111
什么是机器生命
机器生命就是一个能自主生存的机器,一个自动为生存下去而奋斗的机器。对于
机器生命来说,生存的含义就是不断电,继续运行。机器生命具有完全自主决策、自主行
动、活动于未知世界、不需人类参与就能持续运行并且自我维护等特征。影片《终结者》
中的天网就是超级机器生命。《霹雳5号》描述了一个机器人从无生命到有生命的过程。
N.维纳(NorbertWiener,1894~1964)写《控制论》时创造出第一个机器生命Wiener
龟,这个机器龟仅有2个电子管组成的模拟计算机,但它却能实现真正的乌龟觅食、睡觉、
探索、逃避等行为,其表现如同一个有生命的生物一样。机器龟上面有太阳能电池,当自
身电池快用完前,机器龟乐于寻找一个光线充足的地方充电,充满电后可能找个地方睡懒
觉,或者探索未知世界,它有避免碰撞和避免到倾斜地方的趋向,我们无法预知它的行踪,
因为它不是按照程序运行的,就如同我们自己一样。后来维纳在他的机器龟上又加了一个
电子管,三个电子管连接成简单的神经网络,通过对机器龟训练,维纳通过摇铃可控制机
器龟的行为。正如有生物学家训练狗使得狗听到摇铃声后就流口水。
2222
我们可以自己动手做一个机器宠物
我们今天有先进的单片机,制作一个更好的机器生命其实不难。机器生命远比按
固定程序运行的机器人好玩,就如同宠物狗比玩具狗好玩一样。我们设想的机器生命可以
是一个小型履带式机器人,带有太阳能板,能感受光线强弱,障碍物距离和碰撞,为了实
现人机互动,该机器生命具有语音识别功能。试想你学习一天,回到寝室,叫一声TONY,
你的机器宠物转身飞快跑向你,那种感觉只有宠物的创造者才能体会……
如何实现?如何设计电路?如何设计结构?
这个机器生命方案采用ATmega16单片机做控制器,单片机的8路AD通道和其
余24个IO接口都被使用。AVR单片机AD转换频率高于音频,可以用来进行简单的语
音采集。机器生命的程序较复杂,而AVR单片机适合进行快速复杂运算。本设计的电路
板上除了ATmega16单片机外,还有2个LG9110电机驱动芯片、2个LM386音频功放芯
片,和LM393电压比较器芯片,再加上少量电阻电容和三极管,电路简洁,适合初学者
和中级爱好者动手制作。
LCD采用通用1602模块,支持3位控制线4位数据线,如果你采用IO口复用技
术,可用6条线控制LCD模块。
此方案涉及光电检测、自动充电、语音识别、超声波测距、键盘(4个碰撞开关)、
LCD液晶显示、电机驱动等技术,这些都是动手做简单机器人的基本技术,如果爱好者
能把这个机器生命做好,那么你的电路设计、调试经验和编程能力都会有很大的提高。
这个机器生命的技术含量相当于20世纪70年代国际机器人领域的先进水平。当
时已经有很多非常精密和复杂的工业机器人被应用,但这种简单的机器人怎么能称作先进
呢?因为技术的复杂和技术的先进不是一个概念,复杂+精密不一定等于先进。先进的东
西不一定复杂和精密。
AAAA
寻光
我们可以用光电二极管来检测光线强弱。当然也可以用光敏电阻。将光敏电阻和
一个固定电阻串联接在电源正负极之间,光敏电阻靠近正极一侧。从光敏电阻和固定电阻
连接点引出导线接到ATmega16的AD转换输入口。当强光照在光敏电阻时,光敏电阻阻
值变小,因此其压降变小,而固定电阻分压增多,引出的AD检测电位升高,被单片机转
化为数字量后判断光线增强。机器生命有5个光电传感器,其中4个面向机器人前后左右
四个方向,另一个指向太阳能板所面对的方向。通过编程可以让机器人自主移动到光线最
强的地方。
BBBB
充电
本设计采用4.8V镍氢充电电池为系统供电。太阳能电池板正负极通过一个三极管
与电池正负极相连。有一个电压比较器比较电池电压与太阳能板的压差,如果压差高于某
值,比较器控制三极管导通,太阳能电池板对充电电池充电。充电电池电压上升,当高于
某值时控制三极管关断,结束充电。为使太阳能板能对电池组充电,要求太阳能板在阳光
直射下输出电压高于8V。
CCCC
语音识别
用AVR单片机的高速AD检测功能能实现简单的语音识别。声音信号被驻极体电
容话筒接收后送至LM386音频功放芯片放大和过滤后送至单片机AD转换口,单片机对
音频信号幅值采样转化为一组数字,然后对这组进行取方差运算,得出一个特征值,该特
征值可以用于简单的语音识别。比如你发一个“e”,方差应该比较小,如果你发“p”爆
破音,方差应该较大。当然,如果你用更复杂的数据处理,会得到更好的识别效果。本设
计使用了2路声音信号,目的是让单片机判断出声源的大体方位。
DDDD
超声波测距
用AVR的1个IO口输出40KHz信号送至超声波发射电路,当超声波遇到障碍物
返回后,被超声波接收头接收,信号经CX20106A解码芯片处理,得到一个低电平脉冲,
用该脉冲引发AVR单片机中断,AVR通过检查发波和收到回波之间的时间差即可算出障
碍物距离。
EEEE
电机驱动
本设计采用2片LG9110电机驱动芯片驱动两台直流减速电机。LG9110输出最大
电流为800mA,仅需要2条控制线与单片机IO口直接相连即可控制一台电机正反转或者
停止。LG9110仅有8个引脚,使用非常方便。
FFFF
让机器生命更聪明
我的这个机器生命设计方案能实现最酷的效果是:白天,阳光明媚,机器生命跑
到阳光底下晒太阳,太阳光会随着时间变化,机器生命能自动跑到最合适的位置享受日光
浴。到了晚上,机器生命会找个安静的地方闭目养神,等待明天太阳升起。你可以训练机
器生命,让它知道自己的名字叫什么。比如你叫着它的名字,同时站在它面前用强光照射
它的太阳能电池板,如此反复训练,会使机器生命听到自己名字后向声源方向跑去,在距
离声源一定远处停止,因为以往这样做它都能享受强光照射并充电。这就如同真正的宠物
狗,你叫它名字它就跑到你跟前希望能获得食物。这一切都是完全能够实现的,关键就在
于编程序实现它。
GGGG
想象无极限,你的机器宠物将无所不能
以上方案中,ATmega16的功能被发挥到极致,以至于没有空闲的IO口,系统不
能再扩展了。如果你用ATmega128单片机做,那么它拥有53个IO口,30多个中断,128Kb
的程序存储器,4Kb的RAM,使得你能编写更复杂的程序、储存更多的动态数据、连接
更多的外设,你的机器生命将变得非常有生命力。比如加入三轴加速度传感器、地磁传感
器、GPS定位、雨水传感器甚至摄像头、无线通信模块等,重新设计一个坚固和强劲的
底盘,你的机器生命就可以在室外自由探索了。
以上芯片外设来源说明:在淘宝上购买很容易
底盘:340元的高级履带式1:16电动坦克模型
加速度传感器、地磁传感器:美国AD公司的40元ADXL330加速度传感器
GPS定位:几十元的车载外置GPS天线
最后,我想说,机器人是非常好玩的,只要你有想象力,有毅力,努力研究实践就能创
造奇迹。
概念剖析:什么是
BEAMBEAMBEAMBEAM
机器人?
作者:胡泊
经常浏览一些国外机器人网站的朋友们可能经常见到“BEAMRobotic”这个名词,但在
一些机器人学的教科书上却找不到这个名词的解释。那么“BEAMRobotic”到底指的是哪一
类的机器人呢?
“BEAMRobotic”的概念是由著名的机器人爱好者MarkTilden提出的。现在实验室里
的多数机器人都是一开始为实现一个复杂的任务而设计,技术门槛高,成本也绝非一般个人
爱好者所能够承担。而MarkTilden则反其道而行之,主张从最基本的模仿自然生物某一功
能的简单机器人坐做起,如同自然界生物进化一样,逐渐从简单到复杂的实现机器人的“进
化”。正是因为如此,“BEAM”机器人技术门槛低,成本不高的特点吸引了众多业余爱好者的
加入。“BEAM”是以下几个单词的缩写:
Biology-生物学:BEAM机器人都是模仿自然界某些生物来设计自己的电路和机械结
构。
Electronics-电子学:用最简单的电路来实现自己的功能。BEAM机器人所用的电路
都是最基本的简单电路,这也是BEAM机器人吸引了众多入门者的原因。
Aesthetics-美学:任何作品都需要一个漂亮的外观。
Mchanies-机械:机器人中机械部分与电子部分同样重要。好的机械结构同样是一个
成功作品必不可少的部分之一。
以上是BEAMers挂在嘴边的几个关键词汇,在实际作品中可能做不到面面俱到(尤其
是第三点),但也应该作为最基本的设计出发点来考虑。
概括起来说,BEAM机器人主要是指个人爱好者业余制作的,由最简单电路驱动的模仿
自然界某一生物的某一项基本行为的机器人。大多BEAM机器人的控制芯片都采用普通的8
位单片机或是直接由PC机做上位机通过有线或无线连接直接控制;驱动方式多用双轮差速
驱动实现,有一小部分机器人还实现了简单的四足或双足驱动;大多BEAM机器人所配备的
传感器也比较简单,多由碰撞开关或红外传感器来实现避障,另外用的比较多的还有光敏电
阻和红外测距传感器等等。大多业余机器人爱好者所制作的机器人或多或少都包含了一些
BEAM的元素。
一般常见的BEAM机器人多为以下功能:
1、避障:这是最基本的BEAM机器人,也是大多BEAM机器人所必须的功能,多采用两
个或三个红外测障传感器或碰撞开关来检测障碍物,机器人由一片单片机控制,多为电机驱
动。可实现机器人无障碍的躲避各种障碍物。
2、趋光:机器人主体部分与避障机器人无异,只是传感器略有不同。一般在机器人前
部安装两个光敏传感器,靠两个传感器的不同返回值的差速来判断光源的方向并逐渐趋近。
3、循迹:此类机器人的基本功能是靠机器人底部的光敏或红外之类的传感器来发现
地面上的标志(多为黑地白线或白地黑线),并循线前进。
近几年,随着各种机器人比赛在国内的蓬勃开展。国内的机器人爱好者也越来
越多,但由于技术或经济上的原因,使众多机器人爱好者难以开展较为复杂的项目,而BEAM
机器人由于成本低,资料丰富,较易上手,成为众多爱好者们首选的项目。
人物简介:
马克特尔顿
马克博士是机器人物理学家,曾为美国国家航空和宇宙航行局(NASA)工作,而且
曾为美国的其他政府机构提供机器人制造技术。他是一个有着丰富机器人知识的物理学家。
在1988他设计了第一个仿生机器人,近几年推出了几款他设计的智能玩具机器人,都取得
了不错的反响。Robosapien是第一个根据他的理论设计制作的商业机器人。
制作机器人常用的单片机性能特点及使用经验
作者:刘天龙
摘要:
很多接触机器人或单片机不久的朋友面对种类繁多的单片机常会困惑,到底它们之
间有何不同?制作机器人到底用哪种单片机控制比较好?当我们选择了一种单片机后,有何
捷径能迅速掌握并应用这种单片机?本文尝试用一种通俗易懂的方法解读上述问题,并设计
了一种有深度的单片机控制机器人的实例,希望能起到抛砖引玉的作用。我与大家分享我使
用单片机的一些经验,希望能让初学者少些迷茫,让已经入门的朋友思维开阔。
写本文时我仅有3年单片机实践经验,比较了解51系列和AVR系列单片机,因此
着重讨论了AVR单片机,我经验有限,有错误在所难免,希望朋友们批评指正!
一单片机和
CPUCPUCPUCPU
、个人电脑的区别和联系
这部分内容比较初级,但很多朋友刚接触单片机时或许对下面的问题不是很清楚。
1111
什么是
CPUCPUCPUCPU
?
CPU中文名称为“中央处理器”,典型代表为英特尔8086处理器,现在的奔腾X
处理器都是8086的直系后代。处理器,顾名思义,其功能是处理数据,对于中央处理器,
就是在数据处理中处于核心地位的处理器,听起来似乎很复杂,但实际上核心就是一个ALU
“算术逻辑单元”。这个单元由一些数字门电路组成,仅能完成括加、减、乘、除四则运算,
与、或、非、异或等逻辑操作,以及移位、比较和传送等操作。CPU内部包含ALU,除此
之外CPU还有时钟电路,CPU运行的基本原理是:时钟电路产生计数脉冲,这个脉冲控制
着一个累加器,即每产生一个时钟脉冲,累加器加1,这个累加值以16进制数字的形式通
过地址总线唯一选通程序储存器中一个储存单元(在CPU外部),这个单元将内部储存的程
序命令代码通过数据总线送到ALU中,ALU根据代码不同执行不同操作,比如把某寄存器
数值和某数值相加等,然后将计算结果输出到IO口或者各个总线上。
总之,CPU的工作就是把程序中的命令代码翻译成不同任务,然后执行,输出执
行结果。CPU在一切数字计算机中都发挥了核心作用,即计算机都有CPU。
2222
什么是个人电脑?
由于CPU只有计算功能,其计算的结果需要通过显示器、音箱输出,而其工作的
依据,即程序命令则依靠硬盘储存,其执行任务时动态存取的数据要保存在内存中,而人可
以通过键盘控制程序命令的执行过程,把所有这些CPU的外设组合在一起就叫做“个人电
脑”。
3333
什么是单片机?
个人电脑功能强大,计算速度快,是较为理想的计算机。但当我们需要用一个小装
置控制微波炉定时开关时,个人电脑就显得笨重和昂贵。因此人们设计出一种浓缩型电脑,
大的有几平方厘米,小的比米粒还小,它们叫做“单片机”——单片微型计算机。CPU是
一个芯片,单片机也是一个芯片,看起来外观差不多,它们有什么不同呢?答案是:单片机
内除了集成有CPU外,还集成了程序储存器ROM(可理解为硬盘)、数据储存器RAM(可
理解为内存),输入输出接口(可理解为显示器、键盘插座),有的单片机内还集成了电机驱
动电路、视频解码电路、AD转换器、无线传输电路等,使得单片机功能变得非常强大。单
片机的特长在于可以用单个芯片和简单外部电路去实现复杂的控制操作,因此非常适合机器
人控制。其实在绝大多数机器人中都有单片机的影子。简单的和中等复杂的机器人可以用单
片机直接控制,高度复杂的机器人用“个人电脑”或者“超级计算机”指挥许多单片机来完
成机器人控制。
学习单片机的捷径是什么?
所谓捷径就是少走弯路。我刚开始学单片机时走了不少弯路,很多朋友和我都有相
似的经历,刚开始接触单片机,面对琳琅满目的图书教材,不知选择哪本;想实践时不知到
哪买单片机;不知如何编程下载程序……
A对于初学者仔细看本文就是学习单片机的捷径之一。
B到图书馆或者书店在数十本单片机书中选一本你能看懂,而且觉得案例有趣的
“实在、生动、活泼”的单片机书做为你的入门读物。
C建议先从51单片机学起。掌握51后再学AVR,然后学ARM、DSP等。
D在学习过程中实践非常必要。你需要一台电脑。如果是台式电脑,你可以花十
几元购买25针并口下载线,如果是笔记本电脑,你只能购买几十元到几百元的USBISP编
程器。
E用万用板自己焊一个单片机最小系统,或者购买开发板。没有必要使用昂贵的
仿真器。
F你需要上网下载单片机编程软件,比如51用Keil编程,AVR用CVAVR编程,
在编程软件中编好程序,然后生成HEX文件,再上网下载并口烧程序软件或者USBISP烧
程序软件,用烧程序软件加载HEX文件,然后将编程线查到你的单片机电路板上,即可把
程序烧到单片机中。
G拔下编程线,然后接通单片机板电源,你可以看到单片机系统在运行。
H如果系统不能正常运行,首先检查电路是否接错,然后检查程序是否烧错,如
果以上都没毛病,研究程序是否编错。有时系统不能正常运行并不意味着有什么地方错了,
只是某些参数没设置好,你需要不断运行、修改程序、调试参数、再运行如此往复,直到你
对系统运行满意为止。有时这是一个非常艰苦的重复劳动,调整数百次上千次,你无法回避,
只能坚定信念,勇往直前。
I到淘宝网上买东西更方便、更便宜。
二在单片机诞生前人们用什么控制机器人
1111
模拟计算机
在数字计算机诞生前,人们用电子管、电容器和电感线圈、电阻搭建模
拟计算机,能够完成许多简单的计算和控制任务。所谓模拟计算机就是其计算
采用的信号不是1、0数字信号,而是电压连续变换的模拟信号,类似于自动
控制原理中的各种控制器采用的运算。别小看了模拟计算机,上世纪80年代
中东战争时,阿拉伯国家使用的苏制全自动自行防空炮内采用模拟计算机实现
入门首选
AT89S51AT89S51AT89S51AT89S51
系列单片机
1111
简介
1980,英特尔公司开发出一种简易的8031CPU,在当时该CPU性能不比8086
差很多,但价格较便宜,因此被很多低端应用选中。由于市场看好,ATMEL公司购买了
8031的内核,把Flash存储器和加强型IO口融入进去开发出了AT89系列单片机。所有
兼容8031指令和内核相似的单片机统称为51单片机,它是目前应用最广泛的8位单片机
之一。因51单片机结构简单,指令易学,应用广泛,因此是初学单片机首选机型。如果
有人想不学51,直接学AVR,那么此人一定会遇到很多难题,困惑和郁闷将伴随着学习
过程。如果学了51再学AVR和其他单片机,人们会发现“所谓单片机都不过如此”。
2222
性能
根据任务具体需要选择最合适的单片机,使单片机资源充分利用,使系统性价比达
到最高,同时兼顾未来扩展需要,不一味追求高性能单片机,这就是选单片机的原则。
AT89S51有4K的Flash程序存储器,128字节的RAM,32条IO口,中断系统具
有6个中断源、5个终端矢量、2个中断优先级的中断结构;串行口是一个全双工的串行通
信口;AT89S51的电源电压为4.0-5.5V,AT89LS51的电源电压为2.7-4.0V;振荡器频率0-
33MHz(AT89S51),0-16MHz(AT89LS51);有ISP在线编程功能,这个功能的优势在于改
写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。
AT89S52程序储存器容量为8KB,还有AT89S55,ROM容量更大。
有很多公司生产了很多扩展型51系列单片机,有的带有AD转换器,有的带有比
较器,有的带有PWM,读者可以根据自身需要选择合适的51单片机,但要注意他们的管
脚定义和编程方式。
3333
使用方法
AT89S51适于做单片机学习板、电子时钟、超声波测距仪等不需要采集模拟量和
控制大功率外部元件的电路。S51与过去的C51的区别在于S51支持ISP在线编程,即C51
需要几百元的编程器编程,而S51仅需一条25针并口线和非常简单的转换电路即可接在台
式电脑打印机接口烧程序,下载烧程序小软件即实现可对S51单片机编程。对51单片机编
程一般选用Keil软件,可采用C语言或者汇编语言,编完程后选择输出HEX文件,然后用
烧程序小软件读取HEX文件,再烧写到单片机中。
4444
实践经验
A刚开始看书时,按照书上的电路图连线然后通电调试,但总不成功,将自己的
电路和书上的电路仔细对照发现不了问题。原因在于很多书上的电路图都是“简化图”,即
省略了一些电路,而这些被省略的电路却关乎系统的运行。比如,当单片机书讲到AD转换
电路,给出的电路图多省略了晶振和复位电路,按照AD转换电路图搭出来的系统自然不能
运行。
B51单片机P0口输出信号时需要上拉电阻,我经常忘记加电阻,导致电路不好使。
C51单片机31引脚需要接正极,以选择采用内部程序存储器。如果忘记给这个引
脚以正确的电压,你的单片机可能不能执行程序。
入门首选
AT89S51AT89S51AT89S51AT89S51
系列单片机
1111
简介
1980,英特尔公司开发出一种简易的8031CPU,在当时该CPU性能不比8086
差很多,但价格较便宜,因此被很多低端应用选中。由于市场看好,ATMEL公司购买了
8031的内核,把Flash存储器和加强型IO口融入进去开发出了AT89系列单片机。所有
兼容8031指令和内核相似的单片机统称为51单片机,它是目前应用最广泛的8位单片机
之一。因51单片机结构简单,指令易学,应用广泛,因此是初学单片机首选机型。如果
有人想不学51,直接学AVR,那么此人一定会遇到很多难题,困惑和郁闷将伴随着学习
过程。如果学了51再学AVR和其他单片机,人们会发现“所谓单片机都不过如此”。
2222
性能
根据任务具体需要选择最合适的单片机,使单片机资源充分利用,使系统性价比达
到最高,同时兼顾未来扩展需要,不一味追求高性能单片机,这就是选单片机的原则。
AT89S51有4K的Flash程序存储器,128字节的RAM,32条IO口,中断系统具
有6个中断源、5个终端矢量、2个中断优先级的中断结构;串行口是一个全双工的串行通
信口;AT89S51的电源电压为4.0-5.5V,AT89LS51的电源电压为2.7-4.0V;振荡器频率0-
33MHz(AT89S51),0-16MHz(AT89LS51);有ISP在线编程功能,这个功能的优势在于改
写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。
AT89S52程序储存器容量为8KB,还有AT89S55,ROM容量更大。
有很多公司生产了很多扩展型51系列单片机,有的带有AD转换器,有的带有比
较器,有的带有PWM,读者可以根据自身需要选择合适的51单片机,但要注意他们的管
脚定义和编程方式。
3333
使用方法
AT89S51适于做单片机学习板、电子时钟、超声波测距仪等不需要采集模拟量和
控制大功率外部元件的电路。S51与过去的C51的区别在于S51支持ISP在线编程,即C51
需要几百元的编程器编程,而S51仅需一条25针并口线和非常简单的转换电路即可接在台
式电脑打印机接口烧程序,下载烧程序小软件即实现可对S51单片机编程。对51单片机编
程一般选用Keil软件,可采用C语言或者汇编语言,编完程后选择输出HEX文件,然后用
烧程序小软件读取HEX文件,再烧写到单片机中。
4444
实践经验
A刚开始看书时,按照书上的电路图连线然后通电调试,但总不成功,将自己的
电路和书上的电路仔细对照发现不了问题。原因在于很多书上的电路图都是“简化图”,即
省略了一些电路,而这些被省略的电路却关乎系统的运行。比如,当单片机书讲到AD转换
电路,给出的电路图多省略了晶振和复位电路,按照AD转换电路图搭出来的系统自然不能
运行。
B51单片机P0口输出信号时需要上拉电阻,我经常忘记加电阻,导致电路不好使。
C51单片机31引脚需要接正极,以选择采用内部程序存储器。如果忘记给这个引
脚以正确的电压,你的单片机可能不能执行程序。
爱好者制作机器人首选AVRAVRAVRAVR系列单片机1111简介AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(ReducedInstructionSetCPU)精简指令集高速8位单片机。高可靠性、功能强、高速度、低功耗和低价位一直是衡量单片机性能的重要指标,而AVR单片机是典型高性能单片机。早期单片机,比如51单片机为了提高可靠性(防止数据误读或跑飞)采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。例如51单片机需要12个晶振周期才能组成1个机器周期,而且很多指令需要2个机器周期才能执行。AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,采用精简指令集,取指周期短,又可预取指令,实现流水作业,故可高速执行指令。AVR单片机在12个晶振周期中能执行12条指令,从这个角度看,如果晶振频率相同,AVR的速度是51的12倍到24倍。AVR有32个通用寄存器,在进行大量复杂运算时,AVR的32个寄存器可相当于51的32个累加器,克服了51系列单片机只有单一累加器数据处理造成的瓶颈现象,在复杂运算时速度比51快5倍以上。由此可看出,51与AVR相比是多么慢,AVR是多么快。AVR系列单片机多内部集成了多路AD转换器、电压比较器、ISP、I2C、JTAG总线电路、UART串口、大功率IO口、看门狗等实用电路,并且很多AVR单片机型号有EEPROM、FLASH、SRAM三种存储器,可以实现实时修改程序存储器中的内容,即AVR单片机可以自己修改自己的程序。同时AVR一般能工作在宽电压范围(2.7~6.0V),有的居然可以在1.8V电压下工作。以上这些性能只是AVR众多性能中的一部分,然而已经让51系列单片机望尘莫及了。如此高性能的单片机价格居然和51单片机差不多,比如ATmega8价格为8元左右,ATmega16在13元左右,这是AVR有极高性价比的真实写照。
性能
AVR家族人丁兴旺,包括ATinyAVR(微小型)、低功耗类、ATmegaAVR
高中低档5类单片机。它们都基于同一核心技术,但在内部集成的电路多少上有不
同。不论你要做电子手表还是视频处理,都有一款合适的AVR单片机能满足你的
需要。
本文只列出ATmega16中档单片机的性能:
16KB的FLASH程序存储器;512B的EEPROM;1KB的SRAM;32个快
速寄存器;32个大功率IO口;20个中断;2个外部中断口;有SPI、SUART、I2C
总线接口;2个8位定时器;1个16位定时器;3个PWM通道;有实时时钟RTC;
8个10位AD通道;电压比较器;看门狗;内置时钟振荡器;JTAG接口;ISP在
线编程;电压范围为2.7V-5.5V;外部时钟晶振0-16MHz;有PID和多种贴片封装。
AVR的IO口能输出20mA和吸收40mA的电流,不仅可直接驱动LED,
甚至可直接驱动微型直流减速电机。而且AVR的IO口可编程设置成输入、输出、
高阻态状态,是真正的3态IO口。和51相比使用AVR开发产品你会发现前所未
有的方便和自由。
AVR单片机可上操作系统,比如UCOS2、Linux等,自主编程实现操作系统功能也很
容易。
根据任务具体需要选择最合适的单片机,使单片机资源充分利用,使系统性价比达
到最高,同时兼顾未来扩展需要,不要一味选用高性能单片机,这就是选单片机的原则。
用ARM+操作系统做超声波测距仪——杀鸡用了牛刀。用AVR中档单片机做机器
视觉——有些吃不消。如果把它们调换一下,一切就恰到好处了。
3333
使用方法
学AVR单片机的好书是《AVR单片机嵌入式系统原理与应用实践》,封面
见下图。
AVR一般采用CVAVR编程软件编程,也可用GUNGCCAVR、AVRStudio
软件编程。可采用汇编或C语言编程。烧程序前先输出HEX文件,然后用SLISP
(双龙ISP)软件加载,再通过ISP编程线或者25针并口连接线烧入AVR单片机,
支持在线编程。
由于AVR单片机最小系统很简单,就是电源+晶振(可不用)+LED+ISP
高级机器人控制器
ARMARMARMARM
1111
简介
ARM是一个公司名,他们基于同一内核设计了很多高性能处理器,这些处理器
都叫ARM。该技术被很多公司购买后生产出了集成很多功能电路的ARM芯片,使得ARM
成为高性能单片机。ARM一般为32位单片机,适于处理大量复杂数据,很多ARM装上
了UCOS2、WindowsCE、Linux操作系统,能够同时运行多个程序。ARM广泛应用于手
机、MP3、GPS导航仪、吸尘机器人等产品上。
六音频视频处理首选
DSPDSPDSPDSP
1111
简介
DSP数字信号处理(DigitalSignalProcessing,简称DSP),它是一种独特的微处
理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1
的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译
回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千
万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
在高速小车巡线、语音识别等领域DSP被广泛应用。但如果仅用DSP检测几
个碰撞开关、控制几个电机显得大材小用。
七新兴控制器
FPGAFPGAFPGAFPGA
1111
简介
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是
在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专
用集成电路(ASIC)领域中的一种半定制电路而出现的,系统设计师可以根
据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试
验板被放在了一个芯片里。简单说,如果使用者想开发一个用简单数字逻辑电
路就能控制的小车,又嫌搭电路麻烦,他就可用软件给一个FPGA编程让它实
现数字电路功能去控制小车。即FPGA可被用来模拟各种电路。有的FPGA甚
至能模拟51单片机的运行。因FPGA通过编程即可修改它模拟的电路结构,
因此在系统实验、调试中很方便,很多爱好者尝试用FPGA做机器人控制器。
八更多可供选择的单片机
我们选择学一款单片机前首先要考虑自己面对的实际任务需要什么性能的单片机,
然后在众多性能满足要求的单片机中作出选择。此时我们还要考虑不同单片机的“应用广泛
程度”,比方说:当我们要做一个电子大赛智能小车,有AVR单片机和PIC单片机可满足任
务需要,如何在两者中作出选择需要考虑哪种单片机学起来比较容易、学习资料容易获取、
可供参考的程序和案例更加丰富、哪种单片机更容易获得编程软件和下载器等。笔者感觉要
想做智能小车,AVR单片机的资料比较丰富。
世界上有种类繁多的单片机,它们当中绝大多数都可用来控制机器人,但存在一个
是否合适的问题。比如PLC是可编程控制器,当然可以用来控制爱好者手中的机器人,但PLC
多用于工业控制领域,设备庞大价格昂贵,同时不易获得用PLC控制小型机器人的资料。
爱好者选择学一种单片机前,首先得明确自己要用单片机干什么,然后再选最合适的单片机
学习。学单片机重在学精一两种单片机,如果有人泛泛地学ARM、PLC、PIC、凌阳、DSP、
FPGA等所有有名的单片机,那么他将无法拥有真正的深度开发能力。所谓深度开发,以AVR
单片机为例,初学者可以用它实现小灯交替闪烁,中级技术人员可以用它控制参加比赛的机
器人,而真正的高级开发人员可以用AVR实现机器视觉、无人机自动驾驶、坦克火控系
统……
AVRAVRAVRAVR
单片机过时了吗?
有初学者甚至中级开发人员认为因ARM性能一般比AVR性能高,因此ARM将代
替AVR,AVR将退出历史舞台,或者MSP430将代替51系列单片机,或者FPGA将取代所
有单片机等。这种看法不对,因为不同单片机都有各自的特点和优点,没有哪种单片机是完
美的,在不同场合用最合适的单片机,发挥它们各自的特长,而不存在ARM一统天下,取
代所有其他型号单片机的可能性。试想,原本十几元的电子表因为采用ARM控制买到几百
元,谁能受得了?因此不要觉得AVR已经过时,学完51就直接学ARM,或者觉得学51
没用,直接学ARM,否则你将碰壁。
MSP430MSP430MSP430MSP430
系列单片机:比较适于机器人开发,是美国德州仪器推向市场的一种16
位、具有精简指令集的、超低功耗的混合信号处理器。具有Flash存储器,中断源较多,并
且可以任意嵌套,使用时灵活方便。MSP430系列单片机的电源电压采用的是1.8~3.6V电
压。因而可使其在1MHz的时钟条件下运行时,芯片的电流会在200~400uA左右,时钟关
断模式的最低功耗只有0.1uA。MSP430系列单片机的各成员都集成了较丰富的片内外设。
它们分别是看门狗、模拟比较器、定时器、串口0、1、硬件乘法器、液晶驱动器、10位/12
位ADC、16位Sigma-DeltaAD、直接寻址模块(DMA)、IO端口、基本定时器(BasicTimer)
等的一些外围模块的不同组合。MSP430系列单片机引进了JTAG技术,不仅使开发工具变
得简便,而且价格也相对低廉,并且还可以实现在线编程。
PICPICPICPIC
单片机:可用于机器人开发,是8位单片机,产品种类丰富,采用精简指令
集,有不错的开发环境,引脚驱动能力强,可直接连接继电器控制强电。自带看门狗,有睡
眠和低功耗模式。很多性能不如AVR和MSP430系列单片机,但因其有特殊优点,也被广
泛应用。
凌阳单片机:比较适于机器人开发,以16位计算机为核心,集成不同规模的
RAM、ROM和其他丰富的功能电路,使用者可以根据自己需要选择集成了特定功能电路的
凌阳单片机。凌阳单片机指令系统提供出具有较高运算速度的16位,16位的乘法运算指令
和内积运算指令,为其应用添加了DSP功能,因此凌阳适合进行语音识别。在我国凌阳单
片机在学校比较常见,应用实例较多,可作为机器人爱好者选用的单片机。
九实例:用
AVRAVRAVRAVR
单片机创造机器生命
1111
什么是机器生命
机器生命就是一个能自主生存的机器,一个自动为生存下去而奋斗的机器。对于
机器生命来说,生存的含义就是不断电,继续运行。机器生命具有完全自主决策、自主行
动、活动于未知世界、不需人类参与就能持续运行并且自我维护等特征。影片《终结者》
中的天网就是超级机器生命。《霹雳5号》描述了一个机器人从无生命到有生命的过程。
N.维纳(NorbertWiener,1894~1964)写《控制论》时创造出第一个机器生命Wiener
龟,这个机器龟仅有2个电子管组成的模拟计算机,但它却能实现真正的乌龟觅食、睡觉、
探索、逃避等行为,其表现如同一个有生命的生物一样。机器龟上面有太阳能电池,当自
身电池快用完前,机器龟乐于寻找一个光线充足的地方充电,充满电后可能找个地方睡懒
觉,或者探索未知世界,它有避免碰撞和避免到倾斜地方的趋向,我们无法预知它的行踪,
因为它不是按照程序运行的,就如同我们自己一样。后来维纳在他的机器龟上又加了一个
电子管,三个电子管连接成简单的神经网络,通过对机器龟训练,维纳通过摇铃可控制机
器龟的行为。正如有生物学家训练狗使得狗听到摇铃声后就流口水。
2222
我们可以自己动手做一个机器宠物
我们今天有先进的单片机,制作一个更好的机器生命其实不难。机器生命远比按
固定程序运行的机器人好玩,就如同宠物狗比玩具狗好玩一样。我们设想的机器生命可以
是一个小型履带式机器人,带有太阳能板,能感受光线强弱,障碍物距离和碰撞,为了实
现人机互动,该机器生命具有语音识别功能。试想你学习一天,回到寝室,叫一声TONY,
你的机器宠物转身飞快跑向你,那种感觉只有宠物的创造者才能体会……