机器人制作天空宝典
前言………………………………………………………………………………………………5
理论篇……………………………………………………………………………………………6
如何制作机器人小车---给初学者………………………………………………………9
概念剖析:什么是BEAM机器人?………………………………………………………18
经验篇……………………………………………………………………………………………20
制作机器人常用的单片机性能特点及使用经验…………………………………………21
制作机器人常用传感器盘点………………………………………………………………35
制作机器人机械结构的一些经验…………………………………………………………41
看看你的实验室还缺了什么………………………………………………………………45
项目篇……………………………………………………………………………………………51
瓢虫机器人制作教程………………………………………………………………………52
日本爱好者制作的微型巡线小车…………………………………………………………68
如何制作你的第一个机器人………………………………………………………………74
基于笔记本电脑的移动机器人……………………………………………………………92
一个BEAM四足机器人的制作过程………………………………………………………105
用Arduino控制的三轮小车……………………………………………………………116
国内机器人爱好者的作品………………………………………………………………123
资源篇
楼主最近还看过
写在前面
一转眼机器人天空已经运行维护了四年多了,在这四年中认识了全国各地众多热爱机器
人技术的朋友,很多朋友都为机器人天空的发展做出了自己的贡
献。像早期的网友留心、肉粑粑、wen2xiao1、yiyix……还有后
来的hym523、yunkangliu、刘天龙等等我叫得上名字的,许许多
多我叫不上名字的。虽然有人离开,却总是有更多的人进来,这
一切给了我莫大的信心,使我一直坚信机器人事业必定大有可为。
但同时也有一个问题一直在困扰着我:每天来浏览网页,学
习知识的人很多,真正动起手来做一个哪怕最简单的机器人小车
的朋友却都少之又少,这是为什么?
和网友们交流的时候我发现,很多人都表示机器人技术非常有趣,看到别人制作的机器
人能跑能跳自己也欢欣鼓舞,可等到自己真正动起手来的时候却发现问题总比办法多。有的
人看着别人的电路图原理图如坠雾中,完全摸不着头脑;有的人做到一半发现遇到了自己解
决不了的问题,时间一长最后便不了了之;有的人受身边条件所限,想动手却什么都买不到;
时间、金钱……障碍一层又一层。特别是一些非理工科出身的爱好者,满怀着儿时的机器人
梦想,却被一堆专业名词将梦想击得支离破碎。
我也曾浏览过很多的机器人制作相关资料和书籍,也发现现在很多资料和论文还带有很
浓厚的大学教材气息,满篇都是抽象概念和抽象的原理图,很多东西啃了半天弄明白了它的
原理和功能,却连它长什么样子,可以到哪里购买都弄不清楚。这让很多知识结构不够健全
的朋友完全不知该如何下手。最后的感觉就是画张图纸简单,做个实际的东西却是难于登天。
意识到这个问题以后,在维护机器人天空网站的过程中我便有意识地去搜集、翻译、原
创了一些非常适合初学者的图文并茂的文章,在文章中多以实物图为主,抽象图为辅,力图
可以将更多徘徊在门外的爱好者拉进到这扇门里来。直到去年春节前,我忽然意识到机器人
天空网站上现有的一些精品文章已经足够可以拼出一本专门针对入门者的电子书籍来。春节
过后便一直忙于收集资料,请朋友帮忙写一些补充的文章,终于拼出了大家现在看到的这篇
文档。希望它可以让更多的机器人爱好者走进到精彩无限的机器人世界中来。
我曾在一篇文章的结尾处这样写到:“我们的作品基本上不会有什么科技价值,也不会
填补什么技术空白,不会为社会主义建设添什么砖加什么瓦,纯粹只是自娱自乐。不过我想,
当更多的人——尤其是学生,以制作机器人作为一种娱乐项目的时候,应该也是一件令人高
兴的事吧”。直至今天,这仍然是我的目标,希望可以有更多的年轻人投入到哪怕是最简单
的机器人活动中来,那么也不枉本书中收录的那些文章作者的辛勤劳动了。
的感觉。有的人一上来就准备做一个可以双足行走的人形机器人,可以平稳行走,可以靠摄
像头来读取环境信息,可以语音识别,最好还可以变形……
我的意见是:新手最好还是老老实实的从小车开始吧。人形机器人可以说是一个系统的
大工程,不是一个人玩的起来的,而且资金上的投入也是不可计量的。一个人形机器人的成
型产品最少要卖到几千块——要知道,你在开发过程中是不可能没有错误投入的。机器人小
车技术<此处内容被屏蔽>槛较低,资金投入也少,市场上的各种产品和零配件的支持也较多,虽然简单,
但可以实现的功能可一点也不少。
我在这里凭自己的经验介绍一些自己动手制作机器人小车的基础知识,如果你是曾经自
己动手做过的高手,那么你可以绕行,我这里介绍的都是为未入门者准备的最基本的理论知
识和一些动手经验。
那么现在我们开始,首先是理论部分——小车的控制结构。
[一]小车的整体控制系统
小车是怎么来控制的?为什么小车判断出障碍物后可以自动的绕开?
理论:控制工程——处理自动控制系统各种工程实现问题的综合工程技术。包括
对自动控制系统提出要求(即规定指标)、进行设计、构造、运行、分析、检验等过程。它
是在电气工程和机械工程的基础上发展起来的。
闭环控制:闭环控制有反馈环节,通过反馈系统是系统的精确度提高,响应时间缩
短,适合于对系统的响应时间,稳定要求高的系统。
开环控制:开环控制没有反馈环节,系统的稳定不高,响应时间相对来说很长,精
确度不高,使用于对系统稳定精确度要求不高的简单的系统。
一般稍微复杂一点的机器人小车都是闭环控制,也就是说它有一个反馈机制,会根据自
己配备的各种传感器来读取环境信息,并且根据这些环境信息来决定自己下一步的行动,决
定好后将行动指令发给执行系统,使机器人做出合适的动作。当然也有的机器人小车是开环
控制,我就见过一个机器人小车配了一支笔,将机器人放在纸上,机器人一转,刷的一下在
纸上画出一个圈来,当然由于摩擦力和机械误差等原因,画出来的圆圈可能不闭合,也可能
不圆。不过人家阿Q都说了:“孙子才画的圆呢……”
有点迷糊?没关系,其实简单一点说就是这样:机器人可以分为三部分——传感器部分、
控制器部分、执行器部分。
传感器部分:机器人用来读取各种外部信号的传感器,以及控制机器人行动的各种开关。
好比人的眼睛、耳朵等感觉器官。
控制器部分:接收传感器部分传递过来的信号,并根据事前写入的决策系统(软件程序),
来决定机器人对外部信号的反应,将控制信号发给执行器部分。好比人的大脑。
执行器部分:驱动机器人做出各种行为,包括发出各种信号(点亮发光二极管、发出声
音)的部分,并且可以根据控制器部分的信号调整自己的状态。对机器人小车来说,最基本
的就是轮子。这部分就好比人的四肢一样。
好的,现在我们来分析一下机器人小车的避障行为控制:机器人正在行走过程中(人在
路上走),忽然接收到装在机器人前部的传感器发来的一个“左前方有障碍物”的信号(人
眼发现左前方有一根电线杆),我们事先写在机器人控制芯片中的程序算法要求机器人发现
左前方有障碍物就往右边转(人发现左前方有电线杆就应该往右躲——什么,你还要继续往
前走?你牛!那我就等着听响了,哦,原来你只是想去看上面的小广告……),控制芯片对
机器人的驱动器——或是轮子,或是双足——发出向右转的指令(人大脑发出向右转的指令,
通俗点说就是“拐了拐了”),此时机器人的执行器部分应该立即响应控制器的指令,改变
自己的状态,使机器人的前进方向改变,避开障碍物(恭喜你,躲开了电线杆)。
怎么样,是不是有了点机器“人”的意思?
那么这三部分是怎么联系起来的呢?很简单:电!其实机器人小车就是一个电子作品,
传感器将外部的光信号、声音信号、温度信号等全部转换为控制部分可以接受的电信号,控
制系统发出的指令也是各种电信号,通过执行部分转变为电机输出的扭矩、声音、光信号等
等。
下面我来分别介绍一下这三个部分。
[二]传感器部分
传感器是机器人的眼睛,想要小车完成不同的任务就要配备各种不同的传感器。
现在市场上林林总总的传感器数不胜数,一般个人机器人爱好者经常使用的有碰撞检测
传感器(碰撞开关)、红外测障传感器、红外测距传感器、光敏电阻、电子温度计、电子指
南针等等。
一般机器人用的传感器返回的信号分两种:一种返回值很简单,只有两个状态:“有”
或者“没有”;“是”或者“不是”;“0”或者“1”。我一般习惯把这种量称为“状态
量”。它所反映的是一种状态,只是简简单单的“是”或“否”。比如“机器人左边有没有
障碍物”,“有没有声音信号”等。还有一种返回值返回的是一个已知范围内任意值,比如
一只光敏电阻返回的信号就可能是0~5V范围内的任意电压信号。我一般把这种量称为“强
度量”。它所反映的是一个有效范围内的强度。比如“机器人左边的障碍物有多远”,“现
在的声音信号有多强”等。
“状态量”反映的信息较简单,相应的传感器也较简单,成本较低。而“强度量”反映的
信息则较丰富,相应的传感器的成本就会比较高,同时给控制上也带来了更大的灵活和复杂。
下面我们来看一些常用的传感器:
碰撞开关:电路常开,碰到障碍物后连通,可以用来检测机器人是否发生碰撞。
光敏电阻:光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改
变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、
光的控制和光电转换(将光的变化转换为电的变化)。可以用来检测光线强度。
红外测障传感器:红外测障传感器利用红外线遇到障碍物会反射的原理,来检测某一方
向上是否有障碍物的存在。
红外测距传感器:红外测距传感器利用红外信号遇到障碍物距离的不同反射的强度也不
同的原理,进行障碍物远近的检测。红外测距传感器具有一对红外信号发射与接收二极管,
发射管发射特定频率的红外信号,接收管接收这种频率的红外信号。
超声波测距传感器:超声波测距传感器利用声音在空气中的传输距离和传输时间
成正比的原理,通过检测不同远近的反射面对超声波反射回去的时间不同来检测障碍物的距
离。
对于传感器,很多人觉得只要看看文档,知道怎么用了就行。但我的建议是:不但要知
道怎么用,还要知道其检测原理。只有深刻的理解了传感器的检测原理,才能具有更好的发
散思维。我举一个例子:当初在学校开展机器人灭火比赛,我们用了厂家提供的地面灰度传
感器依靠可见光反射来检测地面白线,效果一直不是很理想。后来有同学仔细研究了当时电
机上配备的光电编码器,发现其原理就是利用红外线在不同颜色表明上反射率不同检测高速
旋转的电机上黑白相间的码盘来测出电机的旋转速度,动手将光电编码器上的红外检测模块
拆下来装在机器人底部,用来检测地面白线,检测效果一下子好了很多。
购买途径:当地的电子市场,或是网上购买(现在很多机器人商家都有各种各样的传感器
提供,其实原理和适用范围都差不多,很多都可以互换通用)。购买时需要注意的是传感器
的电压范围和有效范围。
终极开发:图像识别依靠一只摄像头,根据摄像头返回的视频信号,计算出各个不同
物体距自己的距离以及其运动速度等等。如果你可以迈入这一步,那么,有一门叫做“机器
视觉”的学科的大门也就向你敞开了。
[三]控制器部分
适合机器人的控制芯片有很多:单片机、DSP、甚至我们计算机上所用的CPU,都
可以。不过我们这里主要介绍的针对机器人小车的技术,所以把其他的先放一放,让我们把
注意力放到物美价廉的单片机上来。
首先还是理论课,不要抱怨,我的信条是:不懂理论的开发者永远只能是一个拼装师。
单片机:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算
机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、
价格便宜、为学习、应用和开发提供了便利条件。
小芯片有大智慧
单片机是自动控制系统中应用非常广泛的控制芯片,现在就在我们身边的许多的电器
中都有单片机的身影。想自己动手制作机器人的话,相应的单片机知识是必不可少的。
系统的单片机知识我这里不想多说,想要对单片机系统有一个深入的理解,还是要找一
本比较好的单片机教材一页一页的看下去,网上的任何“技巧”“快速入门”(包括本文)都只
能算是水果、零食之类,闲暇无事时可以拿来开开胃,真正想要吃饱吃好,还是要用大饼卷
馒头就着米饭吃才行。
我这里只提一些基础的入门概念,给真正的入门者起一点抛砖引玉的作用。
一块我们刚刚从商家手里拿到的单片机芯片,还是一块空白,什么也做不了。如同一个
刚出世的孩子,我们开发人员要做的,就是教会单片机处理各种各样的问题,给单片机配备
上各种各样的扩展工具,使单片机可以将复杂的问题简单化,数字化。
单片机开发涉及两方面:硬件、软件。
单片机不同于其他电器,拿过插销直接插在电源上就可以使用,一块空白的单片机想要
使用,还需要一些其他的电路来支持。一般来说,最基本的电路就是单片机最小系统:
所谓的单片机最小系统就是指
可以让单片机工作起来的最基本
的电路,在所有的单片机系统中,
你都可以找到类似的电路。至于它
的原理,我这里就不累述了,找本
书看去吧。
我再介绍一些做机器人需要的扩
展电路:
程序下载电路:单片机最终需
要程序来控制,一般都是在PC上
编写好程序,通过下载线来下载到
单片机中执行。下载需要一个电路来支持,以前的通常做法是连接到PC的串口,不过现在
有很多通过USB下载程序的电路。
单片机是自动控制系统中应用非常广泛的控制芯片,现在就在我们身边的许多的电器
中都有单片机的身影。想自己动手制作机器人的话,相应的单片机知识是必不可少的。
系统的单片机知识我这里不想多说,想要对单片机系统有一个深入的理解,还是要找一
本比较好的单片机教材一页一页的看下去,网上的任何“技巧”“快速入门”(包括本文)都只
能算是水果、零食之类,闲暇无事时可以拿来开开胃,真正想要吃饱吃好,还是要用大饼卷
馒头就着米饭吃才行。
我这里只提一些基础的入门概念,给真正的入门者起一点抛砖引玉的作用。
一块我们刚刚从商家手里拿到的单片机芯片,还是一块空白,什么也做不了。如同一个
刚出世的孩子,我们开发人员要做的,就是教会单片机处理各种各样的问题,给单片机配备
上各种各样的扩展工具,使单片机可以将复杂的问题简单化,数字化。
单片机开发涉及两方面:硬件、软件。
单片机不同于其他电器,拿过插销直接插在电源上就可以使用,一块空白的单片机想要
使用,还需要一些其他的电路来支持。一般来说,最基本的电路就是单片机最小系统:
所谓的单片机最小系统就是指
可以让单片机工作起来的最基本
的电路,在所有的单片机系统中,
你都可以找到类似的电路。至于它
的原理,我这里就不累述了,找本
书看去吧。
我再介绍一些做机器人需要的扩
展电路:
程序下载电路:单片机最终需
要程序来控制,一般都是在PC上
编写好程序,通过下载线来下载到
单片机中执行。下载需要一个电路来支持,以前的通常做法是连接到PC的串口,不过现在
有很多通过USB下载程序的电路。
以上两个电路就是机器人开发所需要的最基本的单片机电路,其他也许还需要一些电
机驱动、A/D转换、开关选择等电路。
也许你有些迷糊,可以有一点感到棘手了,这些电路对于一个从未接触过单片机的新手
来说可能有些头大,没关系,现在市场上有很多成熟的单片机开发系统出售,价格极为低廉,
如果不想在底层电路上多花精力的话,到一些电子商务网站上搜索一下“单片机开发板”,一
百多就可以买到功能十分齐全,赠送软件+教程还有技术支持服务的适用开发板了(当然,
你如果自己动手的话,成本会更低)。
软件:说白了就是你自己给单片机开发的智能程序,让机器人可以具有最简单的智能。
不要看到“智能”这两个字就觉得多么高深,看到前面有电线杆知道要拐,这,就是智能。
不同的单片机需要不同的开发环境,这个要在购买的时候就弄清楚,很多单片机公司都
有自己配套的开发软件,很多都是可以在公司网站上免费下载。一般来说,国外的很多芯片
公司在自己的网站上都有非常丰富和适用的资料,抱本英汉词典,将网站上的资料浏览一下,
你会发现一切都变得十分简单。
以前一说起单片机开发就会想起汇编语言,那时候的芯片成本很高,芯片的运算开销和
存储开销都要精打细算,高效率的汇编语言是单片机的最佳选择。而现在随着芯片成本的降
低,开销问题已经不再是制约单片机程序开发的瓶颈,所以很多类C或Basic语言的开发环
境都已经出现。只要有一定的程序开发基础,对单片机的各种引脚足够熟悉,那么相信写出
一个简单的智能程序将是很容易的事。
购买途径:电子市场或是网购。现在单片机的价格已经十分低廉,价格上无需考虑太多,
关键是要选择一款合适的,资料较多,容易上手的就可以。就机器人开发来说,要满足以下
几个条件:有程序下载线,可以方便的将程序从PC上下载到单片机上;集成了A/D转换;
有PWM输出(便于控制电机)。
终极开发:单片机终究能力有限,想要做一些运算量较大的应用时(例如音频视频的处
理),就需要一些更高端的芯片,比如DSP等,或者干脆把你的电脑机箱加上几个轮子,让
你的电脑跑起来吧!
相关名词:C51,PIC,AVR,PWM……啥意思?自己搜去!
[四]执行器部分
对于机器人小车来说,最基本的执行器部分就是轮子。要有轮子,小车才能被称为小车。
这部分可能也是各位爱好者最发愁的部分,传感器和控制器到处都有的卖,而一般适合机器
人小车上用的轮子,机械结构,车体等部分却很难寻觅。找人订做成本极高,现在很多朋友
都用玩具小车来进行改装。其实现在已经开始有机器人小车底盘出售,不过在电子市场很难
见到,多数都要在网上一些教育机器人公司的网店里邮购。
机器人常用的电机分为三种:普通的直流电机、步进电机、伺服电机。
直流电机:输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和
机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电
机运行时是直流发电机,将机械能转换为电能。
步进电机:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载
的情况下,电机的转速、停止的位置
只取决于脉冲信号的频率和脉冲数,
而不受负载变化的影响,即给电机加
一个脉冲信号,电机则转过一个步距
角。这一线关系的存在,加上步进电
机只有周期的误差而无累积误差等特
点。使得在速度、位置等控制领域用
步进电机来控制变的非常的简单。
伺服电机:伺服电动机又称执行
电动机,在自动控制系统中,用作执
歇件,把所收到的电信号转换成电动
机轴上的角位移或角速度输出。分为
直流和交流伺服电动机两大类,其主
要特点是,当信号电压为零时无自转
现象,转速随着转矩的增加而匀速下
降。
这三种电机一般来说成本是直
流<步进<伺服,控制精度是直流<步进
<伺服(当然也有不一般的时候,并不是说伺服电机就一定比步进电机便宜)。
初学者对单片机控制电机不太熟悉,起步可以先用单片机输出的PWM信号来控制直流电
机,更进一步可以试着控制步进电机,以求更高的控制精度。对于小车的运动驱动来说,一
般可以选用直流电机或步进电机,而伺服电机一般用在机械臂上,用来得到精确的旋转角度。
一般单片机要通过驱动电路来控制步进电机、伺服电机。有专门的模块来负责驱动电
机,单片机只需要为这样的模块提供一定频率的脉冲和控制信号就可以了。网上相关的资料
很多,大家需要的话可以去自己找一下。
购买途径:电子市场、五金商店、网购、旧家电。
终极开发:当你可以自如的控制机器臂的时候,你就会发现,一个类人机器人将不再遥
远。
其他的常用驱动装置还有机械臂机械手等,装在小车上去抓取东西。可以自己利用伺服
电机开发(初学者最好绕行),也可以选择市面上的成型产品,这些产品一般都有完整的文
档,仔细阅读,使用起来都是很方便的。
[后记]
最后再介绍一点电子电路开发的东西吧,提起电路,可能很多朋友首先想起来的就是
墨绿色的印刷电路板,现在很多电子市场都有人可以根据你的电路图为你加工印刷电路板。
不过在设计阶段,很多东西都会改来改去,每次都去重新制作电路板效率和成本都是大问题,
一般在电路开发中,有一种专门的实验板(也叫面包板),适合在开发阶段使用。
以上就是我写的一点经验之谈,没有写什么具体的技术,只是将新手可能会感到迷茫的
一些问题列出来,就像我在前面说的,这篇小文章只能算是一点小点心,真正想要成为机器
人高手,还是需要埋头啃一些专业书籍。学习没有捷径,如果你走了捷径,那只能说明你比
别人少看了风景。
这篇文章的目的只是想让一些对机器人有兴趣而又不知如何着手的朋友知道制作机器人
需要些什么东西,需要哪些知识准备,不入大家法眼,只是希望能有更多的朋友加入到机器
人开发的行列中,当然了,我们的作品基本上不会有什么科技价值,也不会填补什么技术空
白,不会为社会主义建设添什么砖加什么瓦,纯粹只是自娱自乐。不过我想,当更多的人——
尤其是学生,以制作机器人作为一种娱乐项目的时候,应该也是一件令人高兴的事吧,呵呵。
概念剖析:什么是
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转换器、无线传输电路等,使得单片机功能变得非常强大。单
片机的特长在于可以用单个芯片和简单外部电路去实现复杂的控制操作,因此非常适合机器
人控制。其实在绝大多数机器人中都有单片机的影子。简单的和中等复杂的机器人可以用单
片机直接控制,高度复杂的机器人用“个人电脑”或者“超级计算机”指挥许多单片机来完
成机器人控制。
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年代
中东战争时,阿拉伯国家使用的苏制全自动自行防空炮内采用模拟计算机实现
三入门首选
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(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有极高性价比的真实写照。