机器人制作宝典
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
************************************************************************
机器人制作天空宝典
***********************************************************************
编者:机器人天空网站()
2010.04.01
机器人天空()
3
版权声明
本书中所收录的文章除《用Arduino控制的三轮小车》一文外,其余文章全部原创首发
于机器人天空(),转载请注明出处和作者。
机器人天空()
4
目目目目录录录录
前言………………………………………………………………………………………………5
理论篇……………………………………………………………………………………………6
如何制作机器人小车---给初学者………………………………………………………9
概念剖析:什么是BEAM机器人?………………………………………………………18
经验篇……………………………………………………………………………………………20
制作机器人常用的单片机性能特点及使用经验…………………………………………21
制作机器人常用传感器盘点………………………………………………………………35
制作机器人机械结构的一些经验…………………………………………………………41
看看你的实验室还缺了什么………………………………………………………………45
项目篇……………………………………………………………………………………………51
瓢虫机器人制作教程………………………………………………………………………52
日本爱好者制作的微型巡线小车…………………………………………………………68
如何制作你的第一个机器人………………………………………………………………74
基于笔记本电脑的移动机器人……………………………………………………………92
一个BEAM四足机器人的制作过程………………………………………………………105
用Arduino控制的三轮小车……………………………………………………………116
国内机器人爱好者的作品………………………………………………………………123
资源篇…………………………………………………………………………………………134
机器人天空()
5
写在前面
一转眼机器人天空已经运行维护了四年多了,在这四年中认识了全国各地众多热爱机器
人技术的朋友,很多朋友都为机器人天空的发展做出了自己的贡
献。像早期的网友留心、肉粑粑、wen2xiao1、yiyix……还有后
来的hym523、yunkangliu、刘天龙等等我叫
得上名字的,许许多
多我叫不上名字的。虽然有人离开,却总是有更多的人进来,这
一切给了我莫大的信心,使我一直坚信机器人事业必定大有可为。
但同时也有一个问题一直在困扰着我:每天来浏览网页,学
习知识的人很多,真正动起手来做一个哪怕最简单的机器人小车
的朋友却都少之又少,这是为什么?
和网友们交流的时候我发现,很多人都表示机器人技术非常有趣,看到别人制作的机器
人能跑能跳自己也欢欣鼓舞,可等到自己真正动起手来的时候却发现问题总比办法多。有的
人看着别人的电路图原理图如坠雾中,完全摸不着头脑;有的人做到一半发现遇到了自己解
决不了的问题,时间一长最后便不了了之;有的人受身边条件所限,想动手却什么都买不到;
时间、金钱……障碍一层又一层。特别是一些非理工科出身的爱好者,满怀着儿时的机器人
梦想,却被一堆专业名词将梦想击得支离破碎。
我也曾浏览过很多的机器人制作相关资料和书籍,也发现现在很多资料和论文还带有很
浓厚的大学教材气息,满篇都是抽象概念和抽象的原理图,很多东西啃了半天弄明白了它的
原理和功能,却连它长什么样子,可以到哪里购买都弄不清楚。这让很多知识结构不够健全
的朋友完全不知该如何下手。最后的感觉就是画张图纸简单,做个实际的东西却是难于登天。
意识到这个问题以后,在维护机器人天空网站的过程中我便有意识地去搜集、翻译、原
创了一些非常适合初学者的图文并茂的文章,在文章中多以实物图为主,抽象图为辅,力图
可以将更多徘徊在门外的爱好者拉进到这扇门里来。直到去年春节前,我忽然意识到机器人
天空网站上现有的一些精品文章已经足够可以拼出一本专门针对入门者的电子书籍来。春节
过后便一直忙于收集资料,请朋友帮忙写一些补充的文章,终于拼出了大家现在看到的这篇
文档。希望它可以让更多的机器人爱好者走进到精彩无限的机器人世界中来。
我曾在一篇文章的结尾处这样写到:“我们的作品基本上不会有什么科技价值,也不会
填补什么技术空白,不会为社会主义建设添什么砖加什么瓦,纯粹只是自娱自乐。不过我想,
当更多的人——尤其是学生,以制作机器人作为一种娱乐项目的时候,应该也是一件令人高
兴的事吧”。直至今天,这仍然是我的目标,希望可以有更多的年轻人投入到哪怕是最简单
的机器人活动中来,那么也不枉本书中收录的那些文章作者的辛勤劳动了。
机器人天空()
6
理论篇
机器人天空()
7
如何制作机器
人小车---给初学者
作者:胡泊
最近接触了很多机器人爱好者,很多
人都对机器人技术展示出了浓厚的兴趣,
也在计划如何动手制作自己的第一个机器
人。但是似乎很多的人都摸不到门路,只
能是站在大门外满怀兴趣的向内观望,观
望了一阵兴趣渐失只好叹口气走开……
很多初学者可能都是看了一些视频或
是现场的比赛,勾起了儿时的美好回忆,
兴起了自己动手制作机器人的念头,很多
人可能并不是嵌入式开发的业内人士,甚
至没有听说过单片机、步进电机这些名词,看着别人满地乱跑的各种机器人,颇有无处下手
机器人天空()
8
的感觉。有的人一上来就准备做一个可以双足行走的人形机器人,可以平稳行走,可以靠摄
像头来读取环境信息,可以语音识别,最好还可以变形……
我的意见是:新手最好还是老老实实的从小车开始吧。人形机器人可以说是一个系统的
大工程,不是一个人玩的起来的,而且资金上的投入也是不可计量的。一个人形机器人的成
型产品最少要卖到几千块——要知道,你在开发过程中是不可能没有错误投入的。机器人小
车技术上门槛较低,资金投入也少,市场上的各种产品和零配件的支持也较多,虽然简单,
但可以实现的功能可一点也不少。
我在这里凭自己的经验介绍一些自己动手制作机器人小车的基础知识,如果你是曾经自
己动手做过的高手,那么你可以绕行,我这里介绍的都是为未入门者准备的最基本的理论知
识和一些动手经验。
那么现在我们开始,首先是理论部分——小车的控制结构。
[一]小车的整体控制系统
小车是怎么来控制的?为什么小车判断出障碍物后可以自动的绕开?
理论:控制工程——处理自动控制系统各种工程实现问题的综合工程技术。包括
对自动控制系统提出要求(即规定指标)、进行设计、构造、运行、分析、检验等过程。它
是在电气工程和机械工程的基础上发展起来的。
闭环控制:闭环控制有反馈环节,通过反馈系统是系统的精确度提高,响应时间缩
短,适合于对系统的响应时间,稳定要求高的系统。
开环控制:开环控制没有反馈环节,系统的稳定不高,响应时间相对来说很长,精
确度不高,使用于对系统稳定精确度要求不高的简单的系统。
一般稍微复杂一点的机器人小车都是闭环控制,也就是说它有一个反馈机制,会根据自
己配备的各种传感器来读取环境信息,并且根据这些环境信息来决定自己下一步的行动,决
定好后将行动指令发给执行系统,使机器人做出合适的动作。当然也有的机器人小车是开环
控制,我就见
过一个机器人小车配了一支笔,将机器人放在纸上,机器人一转,刷的一下在
纸上画出一个圈来,当然由于摩擦力和机械误差等原因,画出来的圆圈可能不闭合,也可能
不圆。不过人家阿Q都说了:“孙子才画的圆呢……”
机器人天空()
9
有点迷糊?没关系,其实简单一点说就是这样:机器人可以分为三部分——传感器部分、
控制器部分、执行器部分。
传感器部分:机器人用来读取各种外部信号的传感器,以及控制机器人行动的各种开关。
好比人的眼睛、耳朵等感觉器官。
控制器部分:接收传感器部分传递过来的信号,并根据事前写入的决策系统(软件程序),
来决定机器人对外部信号的反应,将控制信号发给执行器部分。好比人的大脑。
执行器部分:驱动机器人做出各种行为,包括发出各种信号(点亮发光二极管、发出声
音)的部分,并且可以根据控制器部分的信号调整自己的状态。对机器人小车来说,最基本
的就是轮子。这部分就好比人的四肢一样。
好的,现在我们来分析一下机器人小车的避障行为控制:机器人正在行走过程中(人在
路上走),忽然接收到装在机器人前部的传感器发来的一个“左前方有障碍物”的信号(人
眼发现左前方有一根电线杆),我们事先写在机器人控制芯片中的程序算法要求机器人发现
左前方有障碍物就往右边转(人发现左前方有电线杆就应该往右躲——什么,你还要继续往
前走?你牛!那我就等着听响了,哦,原来你只是想去看上面的小广告……),控制芯片对
机器人的驱动器——或是轮子,或是双足——发出向右转的指令(人大脑发出向右转的指令,
通俗点说就是“拐了拐了”),此时机器人的执行器部分应该立即响应控制器的指令,改变
自己的状态,使机器人的前进方向改变,避开障碍物(恭喜你,躲开了电线杆)。
怎么样,是不是有了点机器“人”的意思?
那么这三部分是怎么联系起来的呢?很简单:电!其实机器人小车就是一个电子作品,
传感器将外部的光信号、声音信号、温度信号等全部转换为控制部分可以接受的电信号,控
制系统发出的指令也是各种电信号,通过执行部分转变为电机输出的扭矩、声音、光信号等
等。
下面我来分别介绍一下这三个部分。
[二]传感器部分
传感器是机器人的眼睛,想要小车完成不同的任务就要配备各种不同的传感器。
现在市场上林林总总的传感器数不胜数,一般个人机器人爱好者经常使用的有碰撞检测
传感器(碰撞开关)、红外测障传感器、红外测距传感器、光敏电阻、电子温度计、电子
指
南针等等。
一般机器人用的传感器返回的信号分两种:一种返回值很简单,只有两个状态:“有”
机器人天空()
10
或者“没有”;“是”或者“不是”;“0”或者“1”。我一般习惯把这种量称为“状态
量”。它所反映的是一种状态,只是简简单单的“是”或“否”。比如“机器人左边有没有
障碍物”,“有没有声音信号”等。还有一种返回值返回的是一个已知范围内任意值,比如
一只光敏电阻返回的信号就可能是0~5V范围内的任意电压信号。我一般把这种量称为“强
度量”。它所反映的是一个有效范围内的强度。比如“机器人左边的障碍物有多远”,“现
在的声音信号有多强”等。
“状态量”反映的信息较简单,相应的传感器也较简单,成本较低。而“强度量”反映的
信息则较丰富,相应的传感器的成本就会比较高,同时给控制上也带来了更大的灵活和复杂。
下面我们来看一些常用的传感器:
碰撞开关:电路常开,碰到障碍物后连通,可以用来检测机器人是否发生碰撞。
光敏电阻:光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改
变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、
机器人天空()
11
光的控制和光电转换(将光的变化转换为电的变化)。可以用来检测光线强度。
红外测障传感器:红外测障传感器利用红外线遇到障碍物会反射的原理,来检测某一方
向上是否有障碍物的存在。
红外测距传感器:红外测距传感器利用红外信号遇到障碍物距离的不同反射的强度也不
同的原理,进行障碍物远近的检测。红外测距传感器具有一对红外信号发射与接收二极管,
发射管发射特定频率的红外信号,接收管接收这种频率的红外信号。
超声波测距传感器:超声波测距传感器利用声音在空气中的传输距离和传输时间
成正比的原理,通过检测不同远近的反射面对超声波反射回去的时间不同来检测障碍物的距
离。
机器人天空()
12
对于传感器,很多人觉得只要看看文档,知道怎么用了就行。但我的建议是:不但要知
道怎么用,还要知道其检测原理。只有深刻的理解了传感器的检测原理,才能具有更好的发
散思维。我举一个例子:当初在学校开展机器人灭火比赛,我们用了厂家提供的地面灰度传
感器依靠可见光反射来检测地面白线,效果一直不是很理想。后来有同学仔细研究了当时电
机上配备的光电编码器,发现其原理就是利用红外线在不同颜色表明上反射率不同检测高速
旋转的电机上黑白相间的码盘来测出电机的旋转速度,动手将光电编码器上的红外检测模块
拆下来装在机器人底部,用来检测地面白线,检测效果一下子好了很多。
购买途径:当地的电子市场,或是网上购买(现在很多机器人商家都有各种各样的传感器
提供,其实原理和适用范围都差不多,很多都可以互换通用)。购买时需要注意的是传感器
的电压范围和有效范围。
终极开发:图像识别依靠一只摄像头,根据摄像头返回的视频信号,计算出各个不同
物体距自己的距离以及其运动速度等等。如果你可以迈入这一步,那么,有一门叫做“机器
视觉”的学科的大门也就向你敞开了。
[三]控制器部分
适合机器人的控制芯片有很多:单片机、DSP、甚至我们计算机上所用的CPU,都
可以。不过我们这里主要介绍的针对机器人小车的技术,所以把其他的先放一放,让我们把
注意力放到物美价廉的单片机上来。
首先还是理论课,不要抱怨,我的信条是:不懂理论的开发者永远只能是一个拼装师。
单片机:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算
机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、
价格便宜、为学习、应用和开发提供了便利条件。
小芯片有大智慧
机器人天空()
13
单片机是自动控制系统中应用非常广泛的控制芯片,现在就在我们身边的许多的电器
中都有单片机的身影。想自己动手制作机器人的话,相应的单片机知识是必不可少的。
系统的单片机知识我这里不想多说,想要对单片机系统有一个深入的理解,还是要找一
本比较好的单片机教材一页一页的看下去,网上的任何“技巧”“快速入门”(包括本文)都只
能算是水果、零食之类,闲暇无事时可以拿来开开胃,真正想要吃饱吃好,还是要用大饼卷
馒头就着米饭吃才行。
我这里只提一些基础的入门概念,给真正的入门者起一点抛砖引玉的作用。
一块我们刚刚从商家手里拿到的单片机芯片,还是一块空白,什么也做不了。如同一个
刚出世的孩子,我们开发人员要做的,就是教会单片机处理各种各样的问题,给单片机配备
上各种各样的扩展工具,使单片机可以将复杂的问题简单化,数字化。
单片机开发涉及两方面:硬件、软件。
单片机不同于其他电器,拿过插销直接插在电源上就可以使用,一块空白的单片机想要
使用,还需要一些其他的电路来支持。一般来说,最基本的电路就是单片机最小系统:
所谓的单片机最小系统就是指
可以让单片机工作起来的
最基本
的电路,在所有的单片机系统中,
你都可以找到类似的电路。至于它
的原理,我这里就不累述了,找本
书看去吧。
我再介绍一些做机器人需要的扩
展电路:
程序下载电路:单片机最终需
要程序来控制,一般都是在PC上
编写好程序,通过下载线来下载到
单片机中执行。下载需要一个电路来支持,以前的通常做法是连接到PC的串口,不过现在
有很多通过USB下载程序的电路。
机器人天空()
14
以上两个电路就是机器人开发所需要的最基本的单片机电路,其他也许还需要一些电
机驱动、A/D转换、开关选择等电路。
也许你有些迷糊,可以有一点感到棘手了,这些电路对于一个从未接触过单片机的新手
来说可能有些头大,没关系,现在市场上有很多成熟的单片机开发系统出售,价格极为低廉,
如果不想在底层电路上多花精力的话,到一些电子商务网站上搜索一下“单片机开发板”,一
百多就可以买到功能十分齐全,赠送软件+教程还有技术支持服务的适用开发板了(当然,
你如果自己动手的话,成本会更低)。
软件:说白了就是你自己给单片机开发的智能程序,让机器人可以具有最简单的智能。
不要看到“智能”这两个字就觉得多么高深,看到前面有电线杆知道要拐,这,就是智能。
不同的单片机需要不同的开发环境,这个要在购买的时候就弄清楚,很多单片机公司都
有自己配套的开发软件,很多都是可以在公司网站上免费下载。一般来说,国外的很多芯片
公司在自己的网站上都有非常丰富和适用的资料,抱本英汉词典,将网站上的资料浏览一下,
你会发现一切都变得十分简单。
以前一说起单片机开发就会想起汇编语言,那时候的芯片成本很高,芯片的运算开销和
存储开销都要精打细算,高效率的汇编语言是单片机的最佳选择。而现在随着芯片成本的降
低,开销问题已经不再是制约单片机程序开发的瓶颈,所以很多类C或Basic语言的开发环
境都已经出现。只要有一定的程序开发基础,对单片机的各种引脚足够熟悉,那么相信写出
一个简单的智能程序将是很容易的事。
购买途径:电子市场或是网购。现在单片机的价格已经十分低廉,价格上无需考虑太多,
关键是要选择一款合适的,资料较多,容易上手的就可以。就机器人开发来说,要满足以下
几个条件:有程序下载线,可以方便的将程序从PC上下载到单片机上;集成了A/D转换;
有PWM输出(便于控制电机)。
终极开发:单片机终究能力有限,想要做一些运算量较大的应用时(例如音频视频的处
理),就需要一些更高端的芯
片,比如DSP等,或者干脆把你的电脑机箱加上几个轮子,让
你的电脑跑起来吧!
相关名词:C51,PIC,AVR,PWM……啥意思?自己搜去!
机器人天空()
15
[四]执行器部分
对于机器人小车来说,最基本的执行器部分就是轮子。要有轮子,小车才能被称为小车。
这部分可能也是各位爱好者最发愁的部分,传感器和控制器到处都有的卖,而一般适合机器
人小车上用的轮子,机械结构,车体等部分却很难寻觅。找人订做成本极高,现在很多朋友
都用玩具小车来进行改装。其实现在已经开始有机器人小车底盘出售,不过在电子市场很难
见到,多数都要在网上一些教育机器人公司的网店里邮购。
机器人常用的电机分为三种:普通的直流电机、步进电机、伺服电机。
直流电机:输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和
机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电
机运行时是直流发电机,将机械能转换为电能。
步进电机:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载
机器人天空()
16
的情况下,电机的转速、停止的位置
只取决于脉冲信号的频率和脉冲数,
而不受负载变化的影响,即给电机加
一个脉冲信号,电机则转过一个步距
角。这一线关系的存在,加上步进电
机只有周期的误差而无累积误差等特
点。使得在速度、位置等控制领域用
步进电机来控制变的非常的简单。
伺服电机:伺服电动机又称执行
电动机,在自动控制系统中,用作执
歇件,把所收到的电信号转换成电动
机轴上的角位移或角速度输出。分为
直流和交流伺服电动机两大类,其主
要特点是,当信号电压为零时无自转
现象,转速随着转矩的增加而匀速下
降。
这三种电机一般来说成本是直
流<步进<伺服,控制精度是直流<步进
<伺服(当然也有不一般的时候,并不是说伺服电机就一定比步进电机便宜)。
初学者对单片机控制电机不太熟悉,起步可以先用单片机输出的PWM信号来控制直流电
机,更进一步可以试着控制步进电机,以求更高的控制精度。对于小车的运动驱动来说,一
般可以选用直流电机或步进电机,而伺服电机一般用在机械臂上,用来得到精确的旋转角度。
一般单片机要通过驱动电路来控制步进电机、伺服电机。有专门的模块来负责驱动电
机,单片机只需要为这样的模块提供一定频率的脉冲和控制信号就可以了。网上相关的资料
很多,大家需要的话可以去自己找一下。
购买途径:电
子市场、五金商店、网购、旧家电。
终极开发:当你可以自如的控制机器臂的时候,你就会发现,一个类人机器人将不再遥
远。
其他的常用驱动装置还有机械臂机械手等,装在小车上去抓取东西。可以自己利用伺服
电机开发(初学者最好绕行),也可以选择市面上的成型产品,这些产品一般都有完整的文
档,仔细阅读,使用起来都是很方便的。
[后记]
最后再介绍一点电子电路开发的东西吧,提起电路,可能很多朋友首先想起来的就是
墨绿色的印刷电路板,现在很多电子市场都有人可以根据你的电路图为你加工印刷电路板。
不过在设计阶段,很多东西都会改来改去,每次都去重新制作电路板效率和成本都是大问题,
一般在电路开发中,有一种专门的实验板(也叫面包板),适合在开发阶段使用。
以上就是我写的一点经验之谈,没有写什么具体的技术,只是将新手可能会感到迷茫的
机器人天空()
17
一些问题列出来,就像我在前面说的,这篇小文章只能算是一点小点心,真正想要成为机器
人高手,还是需要埋头啃一些专业书籍。学习没有捷径,如果你走了捷径,那只能说明你比
别人少看了风景。
这篇文章的目的只是想让一些对机器人有兴趣而又不知如何着手的朋友知道制作机器人
需要些什么东西,需要哪些知识准备,不入大家法眼,只是希望能有更多的朋友加入到机器
人开发的行列中,当然了,我们的作品基本上不会有什么科技价值,也不会填补什么技术空
白,不会为社会主义建设添什么砖加什么瓦,纯粹只是自娱自乐。不过我想,当更多的人——
尤其是学生,以制作机器人作为一种娱乐项目的时候,应该也是一件令人高兴的事吧,呵呵。
概念剖析:什么是
BEAMBEAMBEAMBEAM
机器人?
作者:胡泊
经常浏览一些国外机器人网站的朋友们可能经常见到“BEAMRobotic”这个名词,但在
一些机器人学的教科书上却找不到这个名词的解释。那么“BEAMRobotic”到底指的是哪一
类的机器人呢?
“BEAMRobotic”的概念是由著名的机器人爱好者MarkTilden提出的。现在实验室里
的多数机器人都是一开始为实现一个复杂的任务而设计,技术门槛高,成本也绝非一般个人
爱好者所能够承担。而MarkTilden则反其道而行之,主张从最基本的模仿自然生物某一功
能的简单机器人坐做起,如同自然界生物进化一样,逐渐从简单到复杂的实现机器人的“进
化”。正是因为如此,“BEAM”机器人技术门槛低,成本不高的特点吸引了众多业余爱好者的
加入。“BEAM”是以下几个单词的缩写:
Biology-生物学:BEAM机器人都是
模仿自然界某些生物来设计自己的电路和机械结
构。
Electronics-电子学:用最简单的电路来实现自己的功能。BEAM机器人所用的电路
都是最基本的简单电路,这也是BEAM机器人吸引了众多入门者的原因。
Aesthetics-美学:任何作品都需要一个漂亮的外观。
Mchanies-机械:机器人中机械部分与电子部分同样重要。好的机械结构同样是一个
成功作品必不可少的部分之一。
以上是BEAMers挂在嘴边的几个关键词汇,在实际作品中可能做不到面面俱到(尤其
是第三点),但也应该作为最基本的设计出发点来考虑。
概括起来说,BEAM机器人主要是指个人爱好者业余制作的,由最简单电路驱动的模仿
自然界某一生物的某一项基本行为的机器人。大多BEAM机器人的控制芯片都采用普通的8
位单片机或是直接由PC机做上位机通过有线或无线连接直接控制;驱动方式多用双轮差速
驱动实现,有一小部分机器人还实现了简单的四足或双足驱动;大多BEAM机器人所配备的
传感器也比较简单,多由碰撞开关或红外传感器来实现避障,另外用的比较多的还有光敏电
阻和红外测距传感器等等。大多业余机器人爱好者所制作的机器人或多或少都包含了一些
BEAM的元素。
机器人天空()
19
一般常见的BEAM机器人多为以下功能:
1、避障:这是最基本的BEAM机器人,也是大多BEAM机器人所必须的功能,多采用两
个或三个红外测障传感器或碰撞开关来检测障碍物,机器人由一片单片机控制,多为电机驱
动。可实现机器人无障碍的躲避各种障碍物。
2、趋光:机器人主体部分与避障机器人无异,只是传感器略有不同。一般在机器人前
部安装两个光敏传感器,靠两个传感器的不同返回值的差速来判断光源的方向并逐渐趋近。
3、循迹:此类机器人的基本功能是靠机器人底部的光敏或红外之类的传感器来发现
地面上的标志(多为黑地白线或白地黑线),并循线前进。
近几年,随着各种机器人比赛在国内的蓬勃开展。国内的机器人爱好者也越来
越多,但由于技术或经济上的原因,使众多机器人爱好者难以开展较为复杂的项目,而BEAM
机器人由于成本低,资料丰富,较易上手,成为众多爱好者们首选的项目。
人物简介:
马克特尔顿
马克博士是机器人物理学家,曾为美国国家航空和宇宙航行局(NASA)工作,而且
曾为美国的其他政府机构提供机器人制造技术。他是一个有着丰富机器人知识的物理学家。
在1988他设计了第一个仿生机器人,近几年推出了几款他设计的智能玩具机器人,都取得
了不错的反响。Robosapien是第一个根据他的理论设计制作的
商业机器人。
机器人天空()
20
经验篇
机器人天空()
21
制作机器人常用的单片机性能特点及使用经验
作者:刘天龙
摘要:
很多接触机器人或单片机不久的朋友面对种类繁多的单片机常会困惑,到底它们之
间有何不同?制作机器人到底用哪种单片机控制比较好?当我们选择了一种单片机后,有何
捷径能迅速掌握并应用这种单片机?本文尝试用一种通俗易懂的方法解读上述问题,并设计
了一种有深度的单片机控制机器人的实例,希望能起到抛砖引玉的作用。我与大家分享我使
用单片机的一些经验,希望能让初学者少些迷茫,让已经入门的朋友思维开阔。
写本文时我仅有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
什么是单片机?
个人电脑功能强大,计算
速度快,是较为理想的计算机。但当我们需要用一个小装
机器人天空()
22
置控制微波炉定时开关时,个人电脑就显得笨重和昂贵。因此人们设计出一种浓缩型电脑,
大的有几平方厘米,小的比米粒还小,它们叫做“单片机”——单片微型计算机。CPU是
一个芯片,单片机也是一个芯片,看起来外观差不多,它们有什么不同呢?答案是:单片机
内除了集成有CPU外,还集成了程序储存器ROM(可理解为硬盘)、数据储存器RAM(可
理解为内存),输入输出接口(可理解为显示器、键盘插座),有的单片机内还集成了电机驱
动电路、视频解码电路、AD转换器、无线传输电路等,使得单片机功能变得非常强大。单
片机的特长在于可以用单个芯片和简单外部电路去实现复杂的控制操作,因此非常适合机器
人控制。其实在绝大多数机器人中都有单片机的影子。简单的和中等复杂的机器人可以用单
片机直接控制,高度复杂的机器人用“个人电脑”或者“超级计算机”指挥许多单片机来完
成机器人控制。
4444
学习单片机的捷径是什么?
所谓捷径就是少走弯路。我刚开始学单片机时走了不少弯路,很多朋友和我都有相
似的经历,刚开始接触单片机,面对琳琅满目的图书教材,不知选择哪本;想实践时不知到
哪买单片机;不知如何编程下载程序……
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年代
中东战争时,阿拉伯国家使用的苏制全自动自行防空炮内采用模拟计算机实现
机器人天空()
23
计算飞机轨迹并控制火炮射击目标。
2222
齿轮和凸轮组成的控制器
在模拟计算机诞生前,也就是蒸汽机时代,有些机械天才硬是用数百
个齿轮和凸轮搭建出机械计算机,人们通过转动印有数字的各种齿轮,另一些
齿轮就将运算结果显示出来。机械计算机在人类史上上曾经是高科技产品,第
二次世界大战时,德国著名的密码机就是一种机电混合式计算机,它当时是最
保密的通信工具。
3333
发条和秒表和继电器组成的控制器
在电气时代开始时,人们用钟表内机械的旋转分时控制一些继电器的
通断,从而控制一些机床和生产线的运行。这种装置类似于早期洗衣机内的定
时器。
机器人天空()
24
三入门首选
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个中断优先级的中断结构;串行口是一个全双工的串行通
信口;AT89S
51的电源电压为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引脚需要接正极,以选择采用内部程序存储器。如果忘记给这个引
脚以正确的电压,你的单片机可能不能执行程序。
机器人天空()
25
4444
应用举例
机器人天空()
26
四爱好者制作机器人首选
AVRAVRAVRAVR
系列单片机
1111
简介
AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced
InstructionSetCPU)精简指令集高速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有极高性价比的真实写照。
机器人天空()
27
2222
性能
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
机器人天空()
28
接口(通电就运行,断电就停止,不用复位电路),因此任何初学者都可以用面包
板搭出AVR最小系统,并且编程实践。
4444
实践经验
使用AVR单片机时注意要正确设置熔丝位,SLISP软件就可设置,熔丝位
可决定单片机是采用外部晶振还是采用内部时钟振荡器,如果熔丝位设置为采用外
部晶振,而电路中没有接入晶振,则AVR程序不能运行。很多初学者忽视了这一
点,他们的AVR系统不能运行却找不到原因。再有就是AVR的IO口在使用前需
先编程设置其状态,否则你将发现程序在运行,但IO口没信号。
4444
应用举例
机器人天空()
29
五高级机器人控制器
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编程让它实
机器人天空()
30
现数字电路功能去控制小车。即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位的乘法运算指令
机器人天空()
31
和内积运算指令,为其应用添加了DSP功能,因此凌阳适合进行语音识别。在我国凌阳单
片机在学校比较常见,应用实例较多,可作为机器人爱好者选用的单片机。
九实例:用
AVRAVRAVRAVR
单片机创造机器生命
1111
什么是机器生命
机器生命就是一个能自主生存的机器,一个自动为生存下去而奋斗的机器。对于
机器生命来说,生存的含义就是不断电,继续运行。机器生命具有完全自主决策、自主行
动、活动于未知世界、不需人类参与就能持续运行并且自我维护等特征。影片《终结者》
中的天网就是超级机器生命。《霹雳5号》描述了一个机器人从无生命到有生命的过程。
N.维纳(NorbertWiener,1894~1964)写《控制论》时创造出第一个机器生命Wiener
龟,这个机器龟仅有2个电子管组成的模拟计算机,但它却能实现真正的乌龟觅食、睡觉、
探索、逃避等行为,其表现如同一个有生命的生物一样。机器龟上面有太阳能电池,当自
身电池快用完前,机器龟乐于寻找一个光线充足的地方充电,充满电后可能找个地方睡懒
觉,或者探索未知世界,它有避免碰撞和避免到倾斜地方的趋向,我
们无法预知它的行踪,
因为它不是按照程序运行的,就如同我们自己一样。后来维纳在他的机器龟上又加了一个
电子管,三个电子管连接成简单的神经网络,通过对机器龟训练,维纳通过摇铃可控制机
器龟的行为。正如有生物学家训练狗使得狗听到摇铃声后就流口水。
2222
我们可以自己动手做一个机器宠物
我们今天有先进的单片机,制作一个更好的机器生命其实不难。机器生命远比按
固定程序运行的机器人好玩,就如同宠物狗比玩具狗好玩一样。我们设想的机器生命可以
是一个小型履带式机器人,带有太阳能板,能感受光线强弱,障碍物距离和碰撞,为了实
现人机互动,该机器生命具有语音识别功能。试想你学习一天,回到寝室,叫一声TONY,
你的机器宠物转身飞快跑向你,那种感觉只有宠物的创造者才能体会……
机器人天空()
32
3333
如何实现?如何设计电路?如何设计结构?
这个机器生命方案采用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镍氢充电电池为系统供电。太阳能电池板正负极通过一个三极管
与电池正负极相连。有一个电压比较器比较电池电压与太阳能板的压差,如果压差高于某
机器人天空()
33
值,比较器控制三极管导通,太阳能电池板对充电电池充电。充电电池电压上升,当高于
某值时控制三极管关断,结束充电。为使太阳能板能对电池组充电,要求太阳能板在阳光
直射下输出电压高于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
让机器生命更聪明
我的这个机器生命设计方案能实现最酷的效果是:白天,阳光明媚,机器生命跑
到阳光底下晒太阳,太阳光会随着时间变化,机器生命能自动跑到最合适的位置享受日光
浴。到了晚上,机器生命会找个安静的地方闭目养神,等待明天太阳升起。你可以训练机
器生命,让它知道自己的名字叫什么。比如你叫着它的名字,同时站在它面前用强光照射
它的太阳能电池板,如此反复训练,会使机器生命听到自己名字后向声源方向跑去,在距
离声源一定远处停止,因为以往这样做它都能享受强光照射并充电。这就如同真正的宠物
狗,你叫它名字它就跑到你跟前希望能获得食物。这一切都是完全能够实现的,关键就在
机器人天空()
34
于编程序实现