简单程序打造“山寨”版机器手_第1页
简单程序打造“山寨”版机器手_第2页
简单程序打造“山寨”版机器手_第3页
简单程序打造“山寨”版机器手_第4页
简单程序打造“山寨”版机器手_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    简单程序打造“山寨”版机器手如今,进入网络世界,君便可见满 山遍野都是"山寨",在这个 "山寨文化"蓬勃兴起的年代,很多 人都对这个新生事物充满着好奇心, 跃跃欲试。本人亦不例外,也想来 "山寨"一下。要"山寨"一件什么 东西好呢?想了N久,想不出来,恰 好,本人正学了单片机和C语言不久, 就用C语言编个"山寨"程序吧;刚 好自己又是个机器人迷,就拿定主意 给单片机编个简单的程序,做个"山 寨"版的机器手吧。 机器手的硬件平台与

2、电路原理 做 " 山寨 " 版如今,进入网络世界,君便可见满 山遍野都是"山寨",在这个 "山寨文化"蓬勃兴起的年代,很多 人都对这个新生事物充满着好奇心, 跃跃欲试。本人亦不例外,也想来 "山寨"一下。要"山寨"一件什么 东西好呢?想了N久,想不出来,恰 好,本人正学了单片机和C语言不久, 就用C语言编个"山寨"程序吧;刚 好自己又是个机器人迷,就拿定主意 给单片机编个简单的程序,做个"山 寨"版的机器手吧。机器手的硬件平台与电路原理 接着 ,

3、 还是来介绍一下我们机 器手的另一个重要元件吧,这就是伺 服电机,它在航模界中被广泛使用, 亦称为"舵机",是一种PWM控制 部件。当它收到一串指定角度的"指 令"时,其输出轴就会转动到指定的 角度上。伺服电机跟其他电机不太一 样,输入线不像直流电机那样只有2 根,也不像步进电机(两相式)那样 有 6根,它有自己的特色,只有3根, 引线末端使用杜邦头,如图3所示。 图 3中的杜邦头引线由上至下, 红色的是控制线(脉冲输入线),接 到主控芯片上;中间的是电源线正极,第三条是地线(即电源负极), 供电电压一般是4  6V。伺服电机是 一个PWM控制

4、部件,在其控制线上 输入一个周期性的脉冲信号,这个周 期性脉冲信号的高电平时间通常在 0.5 2.0ms之间,而周期在5 20ms 之间,要求并不十分严格,如图4所 示,图中表格给出了一个典型的20ms 周期性脉冲的脉冲宽度与伺服电机输 出轴旋转角度之间的对应关系。 根据表格中的数据可总结出一条 输出轴角度D和脉冲宽度T的转换关系 式: D=90T135(T?0.5,2.5) 有了这个公式,我们就可以很方 便地将转角角度与脉宽互相转换,计 算出初始化等所需要的脉冲宽度。       程序的编写 作为一个初

5、学者,对于单片机内 部的资源往往理解不深,故程序写得 不好,还请各位高手们手下留情,多 多包涵。机器手程序的总流程图如图5 所示。程序初始化后,就执行输出脉 宽,接着进行按键扫描,完毕后又返 回输出脉宽,循环不止。图 6是输出脉宽到每个伺服电机 程序的详细流程图,W1、W2、W3、 W4、W5是5个脉冲宽度,按顺序分时 地从P3.2P3.5、P3.7引脚向5个伺服 电机输出。例如要在P3.2输出一个宽度 为W1(ms)的脉冲,如程序1所示。 程序中Delay_ms(W1)是一个以 延时1ms为单位的函数,需要延时多 少毫秒只需在括号内填入对应的数字 即可(该函数的程序很简单,不再列 出)。&#

6、160;   图 7是按键扫描子程序流程图。 为了说明原理和排版简洁,图中S1和 S2扫描判断原理采用详细流程,而对 S3S8则使用简化框图。进入此流 程,首先以一个判断语句判断S1是否 按下,若未按下则继续往下扫描;若 按下了,则W1加1,并以2500为上限 值;如W1未超过该上限值,则继续往 下扫描;S2的扫描原理与S1相似,稍 有不同之处是判断W1的下限值,下限 为500。其他按键扫描的原理则分别与 S1和S2类同。程序2所示是扫描S1和S2的程序代码。 读完代码,大家是否觉得按键扫 描部分是不是少了点什么东西?呵呵, 对了,就是没有延时去抖。刚开

