智能机器人制作完全手册(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-13 22:16:08

点击下载

作者:《无线电》编辑部

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

智能机器人制作完全手册(第2版)

智能机器人制作完全手册(第2版)试读:

i创客智能机器人制作全完手册(第2版)《无线电》编辑部 编人民邮电出版社北京

图书在版编目(CIP)数据

智能机器人制作完全手册 / 《无线电》编辑部编. --2版. --北京:人民邮电出版社,2017.7(i创客)

ISBN 978-7-115-46072-1

Ⅰ.①智… Ⅱ.①无… Ⅲ.①智能机器人-制作-技术手册 Ⅳ.①TP242.6-62

中国版本图书馆CIP数据核字(2017)第131725号◆ 编 《无线电》编辑部责任编辑 周 明责任印制 周昇亮◆ 人民邮电出版社出版发行 北京市丰台区成寿寺路11号邮编 100164  电子邮件 315@ptpress.com.cn网址 http://www.ptpress.com.cn北京缤索印刷有限公司印刷◆ 开本:690×970   1/16印张:14.5   2017年7月第2版字数:316千字  2017年7月北京第1次印刷定价:69.00元读者服务热线:(010)81055339 印装质量热线:(010)81055316反盗版热线:(010)81055315广告经营许可证:京东工商广登字20170147号内容提要“i创客”谐音为“爱创客”,也可以解读为“我是创客”。创客的奇思妙想和丰富成果,充分展示了大众创业、万众创新的活力。这种活力和创造,将会成为中国经济未来增长的不熄引擎。本系列图书将为读者介绍创意作品、弘扬创客文化,帮助读者把心中的各种创意转变为现实。

本书汇集了多位创客在智能机器人方面的丰硕成果,不仅为刚接触机器人制作的初学者提供了从单片机、传感器选择到零件设计、组装过程的详尽入门教程,还为有一定基础和经验的制作者提供了从基础到高级,覆盖机器人小车、多足机器人、人形机器人、异形机器人等不同类型,实现遥控、自平衡、语音控制、智能交互、水下探索、家庭服务等不同功能的丰富实例。通过阅读这本书,你会全面了解智能机器人的构成,在设计与制作智能机器人方面获得思路和灵感。前言 我与机器人爱好◇胡泊

每一个人心中或许都有过一个机器人梦想。

对于我们80后这一代人来说,我们心中的机器人梦想就是多啦A梦、擎天柱、霹雳五号、阿拉蕾……随着年龄的增长,生活、学习压力的逐渐增大,我们的很多梦想都被慢慢压到了心底。

很庆幸,我考上了一所机器人项目开展得比较好的大学,很幸运地获得了参加全国机器人大赛的机会,组织学校的机器人活动,大学的几年忽然又和机器人分不开了。

毕业后来到南京,做着一份和机器人不相干的工作,这时我才发现,自己似乎离不开机器人制作这个爱好了。怀念那种自己编写代码,让一个无生命的东西变得有生气的感觉。由于条件有限,刚毕业时,我多是在网上为一些参加机器人比赛的朋友出出主意,关注网络上机器人制作的资源,后来,由此认识了同在南京的几个机器人爱好者,大家都想为国内的机器人爱好者做点什么,于是在2006年便有了机器人天空网站(www.robotsky.com)。

一转眼,机器人天空网站已经运行维护了好几年,在这几年中,我们认识了全国各地众多热爱机器人技术的朋友,有我叫得上名字的,也有许许多多我叫不上名字的。虽然有人离开,却总是有更多的人进来,这一切给了我莫大的信心,使我一直坚信个人机器人事业必定大有可为。

但同时也有一个问题一直在困扰着我:每天来浏览机器人网页、学习知识的人很多,真正动起手来做一个哪怕最简单的机器人小车的朋友却少之又少,这是为什么?

和网友们交流的时候我发现,很多人都表示机器人技术非常有趣,看到别人制作的机器人能跑能跳,自己也欢欣鼓舞,可等到自己真正动起手来的时候,却发现问题总比办法多。有的人看着别人的电路原理图如坠雾中,完全摸不着头脑;有的人做到一半,发现遇到了自己解决不了的问题,时间一长便不了了之;有的人受身边条件所限,想动手却什么都买不到;时间、金钱……障碍一层又一层。特别是一些非理工科出身的爱好者,满怀着儿时的机器人梦想,梦想却被一堆专业名词击得支离破碎。

我也曾浏览过很多的机器人制作的相关资料和书籍,发现很多资料和论文还带有很浓厚的大学教材气息,满篇都是理论概念和抽象的原理图,许多东西啃了半天弄明白了它的原理和功能,却连它长什么样子、可以到哪里购买都不清楚。这让很多知识结构不够健全的朋友完全不知该如何下手,最后的感觉就是:画张图纸简单,做个实际的东西却是难于登天。

意识到这个问题后,在维护机器人天空网站的过程中,我便有意识地去搜集、翻译、原创了一些适合初学者的图文并茂的文章,在文章中多以实物图为主,以抽象图为辅,力图可以将更多徘徊在门外的爱好者拉进门。

这次我们把在《无线电》杂志上发表过的比较优秀的机器人制作文章整理成一本书,以飨读者。希望可以有更多的人投入到哪怕最简单的机器人制作活动中来,那么也不枉本书中收录的那些文章作者们的辛勤劳动了。

我曾在一篇文章的结尾处这样写到:“我们的作品基本上不会有什么科研价值,也不会填补什么技术空白,有些自娱自乐。不过我想,当更多的人——尤其是学生,以制作机器人作为一种娱乐项目的时候,应该也是一件令人高兴的事吧。”与大家共勉!第1章 机器人来了

01 从小车开始你的机器人爱好之旅

02 制作机器人该用什么单片机

03 制作机器人常用的传感器

04 谈谈机器人的安装

05 我的机器人制作体验

06 机器人爱好者如是说01 从小车开始你的机器人爱好之旅◇胡泊

很多初学者可能都看过一些机器人的视频或现场比赛,无论是“奥特曼”“大黄蜂”,还是近年的“WALL-E”(见图1.1),往往都会勾起我们儿时的美好回忆,也会激起自己动手制作机器人的念头。但很多人并不是嵌入式开发的业内人士,甚至没有听说过单片机、步进电机这些名词,看着别人制作的满地乱跑的各种机器人,颇有无处下手的感觉。有的人一开始就准备做一个双足人形机器人,可以稳步行走,可以靠摄像头来读取环境信息,可以语音识别,当然,最好还可以变形……图1.1 电影《机器人总动员》中的机器人小车WALL-E

作为一名机器人爱好者,我中肯地提出建议:从小车开始你的机器人爱好之旅吧!

人形机器人可以说是一个系统的大工程,不是一个人玩得起来的,而且资金上的投入也是不可计量的。一个人形机器人的成型产品最少需要几千元才能买到——这还不包括机器人产品在开发过程中可能出现的种种错误导致的额外成本投入。而机器人小车就不同了,在技术上门槛较低,资金投入也少,市场上的各种产品和零配件的支持也较多,虽然简单,但可以实现的功能可一点也不少,是我们进入机器人天地非常合适的入门工具。

本文中,我们以机器人小车为载体,来解读机器人的一些基础知识。如果你是曾经自己动手做过机器人的高手,那么可以绕行。1.1 小车的整体控制系统

小车是如何控制的?为什么小车判断出障碍物后可以自动绕开?为什么小车可以“听话”地按照路线行进?要解答这些问题,我们先来了解两个概念。

闭环控制:指由信号正向通路和反馈通路构成闭合回路的自动控制系统,又称反馈控制系统。反馈控制系统可以使系统的精确度提高,响应时间缩短,适合于对系统的响应时间和稳定要求高的系统。

开环控制:这是最简单的一种控制方式,是指受控客体不对控制主体产生反作用的控制过程。开环控制没有反馈环节,系统的稳定度不高,响应时间相对来说很长,精确度也不高,通常适用于对系统稳定性、精确度要求不高的简单系统。

一般稍微复杂一点的机器人小车都采用闭环控制,也就是说有一个反馈机制,会根据自己配备的各种传感器来读取环境信息,并且根据这些环境信息来决定自己下一步的行动,再将行动指令发给执行系统,使机器人小车做出合适的动作。当然也有的机器人小车采用开环控制方式,我就见过一个机器人小车,配了一支笔,将小车放在纸上,小车一转,“唰”地一下在纸上画出一个圈来。当然,由于摩擦力和机械误差等原因,画出来的圆圈可能不闭合,也可能不圆,不过人家阿Q都说了:“孙子才画得圆呢……”

有点迷糊?没关系,其实简单一点说:机器人可以分为3部分——传感器部分、控制器部分、执行器部分。

在传感器部分,有机器人用来读取各种外部信号的传感器,以及控制机器人行动的各种开关。好比人的眼睛、耳朵等感觉器官。

控制器部分用于接收传感器部分传递过来的信号,并根据事前写入的决策系统(软件程序),来决定机器人对外部信号的反应,将控制信号发给执行器部分。好比人的大脑。

执行器部分让机器人可以完成各种动作,包括前进、后退、左转、右转、点亮发光二极管、发出声音等,并且可以根据控制器输出的信号调整自己的状态。对机器人小车来说,最基本的执行器就是轮子。这部分就好比人的四肢一样。

好的,现在我们来分析一下机器人小车的避障行为控制。机器人小车正在行走过程中(人在路上走),忽然接收到装在小车前部的传感器发来的一个“左前方有障碍物”的信号(人眼发现左前方有一根电线杆),我们事先写在机器人控制芯片中的程序算法要求机器人发现左前方有障碍物就往右边转(人发现左前方有电线杆就应该往右躲——什么,你还要继续往前走?你牛!那我就等着听响了,哦,原来你只是想去看上面的小广告……),控制芯片对小车的驱动器——轮子——发出向右转的指令(人大脑发出向右转的指令,通俗点说就是“拐了、拐了”),此时机器人的执行器部分应该立即响应控制器的指令,改变自己的状态,使机器人的前进方向改变,以避开障碍物(恭喜你,躲开了电线杆)。

怎么样,是不是有了点机器“人”的意思?

那么这3部分是怎么联系起来的呢?很简单——电!机器人小车就是一个机电结合的作品,传感器将外部的光信号、声音信号、温度信号等全部转换为控制部分可以接收的电信号,控制系统发出的指令也是各种电信号,通过执行部分转变为电机输出的扭矩、声音、光信号等。

下面我来分别介绍一下这3个部分。1.2 传感器部分

传感器是机器人的眼睛,想要小车完成不同的任务就要配备各种不同的传感器。

电子市场上林林总总的传感器数不胜数,通常机器人爱好者最经常使用的传感器有碰撞检测传感器(碰撞开关)、红外测障传感器、红外测距传感器、光敏电阻、电子温度计、电子指南针等。

机器人用的传感器返回的信号分两种:一种返回值很简单,只有两个状态:“有”或者“没有”“是”或者“不是”“0”或者“1”。我们一般习惯把这种量称为“状态量”。它所反映的是一种状态,比如“机器人左边有没有障碍物”“有没有声音信号”等。还有一种返回值,返回的是一个已知范围内任意值,比如,1个光敏电阻返回的信号就可能是0~5V范围内的任意电压信号。我们一般把这种量称为“强度量”。它所反映的是一个有效范围内的强度,比如“机器人左边的障碍物有多远”“现在的声音信号有多强”等。“状态量”反映的信息较简单,相应的传感器也较简单,成本较低。而“强度量”反映的信息较丰富,相应的传感器的成本就会比较高,同时给控制上也带来了更大的灵活性和复杂性。

对于传感器,很多人觉得只要看看相关技术文档,知道怎么用了就行。但我的建议是:不但要知道怎么用,还要知道其检测原理。只有深刻地理解了传感器的检测原理,才能具有更好的发散思维。

举一个例子:当初笔者在学校参加机器人灭火比赛,我们用了厂家提供的地面灰度传感器,依靠可见光反射来检测地面白线,效果一直不是很理想。后来有同学仔细研究了当时电机上配备的光电编码器,发现其原理就是利用红外线在不同颜色表面上的反射率不同,检测高速旋转的电机上黑白相间的码盘,来测出电机的旋转速度的,于是就动

手将光电编码器上的红外检测模块拆下来,装在机器人底部,用来检测地面白线,检测效果一下子好了很多。

再说说传感器的购买途径。各地的电子市场或是网上商店都可以买到一些常用的传感器(现在很多机器人商家都提供各种各样的传感器,其实原理和适用范围都差不多,很多都可以互换通用)。购买时需要注意的是传感器的电压范围和有效范围。

说到机器人传感器的“终极开发”,图像识别算一个,依靠一只摄像头,根据摄像头返回的视频信号,计算出各个不同物体距自己的距离,并调整相应的运动速度和方向等。如果你可以跨过这一步,那么,有一门叫作“机器视觉”的学科大门也就向你敞开了。1.3 控制器部分

适合机器人的控制芯片有很多,单片机、DSP,甚至我们计算机上所用的CPU,都可以。不过我们这里主要介绍的是针对机器人小车的技术,所以其他的先放一放,让我们把注意力放到物美价廉的单片机上来,小芯片有大智慧。

首先还是理论课,不要抱怨,我的信条是:不懂理论的开发者永远只能是一个拼装师。

单片机又称微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一颗芯片上(见图1.2)。概括地讲,一颗芯片就成了一台计算机。它的体积小、质量轻、价格便宜,为机器人学习、开发和应用提供了便利条件。图1.2 单片机可以作为机器人的控制芯片

单片机是自动控制系统中应用非常广泛的控制芯片,在我们身边的许多的电器中都有单片机的身影。想自己动手制作机器人的话,相应的单片机知识是必不可少的。

系统的单片机知识我这里不想多说,单片机不同于其他电器,拿过插头直接插在电源上就可以使用。一块空白的单片机想要使用,还需要一些其他的电路来支持。一般来说,最基本的电路就是单片机最小系统,它是可以让单片机工作起来的最基本的电路。在所有的单片机系统中,你都可以找到类似的电路。至于它的原理,这里就不赘述了。

单片机最终需要程序来控制,一般都是在PC上编写好程序,通过下载线来下载到单片机中执行。下载需要一个电路来支持,以前的通常做法是连接到PC的串口,不过现在有很多通过USB下载程序的电路。

机器人开发除了需要最基本的单片机电路,其他还需要一些电机驱动、A/D转换、开关选择等电路。

也许你感到有一点棘手了,这些电路对于一个从未接触过单片机的新手来说可能有些头大,没关系,现在市场上有很多成熟的单片机开发系统出售,价格极为低廉。如果不想在底层电路上多花精力的话,到网上搜索一下“单片机开发板”,一百多元就可以买到功能十分齐全,还赠送软件+教程及技术支持服务的适用开发板了(当然,你如果自己动手的话,成本会更低)。

至于软件,说白了就是你自己给单片机设计的指令程序,让机器人可以具有最简单的智能。不要看到“智能”这两个字就觉得多么高深,看到前面有电线杆知道要拐,这,就是智能。

不同的单片机需要不同的开发环境,这个要在购买的时候就弄清楚,很多单片机公司都有自己配套的开发软件,不少都是可以在公司网站上免费下载的。一般来说,国外的很多芯片公司在自己的网站上都有非常丰富和适用的资料,抱本英汉词典,将网站上的资料浏览一下,你会发现,一切都将变得十分简单。

以前一说起单片机开发,我们就会想到汇编语言,那时候的芯片成本很高,芯片的运算开销和存储开销都要精打细算,高效率的汇编语言是单片机的最佳选择。而现在,随着芯片成本的降低,开销问题已经不再是制约单片机程序开发的瓶颈,所以很多类C或Basic语言的开发环境都已经出现。只要有一定的程序开发基础,对单片机的各种引脚足够熟悉,那么写出一个简单的智能程序就不是难事。

现在单片机的价格已经十分低廉,价格上无需考虑太多,关键是要选择一款合适的、资料较多、容易上手的。就机器人开发来说,要满足以下几个条件:有程序下载线,可以方便地将程序从PC上下载到单片机上;集成了A/D转换;有PWM输出(便于控制电机)。

当然,单片机终究能力有限,想要做一些运算量较大的应用(如音频、视频的处理)时,就需要一些更高端的芯片,比如DSP等,或者干脆把你的电脑机箱加上几个轮子,让你的电脑跑起来吧!

相关名词:C51、PIC、AVR、PWM……啥意思?自己搜去!1.4 执行器部分

对于机器人小车来说,最基本的执行器部分就是轮子。要有轮子,小车才能被称为小车。这部分可能也是各位爱好者最发愁的部分,传感器和控制器到处都有卖,而一般适合机器人小车上用的轮子、机械结构、车体等部分却很难寻觅。找人订做成本极高,现在很多朋友都用玩具小车来进行改装。其实现在已经开始有机器人小车底盘(见图1.3)出售,不过在电子市场很难见到,在一些教育机器人公司的网店里可以购买到。图1.3 机器人小车的车体

说到轮子,就不得不提到电机,那是机器人的“发动机”。机器人常用的电机分为三种:普通的直流电机、步进电机、伺服电机。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件(见图1.4)。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。给电机加一个脉冲信号,电机就转过一个步进角。这一线性关系的存在,加上步进电机只有周期的误差而无累积误差等特点,使得在速度、位置等机器人控制领域,用步进电机来实现相应控制,变得非常简单。图1.4 步进电机

伺服电机又称执行电机,在自动控制系统中,用作执行件,把所收到的电信号转换成电动机轴上的角位移或角速度输出(见图1.5)。分为直流和交流伺服电机两大类,其主要特点是,当信号电压为零时无自转现象,转速随着转矩的增加而匀速下降。图1.5 伺服电机

一般来说,这三种电机的成本排序是:直流<步进<伺服,控制精度排序是:直流<步进<伺服(当然也有不一般的时候,有时伺服电机不一定比步进电机便宜)。

初学者对单片机控制电机不太熟悉,起步可以先用单片机输出的PWM信号来控制直流电机,更进一步可以试着控制步进电机,以求更高的控制精度。对于小车的运动驱动来说,一般可以选用直流电机或步进电机,而伺服电机一般用在机械臂上,用来得到精确的旋转角度。

通常单片机要通过驱动电路来控制步进电机、伺服电机。有专门的模块来负责驱动电机,单片机只需要为这样的模块提供一定频率的脉冲和控制信号就可以了。网上相关的资料很多,大家需要的话可以自己去找一下。

各种电机可通过电子市场、五金商店、网购等途径买到,也可拆解旧家电得到。

当你可以自如地控制机器臂的时候,你就会发现,制作一个类人机器人将不再遥远。

其他的常用驱动装置还有机械臂、机械手等,装在小车上去抓取东西。可以自己利用伺服电机开发(初学者最好绕行),也可以选择市面上的成型产品,这些产品一般都有完整的文档,仔细阅读,使用起来都是很方便的。1.5 后记

最后再介绍一点电子电路开发的东西吧。提起电路,可能很多朋友首先想起来的就是墨绿色的印制电路板,现在很多电子市场都可以根据你的电路图为你加工印制电路板。不过在设计阶段,很多东西都会改来改去,每次都去重新制作电路板,效率和成本都是大问题,一般在电路开发中,有一种专门的实验板(也叫面包板,见图1.6~图1.8),适合在开发阶段使用。图1.6 面包板图1.7 面包板可以方便地修改电路图1.8 用面包板也能做出机器人小车

这篇文章的目的只是想让一些对机器人有兴趣而又不知如何着手的朋友知道制作机器人需要哪些知识储备,没有写什么具体的技术,只是将新手可能会感到迷茫的一些问题列出来。想要成为机器人高手,还需要埋头“啃”一些专业书籍和不断动手实践。学

习没有捷径,如果你走了捷径,那只能说明你比别人少看了风景。

希望能有更多的朋友加入到机器人开发的行列中,如果更多的人——尤其是学生,以制作机器人作为一种娱乐项目,应该也是一件令人高兴的事吧。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单片机的运行速度快得2多,其内部还集成了多路A/D转换器、电压比较器、ISP、IC、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.由发条、秒表和继电器组成的控制器

在电气时代开始时,人们用钟表内机械的旋转分时针控制继电器的通断,从而控制一些机床和生产线的运行。这种装置类似于早期洗衣机内的定时器。03 制作机器人常用的传感器◇胡泊

机器人小车是很多机器人入门者的制作首选。本文为大家盘点几种机器人小车上常用的传感器及其功能。3.1 用于避障的传感器

避障可以说是各种机器人最基本的功能,因此选择测障传感器是每一个机器人DIYer必须熟知的。

检测机器人前方是否存在障碍物的传感器,可以分为接触式和非接触式的。

最典型的接触式测障传感器便是碰撞开关(见图3.1)。碰撞开关的工作原理非常简单,完全依靠内部的机械结构来完成电路的导通和中断。当碰撞开关的外部探测臂受到碰撞,探测臂受力下压,带动碰撞开关内部的簧片拨动,从而电路的导通状态发生改变(见图3.2)。通常碰撞开关需要接3根线,一根红色的电源线,一根黑色的地线和一根黄色的信号线(信号线的颜色可能存在不同)。图3.1 碰撞开关图3.2 碰撞开关的工作状态图

在机器人小车上的用法多数是将探测臂加长,扩大探测范围和灵敏度。当机器人小车撞到前面的障碍物,碰撞开关的信号端便可返回一个高电平,控制芯片由此可以知道小车面前存在着障碍物。

碰撞开关的优点是价格便宜,一般每只零售仅几块钱,使用简单,使用范围广,对环境条件没有什么限制。但碰撞开关也有个最明显的缺点,就是必须在发生碰撞后才能检测到障碍,这在某些机器人比赛中是相当失分的,在某些实际的应用中实用性也会大大降低,而且使用时间较长后,开关容易发生机械疲劳,无法继续正常工作。

非接触式测障开关一般的工作原理与雷达相似,发射某种射线,遇到障碍物,射线被反射回来,并被传感器接收,这时传感器就认为发现了障碍物。我们最常用的便是发射和接收红外线的传感器(见图3.3和图3.4)。图3.3 红外发射管图3.4 红外接收管

现在网上有成套的红外测障传感器出售,可以直接购买产品使用,也可以自己购买电子元器件焊接(见图3.5)。图3.5 红外测障传感器常用电路

红外测障传感器成本较低(当然比碰撞开关还是要高一点),电路简单,检测范围大,如果在电路中加上一个电位器,就可以随时调节传感器的检测范围。这种检测方式为非接触式,控制起来更加方便、灵活。

但这种测障方式也有缺点,多个红外传感器之间容易互相干扰,因此在传感器的布局上需要多花心思,安装位置也要尽可能地避免红外信号的碰撞。3.2 用于测距的传感器

在实际制作中,机器人光知道哪个方向有障碍物并不够,还必须知道障碍物距离自己具体有多远,才好判断下一步的行动。这时我们就需要测距传感器。

测距传感器大多为非接触式的,目前在个人机器人制作领域用得比较多的是红外和超声波测距传感器两种。

提到红外测距传感器,就不能不提夏普的GP2D12红外测距传感器(见图3.6)。GP2D12几乎可以说是机器人爱好者的必备传感器,在我们平时常看到的一些个人机器人作品中,绝大多数都可以看到它的身影。

无图无真相,相信很多朋友看到GP2D12的实物图都会禁不住感叹:“哦,原来是它呀!”是不是很眼熟?说实话,除了在个人机器人上,我还真没在其他的地方见过这个东西。图3.6 夏普GP2D12红外测距传感器

这种传感器的优点是体积小,测量准确,电源电压与输出信号都较常规,一般单片机系统都可直接使用,缺点是成本较高,购买途径较少。

超声波测距传感器(见图3.7)也是一种很常见的测距传感器,依靠超声波的发射与反射接收中的时间差来判断距离。图3.7 超声波测距传感器

超声波测距传感器规格很多,测试距离也从远到近都有,价格相差也较大,一般机器人爱好者使用的是测量范围在几厘米到几米的。

超声波测距的优点在于测量范围较大且不使用光学信号,所以被测物体的颜色对于测量结果没有影响,但其成本较高。由于它依靠声速测距,所以对于一些影响声速的因素较敏感,比如温度、风速等,而且最大允许角度较小。3.3 用于亮度判断的传感器

很多个人朋友制作的机器人都需要判断环境光的亮度,这时就需要亮度传感器。最常用的便是光敏电阻(见图3.8)。光敏电阻是一种随着照射在上面的可见光强度变化而阻值发生相应变化的电阻,可以根据其阻值的变化判断出光强。图3.8 光敏电阻

光敏电阻的使用也非常简单,只要将它当作普通电阻接入电路,根据电流变化便可得出电阻值的变化,进而判断出光强的变化。对于机器人制作,光敏电阻是一种成本低廉、可靠性好、测量准确的元件。3.4 用于测量速度的传感器

机器人自身的行走速度对于判断机器人运动状态和机器人所在位置非常重要,这里我们主要讨论一下机器人小车运动速度的测量。

机器人小车依靠电机驱动轮子来运动,因此测量机器人小车的速度可以归结为测量驱动电机的转速。那么怎么测量电机的转速呢?测量电机转速有很多种方法,比较适合个人机器人爱好者的是采用光电编码器。

光电编码器也有很多种,在个人机器人上比较常见的有两种,一种为反射式,一种为透射式(都是我随口起的名字)。

反射式的基本结构是在电机的旋转轴上加一个圆形的黑白相间码盘(很多都是粘在轮子上的,见图3.9),离码盘很近的地方固定一个红外发射/接收一体模块,利用黑白色对红外线的吸收率不同来进行判断。红外线照射到黑色部分时,大部分被吸收,而无反射信号;红外线照射到白色部分时,大部分红外线被反射回来,而产生强烈的反射信号。当码盘随电机旋转时,红外接收端的输出信号便是一个由旋转速度决定频率的方波,进而我们便可知道此时电机的旋转速度。图3.9 码盘外形图

透射式检测原理与反射式相似。唯一的不同是没有图3.9中的那种黑白相间的码盘,而是在光栅圆盘上开了一圈小孔,红外线或可见光的发射端与检测端分别位于光栅圆盘的两侧(见图3.10),同样利用光栅圆盘旋转后产生的脉冲信号来检测电机的旋转速度。图3.10 光栅盘式光电编码器原理图

从本质上来说,两种传感器都属于光电传感器,这类传感器价格便宜,结构可靠,检测结果准确,不过对于安装位置要求较高。因此,建议大家购买电机时,选择配备了光电编码器的电机,免去自己安装可能带来的种种问题。

检测电机转速,除了光电传感器之外,还有一些利用磁效应原理的传感器,汽车上经常使用这种传感器,本文不再详细介绍了。3.5 用于检测地面灰度的传感器

很多人最开始做的机器人小车基本功能就是循线,白色的地板上贴着一条黑线,让机器人小车沿着地面的黑线前进。很多机器人高手都是从制作类似的作品成长起来的。因此,有必要介绍一下检测地面灰度的常用传感器。

可见光地面灰度检测器,就是使用一个发光装置与一个光敏电阻搭配,装在机器人底部离地面较近的一个位置上,发光装置发射可见光,照射到不同颜色上面后,反射光的强度会有一定的差异,根据光敏电阻的返回值便可知道机器人下方的地面颜色(见图3.11)。图3.11 一种利用发光二极管作为发光装置的地面灰度检测器

笔者最初制作地面灰度检测器的时候,是自己弄了个小灯泡来发光,可是效果不理想,后来换了个摩托车上的6V灯泡,效果好多了,就是电池受不了。再后来买了个与图3.11中差不多的灰度传感器,耗电量下来了,检测效果也还可以,但是还是会有漏测的现象,而且容易受到环境光的干扰。于是我后来就使用了一种非可见光的检测方式——红外线地面灰度检测。

前面介绍光电编码器时提到过,反射式光电编码器的码盘由黑白相间的条纹组成,利用黑白颜色对红外线的吸收程度不同来检测码盘的旋转。其实如果引申一下,把机器人循线的场地看成一个大码盘,

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载