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