双足机械腿的制作.docx
- 文档编号:3672924
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:41
- 大小:1.95MB
双足机械腿的制作.docx
《双足机械腿的制作.docx》由会员分享,可在线阅读,更多相关《双足机械腿的制作.docx(41页珍藏版)》请在冰豆网上搜索。
双足机械腿的制作
作者:
SONG.W
文章中有许多图,需要先登录哦,呵呵
双足机械腿的制作过程—给初学者
1.写在前面的话
1.1阅读对象
这篇文章写给那些希望利用手工方法制作机器人的朋友,这是一篇入门级文章,目的在于帮助那些
徘徊在机器人世界之外的爱好者快速进入机器人的世界,发挥我们的想象,完成儿时的梦想(您有么?
我有……呵呵),我想说大门已经敞开,即使您不阅读这篇文章,只要您有梦想,敢于实现同样能够从
一个普通爱好者成长为一个机器人专家……
读完这篇文章后我相信您也可以动手制作自己的机器人了,当然我更希望您在阅读这篇文章过程中
就已经开始动手了……
1.2制作机器人的几个要点—给未入门的朋友
安全问题:
这一点非常重要,所以写在前面!
制作机器人过程中常常涉及到电路的焊接、零件的加
工。
这些工作可能会给您带来如下伤害,烫伤、烧伤、飞溅(眼睛)、触电、划伤、中毒,所以开工前
大家一定要保护好自己免于受到伤害。
要做到以下几点:
1、身体不要直接接触电压大于36V的电源;
2、焊接加工零件前带好防护眼镜,防止飞溅;3、烙铁不用时放在烙铁架上避免烫伤和火灾;4、有条
件的需要安装通风换气设备;5、进行机械加工时带好手套;6、使用任何工具或仪器前仔细阅读使用说
明,免于因使用不当造成伤害;7、完工后需要切断所有电源。
兴趣爱好:
这一点很重要,它会指引我们前进的方向,但是光有兴趣是不够的还需要专业的学习。
知识积累:
众所周知机器人技术涉及的技术领域很多,对制作者的知识水平还有学习能力要求比较
高。
我认为主要涉及的学科包括机械、电子、自动化、计算机、人工智能、通信、材料(如果没有提到
您所学专业并不表示这个专业在机器人领域不重要仅仅说明作者还需要不断进行知识积累),任何人都
不可完全精通上述的所有技术,我们可以选择其中一个方向不断深入。
作为入门级的朋友更需要不断积
累。
反复尝试:
如果您是第一次做机器人会遇到很多问题,不要急于求成,遇到问题时需要冷静分析,
查阅资料,请人帮助,反复试验,一定要坚持到底不可半途而废,如果中间放弃了再想继续做下去就很
难了,因为第一次的失败会给您留下很大的心理障碍,如果能坚持到最后对您来说将是非常大的鼓舞,
增添不少的信心。
另外制作一个机器人不是3、5天就能完成的,少则一周多则数月甚至数年,请做好心
理准备。
空空以上涉及到的要点在我的机器人制作过程中都有所体现,后面会详细介绍。
==========================================================
2.准备工作
开工前一定把准备工作做足,下面将描述制作一个双足机械腿需要进行哪些准备工作。
2.1工具
制作机器人的过程中我们经常会加工一些零件,所以得力的工具是必不可少的。
这里将介绍一些常
用工具,我相信大多工具我们家里都有。
a.铁皮剪刀,我们将使用铁皮剪刀来加工铝片或铁片,这些金属片主要用来连接固定机器人的电机,
充当机器人的骨架。
对于初级的机器人制作者大多没有条件使用机床这类设备对零件进行加工,所以我们
一般会选择比较容易加工的材料进行手工加工。
b.尖嘴钳子,这属于比较常见的工具就不多说了。
c.偏口钳子,主要用来切割细导线,器件引脚等。
d.镊子,当需要夹持、拾取比较小的零件时,镊子是一个得力的工具。
e.壁纸刀。
f.钢锯条,对金属材料进行加工前,需要在材料上划出参考线,钢锯条的材质较硬,对于在铝或铁
上划出参考线轻而易举。
g.台钳,对零件进行打磨、钻孔或折弯时,都需要台钳进行固定。
h.胶枪。
i.螺丝刀,最好准一套各种规格的螺丝刀。
j.电烙铁,在焊接电路时会经常用到它,当然还有焊锡、烙铁架。
k.手电钻,在零件上打孔时使用,如果有条件可以买个支架,当台钻使用。
2.2仪器仪表
a.游标卡尺,制作舵机支架前先要测量舵机尺寸,使用游标卡尺最方便。
b.三角板,制作舵机支架时我们需要手工绘图,三角板可以辅助我们绘制直线和直角。
c.万用表,当电路出现问题时,万用表可以辅助我们进行错误的分析。
d.示波器,有条件的话建议配一台示波器,虽然使用的不太频繁,但涉及到对信号的分析时它是最
好的助手,后面会讲到。
==========================================================
2.3电子元器件
a.NPN型晶体管若干,我们主要使用它的开关特性。
b.电阻若干。
c.单片机,我所选择的是STC89C52RC。
2.4电机
a.舵机,我们使用舵机来充当机器人的关节。
2.5其他
a.PC机,程序的编写,电路的绘制,模型的建立都需要在PC上进行。
b.C51开发环境,用来编写机器人的控制程序,这一步很重要,我们也有专门的章节进行介绍。
c.铝板、铁板,我们使用铝或铁制作舵机的支架。
以上这些工具我们可以在电子市场、五金店或网络上购买。
2.6专业知识
要完成这样一个双足机械腿需要掌握的知识有很多,这里不进行一一列举,随着文章的继续我们再进
行讲解。
其实不要等自己成为一个机械、电子或计算机高手后再动手,因为我们会发现每个学科都有太多的知
识需要学习,而制作一个机器人并不会用到所有这些知识,我们的原则是用到了再去学,边做边学,我想
高手也是在实践中成长起来的……
==========================================================
3.先让关节动起来吧
当我们要制作一个机器人之前头脑中一定先勾勒出机器人的整体结构,不过这还不够,最好能把我们
设想的机器人画出来,这就是设计,设计的目的是为了更好的实现,如果没有充分的设计工作那我们制作
的机器人多半是糟糕的。
设计没有固定形式,我们可以使用专业的CAD(计算机辅助设计)软件,也可以通过手工绘图的方式,
即便是一些圈圈框框对我们的下一步工作也是有益的。
好吧,让我们先简单设计一下。
从上面的草图可以看出,我们计划制作一个具有六个关节的机器退,而且打算在每个关节处安放一个舵机。
==========================================================
3.1舵机控制
提到舵机,对于初学者可能会感到陌生,我们将花一些时间来介绍如何去控制舵机的旋转,这将非
常有意思......(回忆起第一次成功控制舵机旋转,是一件很开心的事情,而这一过程花费了我大概一周
的时间,后面我将会分享我所遇到的种种问题以及解决的办法)
舵机是这样一种机器,它可以把周期性的电信号转化为旋转角度,以驱动我们所要旋转的物体。
周期
性的电信号一般指的是外部提供的高低电平。
这么解释实在是太抽象了,又是信号又是电平,还是什么
周期性的鬼东西,世界上居然会有这样的电机。
我看还是通过看图说话的形式描述它比较好,看下图......
仔细观察会发现,每个舵机引出三条导线,图上的三条线颜色是红、黑、白。
难道舵机是由这三条
线控制的?
没错,而且这三条线都要正确的链接舵机才能正常工作。
一般来讲舵机的三条导线分别是正、
负和信号线。
但是他们对应的颜色不一定都是红、黑、白。
具体对应那一种颜色需要参考电机的说明,
或自己进行测试,不过有一点作者所使用的舵机中都是正极在中间负极和信号线在两侧。
需要说明一点,标准或协议都是存在的但在实际工程中我们所使用的工具、器件等不一定是按照某
一标准制作或开发的,所以使用前需要阅读使用手册或说明,这一点在后面仍会有体现......
下面看看如何将舵机连入电路,如何驱动它,还是看看图说话......
这个电路很简单,由电源U、开关K、电机M以及若干导线组成,开关K只有两种状态,断开和连接,
开关控制舵机的信号端,可以用0表示K断开用1表示K连接,那么101010就构成了一组开关动作,‘101010’
就表示‘开、关、开、关、开、关’,这连续的开与关就能让舵机旋转起来病保持一定角度,简单吧,
不过先不要着急,这个开关的动作需要在一定的时间条件下进行的,继续看图......
从图中可以看出要控制舵机的正常旋转要做两件事情:
1、每20ms完成一次开与关的动作;(理论上是20ms)
2、开的时间需要保持1~2ms;(1~2ms也是理论值)
这里的20ms我们用周期T来表示,开关打开时所持续的时间用W表示。
其中T是一个常量,也就是
固定不变的时间值,而W是可以改变的我们在一定范围内修改W的值,就可以对应舵机的旋转角度。
看到这问题来了,谁的手能有如此快的速度能在20ms内完成一次开关动作,并且保持开的时间为
1~2ms呢?
谁的手能做到如此的精确呢?
激动人心的时刻马上就要到来了,因为微控制器即将登场,它
控制开关的速度以及精确程度是我们人的双手无法比拟的。
看来把控制开关的动作交给微控制器(计算机)
比较可行。
3.2微控制器闪亮登场
前面提到我们将使用微控制器来控制开关的打开关闭动作。
有些读者又有疑问了,微控制器(计算机)
又没有手如何扳动开关。
我们说微控制器也是计算机,而且是电子计算机(这不是废话么)。
其实计算机本
身就是由各种开关电路构建起来的,只不过这里的开关不是用人类的双手控制的,但原理是一样的都是控制
电流的通过与截止,我们可以称这类开关为电子开关,前面电路中的开关我们暂时成为机械开关吧。
既然都
是开关,能不能使用电子开关来替换机械开关呢,这样计算机就可以控制电子开关了,答案当然是肯定的。
接下来我们要寻找一种电子开关来替换之前的机械开关。
接触过电路的朋友都会了解一个常识,就是晶
体三极管的开关特性,看图......
上图描述的是晶体三极管的开关特性,图中使用一个NPN型晶体管来替换原来的机械开关,当我们将晶
体管的基极与VCC断开时晶体管处于截至状态,电流无法通过小灯泡,小灯泡熄灭,当VCC与晶体管基极连
接后,晶体管处于导通状态电流可以流过小灯泡,小灯泡点亮,更多的关于晶体管的内容读者可以参考模拟电
路相关书籍,这里我们只需要知道晶体管具有这种开关特性就足够了。
(另外,作者不打算在这篇文章中介
绍电路基础、晶体管、以及舵机的具体工作原理,读者如果想要了解这些细节内容完全可以参考这方面的书
籍和资料,这里本着够用的原则,只要它不妨碍我们去实现一个机器人,我们都暂且放下,继续向前走,因
为尽快做出一个完整的机器人对于初学者比什么都重要,不要过度沉迷于细节,当然并不是说这些内容不重要。
)
不知道读者是否注意到了,一个小小的开关已经清楚的描述了计算机的发展历程(上学时我们都学习过
计算机的发展珠算、电子管、晶体管、集成电路IC)。
下面我们要改造我们的电路了,用电子开关替换机械
开关,方便计算机控制。
继续看图......
上图是改造后的电路,改造后的电路将使用微控制器的I/O口来控制晶体管的开关状态,这里之所以要
描述舵机的控制目的是我们将会实现一个多路的舵机驱动电路,有读者问我们可以在网上够买到现成的舵机
控制器,为何还要自己做这些工作呢?
原因有下面几点:
1、现成的舵机控制器价格比较贵(最少也要150元左右),而自己制作可以有效的控制制作成本;
2、使用别人做好的东西多少有些局限性,所以我们自己做;
3、可以学习到更多的知识;
有些读者看到这里可能要笑话作者了,讲了半天就做了一个舵机驱动电路,简直是自找麻烦,为什么呢?
因为很多介绍单片机的书里已经明确讲了舵机的控制方法,直接用I/O口去连接舵机信号线就好了,哪里有这
么麻烦啊。
没错,作者也曾使用过书上的方法,实验之后让作者想起了孟子说的一句话:
“尽信书则不如无书”。
因为第一次实验就失败了,开始以为是波形产生的不正确,便使用示波器进行测量发现不是波形的问题,
本来看似简单的问题为啥就搞不定呢?
还好遇到问题后没有放弃,反复实验再实验再测试,终于在一周之后
把问题找到了,之前测试波形时是没有连接舵机时的波形,看似一切正常,一旦连接上舵机的信号线,波形
马上出现异常了,电压从正常的5V变得很低,马上想到一定是I/O口的驱动能力有限,那么加了晶体管后问
题迎刃而解啊,我想I/O驱动个晶体管的能力还是有的,再利用晶体管开关作用控制舵机,问题解决。
当然
“尽信书则不如无书”,读者可以自己去实验一下,由于我第一次使用的是数字舵机,读者还可以改用模拟舵
机再试试,总之这里不是想说我看的那本书有问题(我相信使用I/O直接控制舵机在某些条件下是可行的),
这里想表达两个观点:
1、遇到问题后不要轻易放弃,如果放弃了再想继续是很难的;
2、尽信书则不如无书,结果的发生都有其先决条件,条件不同产生结果可能是不同的;
到这里舵机的控制基本搞清楚了,下面开始手工焊接舵机驱动电路。
3.3舵机驱动电路
首先看一下八路舵机驱动电路的原理图,
这张原理图很简单,左边的8个引脚分别与单片机的8个I/O引脚链接,右面的8组引脚对应的与舵机连接,
舵机驱动电路采用独立的电源供电,不过需要注意的是单片机与舵机驱动电路需要共地。
下面看看是如何焊接这块电路板的,首先需要准备下面一些器件和材料:
1、220Ω的电阻8个;
2、NPN8050晶体管8个;
3、排针若干;
4、万能板一块;
5、电烙铁、焊锡是必不可少的;
焊接前首先需要进行器件的布局,焊接过程中要避免虚焊,焊接排针时一定掌握好时间,如果烙铁与排针
接触时间过长排针外部的塑料就会融化,所以下手一定要快要准......
3.3使用51单片机控制多路舵机
单片机对于许多初学者感到陌生,那么什么是单片机呢?
那么,这里将为初学者解释一下单片机的概念,
大家对PC机应该都比较熟悉,即使您没有接触过《计算机体系结构》这门课程您也知道如下一些名词:
中央
处理器、内存、硬盘......,那么我们可以这么理解,单片机就是集合了中央处理器、内存、硬盘以及总线系统
的一块芯片,如果需要解释的专业一些,请看图......
从图中可以看出PC机所拥有的元素单片机中都有啊,没错,从体系结构上来讲它们都是冯诺依曼体系
结的计算机,再专业一点就是“程序存储,顺序执行”。
读者有没有感觉到单片机的强大呢,有人会问了既
然单片机这么强大我们何必花上几千元买PC机呀,每个人拿个单片机当PC用不是挺好的么?
其实产生这样
想法的同时您已经在使用这样的机器了,您用的手机、玩的PSP、听的mp3统统可以认为是单片机。
那么单片机与PC机有区别么?
有,在处理能力、存储能力以及应用领域都有区别,我们可以简单的认
为PC机是通用机器,而单片机是专用机器,就像mp3我们只用它来听音乐。
了解了单片机后有些读者又会问,去哪才能买到单片机呢?
没有单片机我们如何才能制作机器人?
没
有单片机我们只能纸上谈兵啊。
不要小看了这个问题,它困扰很多初学者。
就好像让从未接触过计算机的人
去买一台电脑,即使他知道哪里卖电脑却不知道应该买什么牌子买什么配置以及需要问哪些问题。
其实这也不难,对于初学者可以选购单片机开发板,以51单片机为例,开发板的价格稍贵一些,因为
开发板会附带一些模组,便于用户学习,比如数码管、按键、屏幕、扬声器、电机、继电器等等......,其实
单片机本身很便宜的,一般选购方案有下面几种:
1、购买开发板,附带的外部设备比较齐全,而且内置了程序烧录的功能,可以学习如何控制这些设备,
当然价格会高些从几十元到一百多元不等;
2、购买单片机最小系统,这个方案最经济,但一般只有主芯片和必要外部器件,价格也便宜,但如果
想学习其他设备的控制需要单独购买了;
3、还有一种方案就是开发板和最小系统各买一套,在开发板上做开发,等程序调试好后最终的机器人
使用最小系统板,如果让你的机器人驮着一块开发板跑来跑去你的机器人会感到非常的疲惫的,而且影
响了外观。
学习机器人制作,适当的投资是无法避免的,但我们一定要理性消费,能节省的地方要节省。
经验越多
就会越理性,越不容被人家忽悠,呵呵......(如果您是一个初学者,那么您正在被我忽悠)如果您在选购单
片机时有疑问可以联系作者本人,作者可以帮你推荐一下,为了避免植入广告在这里就不推荐了......
单片机选好了,驱动板也焊接完毕了,看看如果把他们连接起来吧,验证一下我们手工焊接的驱动电路
是不是好用......
这里打断一下,为喜欢自学的朋友推荐一些好书吧,
如果有兴趣的读者可以到书店去看看,比较适合初学者,具体内容就不介绍了......
回来继续看我们的话题,单片机与舵机驱动板连接,先看原理图再看实物图,
我们将使用单片机I/O口的某一位来控制其中一路舵机,I/O指的是输入输出,微控制器通过I/O与外部
设备进行交互,这里主要使用I/O口的某一位来为舵机产生控制信号。
所为I/O的某一位指的就是从单片机中
引出的一个引脚,这个引脚可以一般可以输出两个状态0和1(其实还有可能悬空),它就像单片机的一只手
只能完成简单的开和关的动作,而这一开一个关正好为舵机的旋转提供了信号。
这里引入了一些单片机的知识,对于初学者来说可能是一个难点了,因为有很多概念对于那些没有接触
过单片机的读者实在是太抽象了,作者非常能够理解这些读者的心情,不过作者在这里想提醒这些读者正是
因为机器人技术领域涵盖了这么多看似复杂的知识才使它显得更加的神秘,也正是由于这种神秘吸引了无数
的机器人爱好者,所以当您面对这些复杂、晦涩、深奥、难懂、怪异的技术词汇时,唯一能做的就是不断学
习不断理解不断消化,因为制作机器人是您的爱好,不是么?
OK,整理一下心情继续我们的理想......
看看如何控制单片机的I/O,前面说过用1表示开,用0表示关,其实计算机也是这么做的。
我们只要按
照某种时间间隔让I/O的某一位输出0、1序列就好了。
这里我们引入一个字母S,S是Signal(信号)的缩写。
如果我们想让S是0就写“S=0”,如果想让S
是1就写“S=1”,如果我们写:
S=1
S=0
S=1
S=0
就表示我们让信号出现高低变化,逐渐地会发现我们正在做着一件了不起的事情“编程”。
所谓编程,就是计算机的使用者通过某种手段控制计算机的执行,一般来讲编写计算机程序需要使用某
种计算机语言,如:
Basic、C、C++、Java等。
通过计算机语言我们能够指挥CPU完成我们预想的计算任务。
对于控制舵机这件事来说,我们希望计算机发送出舵机控制信号。
我们前面讲过舵机的控制信号的发送是有一
时间要求的。
如果仍然通过S表示的话,就是如下的序列:
S=1,经过时间t后,S=0,经过(20sm-t)后,S=1,经过时间t后,S=0,经过(20sm-t)后,
S=1,经过时间t后,S=0,经过(20sm-t)后,S=1,经过时间t后,S=0,经过(20sm-t)后,
S=1,经过时间t后,S=0,经过(20sm-t)后,S=1,经过时间t后,S=0,经过(20sm-t)后,
......
我们约定t的范围是1~2ms,此时S是一个关于时间的周期函数S=F(t),我们还可以画出S的函数图象,
如果把图中的函数翻译成计算机程序大概是下面的样子:
step1:
S=1;
step2:
延时一段时间tms;
step3:
S=0;
step4:
延时一段时间(20-t)ms;
step5:
gotostep1;
上面的几句话(在程序设计语言中称为语句),已经非常接近计算机的程序设计语言了,只要稍加修改
就能够转化为某种语言被计算机执行,我们可以将这种描述方式称为“伪代码”,没有固定语法,谁都可以
掌握。
那么要如何修改成真正的计算机语言呢?
我们这里以C程序设计语言为例,进行讲解。
(不了解C语言
语法的读者推荐阅读《C程序设计语言》这本经典著作,如果您在语言的学习上遇到任何问题都可以联系作者,
如果您想进一步精通这门语言还推荐您阅读《C和指针》、《C专家编程》、《C陷阱与缺陷》。
)
下面我们写一小段C程序:
1.
2. intmain()
3. {
4. ints=0; /*s表示信号*/
5. intw=1; /*w是1表示1ms*/
6. while
(1) /*进入无尽的循环过程*/
7. {
8. s=1; /*发出打开信号*/
9. delay(w); /*保持1ms*/
10. s=0; /*发出关闭信号*/
11. delay(20-w);/*保持19ms*/
12. }
13. return0;
14. }
复制代码
这段程序完成的功能很简单,就是周期性的改变s的值,并且程序不会停止。
delay是用作延时的函数,
目的是将信号的状态保持一段时间,但是现在这段程序还不能控制舵机的旋转,因为我们还有下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 制作