7、始自己 也觉得奇怪,没有消抖程序怎么能正确 识别出按键呢?后来,请教了其他高手 之后才知道,由于程序简短,整体循环 周期短,按键按下后,若第一次没扫 到,后一周期还可以扫到;即使受到抖 动干扰,由于Wn的数据变化量很小, 对伺服电机转角的改变影响并不大,故 消抖程序可以省去。 此时或许有人提出 : 是否可以 插入扫描按键释放的代码?关于这个 问题,本人也曾作过尝试,发现在代 码中插入释放判别后,当按键的按放 次数很少时,伺服电机是看不出有转 动迹象的,只在按放次数达几十次时 才有比较明显的效果,这样操作者会 感觉很累,原因是伺服电机转角参数 Wn的范围是在500 2500之间。鉴于 此,我就试

8、着将Wn的增幅加大一点, 于是伺服电机达到了比较明显的旋转 效果,但旋转精度却会大打折扣,故 程序中未插入扫描按键释放的代码。 程序通过仿真后,就可以动手制 作硬件电路了。PCB电路板的设计与制作 图 8所示是在DXP2004  SP2  下设 计的PCB,图中,已将按键从主板中独 立出来,两块板使用10针排线互联, 这样就可以很方便地操作机械手。图9 (a)和图9(b)是PCB3D仿真的正反 两面图。由于电路很简单,我们可以直接 用"洞洞板"焊接,按图纸施工,不 需半小时便可完成,注意把按键接线 引出,接到控制手柄上。本人找了只 废旧的PS2

9、游戏手柄改装代用,只需用 到其中的8个按钮,其余的可以去掉。 这样既看起来美观又用起来方便,如 图10所示。 完成后,用万用表检查无误,把 程序"灌"入芯片即可。至此,"山寨 版"机器手的软硬件部分都完成了,接 着就可以着手加工机械零件了。    机械部分的制作与调整 机械部分零件大部分采用2mm厚 的黑色广告用塑料板制作,为了提高板 材的机械强度,采取了双板粘合的办法 (粘合剂为氯仿),经粘合后的板材, 强度大大增强,估计可达单层的46 倍,为整机安全工作提供了足够的保 证。为了减少零部件并减

10、轻机器上部重 量,直接使用螺栓将伺服电机和板材进 行组合,省去了伺服电机自带的舵臂。 这样既降低了重心,增大了稳定度,又 减轻了伺服电机的负载。以伸缩臂与伺服电机组合为例, 简单介绍一下组合方法吧。首先,用 卡尺(最好用电子卡尺或带表卡尺, 精确度高些)量出伺服电机输出轴外 径f a和内径f b,然后在单层侧板上 合适的位置,按f a尺寸稍小开一圆 孔,使转轴穿过圆孔时,紧凑为宜。 注意,侧板两头应各开一孔,留一边 待用;取另一未开孔单层侧板B,在与 A侧板相同位置上以fb稍大开孔,再 将A、B侧板用氯仿粘合,待干后,一 块具有较高强度的新侧板C就诞生了。 再根据需要在侧板中部打若干个组装 孔

11、,取一颗M3螺丝穿过侧板f b孔把伺服电机输出轴暂时固定,再往侧板 fa孔中注入适量有机溶剂,使孔壁软 化,收紧M3螺丝,使输出轴与侧板完 全配合,孔壁硬化后形成齿状内壁, 恰好与输出轴紧密接触,使侧板能随 轴转动。侧板的另一头也用相同的方 法,连接另一伺服电机。取另一个已 组装单个伺服电机的侧板,用合适长 度的铜柱和若干M3螺丝将两侧板组装 成臂体,组装时注意同端的两个伺服 电机转角一致。拧紧螺丝,臂体就完 成了。 该机器手的其中一个伺服电机需 要使用双输出轴,而一般伺服电机底 部均无输出轴,所以必须给它定造一 个"义轴",要求与原输出轴同心。 截取一块与伺服电机底部同等

12、大小的 双层塑料板D,在适当位置钻孔,注意 D板贴上伺服电机底部时孔要与输出轴 同心,在任意一面上将孔扩大(切不 可整孔都扩),深度只需2mm左右, 用于藏入一个M3螺母,扩孔毕,取 一个螺母和长5mm的带螺纹铜柱,拧 紧,"义轴"便做成了。 采用相似的方法完成各部件后, 便可组装成整体了。组装完成以后, 还需作最后的整机测试,若伺服电机 初始化值和上下限值不适合,可以按 实际调试修改。确定后,将修改完的 源代码编译成bin或Hex文件,下载到 AT89C2051中。再找个合适的电源适 配器给它供电,至此,"山寨版"的 机器手工程顺利竣工。图11为完全手 工制作的&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论