简单程序打造“山寨”版机器手
否可以 插入扫描按键释放的代码?关于这个 问题,本人也曾作过尝试,发现在代 码中插入释放判别后,当按键的按放 次数很少时,伺服电机是看不出有转 动迹象的,只在按放次数达几十次时 才有比较明显的效果,这样操作者会 感觉很累,原因是伺服电机转角参数 Wn的范围是在500 ~2500之间。鉴于 此,我就试着将Wn的增幅加大一点, 于是伺服电机达到了比较明显的旋转 效果,但旋转精度却会大打折扣,故 程序中未插入扫描按键释放的代码。 程序通过仿真后,就可以动手制 作硬件电路了。 PCB电路板的设计与制作 图 8所示是在DXP2004 SP2 下设 计的PCB,图中,已将按键从主板中独 立出来,两块板使用10针排线互联, 这样就可以很方便地操作机械手。图9 (a)和图9(b)是PCB3D仿真的正反 两面图。 由于电路很简单,我们可以直接 用"洞洞板"焊接,按图纸施工,不 需半小时便可完成,注意把按键接线 引出,接到控制手柄上。本人找了只 废旧的PS2游戏手柄改装代用,只需用 到其中的8个按钮,其余的可以去掉。 这样既看起来美观又用起来方便,如 图10所示。 完成后,用万用表检查无误,把 程序"灌"入芯片即可。至此,"山寨 版"机器手的软硬件部分都完成了,接 着就可以着手加工机械零件了。 机械部分的制作与调整 机械部分零件大部分采用2mm厚 的黑色广告用塑料板制作,为了提高板 材的机械强度,采取了双板粘合的办法 (粘合剂为氯仿),经粘合后的板材, 强度大大增强,估计可达单层的4~6 倍,为整机安全工作提供了足够的保 证。为了减少零部件并减轻机器上部重 量,直接使用螺栓将伺服电机和板材进 行组合,省去了伺服电机自带的舵臂。 这样既降低了重心,增大了稳定度,又 减轻了伺服电机的负载。 以伸缩臂与伺服电机组合为例, 简单介绍一下组合方法吧。首先,用 卡尺(最好用电子卡尺或带表卡尺, 精确度高些)量出伺服电机输出轴外 径f a和内径f b,然后在单层侧板上 合适的位置,按f a尺寸稍小开一圆 孔,使转轴穿过圆孔时,紧凑为宜。 注意,侧板两头应各开一孔,留一边 待用;取另一未开孔单层侧板B,在与 A侧板相同位置上以fb稍大开孔,再 将A、B侧板用氯仿粘合,待干后,一 块具有较高强度的新侧板C就诞生了。 再根据需要在侧板中部打若干个组装 孔,取一颗M3螺丝穿过侧板f b孔把伺服电机输出轴暂时固定,再往侧板 fa孔中注入适量有机溶剂,使孔壁软 化,收紧M3螺丝,使输出轴与侧板完 全配合,孔壁硬化后形成齿状内壁, 恰好与输出轴紧密接触,使侧板能随 轴转动。侧板的另一头也用相同的方 法,连接另一伺服电机。取另一个已 组装单个伺服电机的侧板,用合适长 度的铜柱和若干M3螺丝将两侧板组装 成臂体,组装时注意同端的两个伺服 电机转角一致。拧紧螺丝,臂体就完 成了。 该机器手的其中一个伺服电机需 要使用双输出轴,而一般伺服电机底 部均无输出轴,所以必须给它定造一 个"义轴",要求与原输出轴同心。 截取一块与伺服电机底部同等大小的 双层塑料板D,在适当位置钻孔,注意 D板贴上伺服电机底部时孔要与输出轴 同心,在任意一面上将孔扩大(切不 可整孔都扩),深度只需2mm左右, 用于藏入一个M3螺母,扩孔毕,取 一个螺母和长5mm的带螺纹铜柱,拧 紧,"义轴"便做成了。 采用相似的方法完成各部件后, 便可组装成整体了。组装完成以后, 还需作最后的整机测试,若伺服电机 初始化值和上下限值不适合,可以按 实际调试修改。确定后,将修改完的 源代码编译成bin或Hex文件,下载到 AT89C2051中。再找个合适的电源适 配器给它供电,至此,"山寨版"的 机器手工程顺利竣工。图11为完全手 工制作的"山寨版"机器手外形。 功能测试 机器完成后,本人做了些简易的 测试,主要是回旋范围和夹持搬运不 同物品的性能。 1.回旋范围测试 图11测试左右旋转范围,图12、 图13是测试前后伸展距离。 2.夹持不同物品搬运测试 图14是搬运铅笔测试,图15是搬运中的铁皮罐。 写在后面的话 我刚开始设计这个机器手时是仿 照国外的5个自由度的,后来因采购的 伺服电机的输出力矩不足(需要使用 大力矩的金属齿轮伺服电机),而改 为 4个自由度,在图11中能看到有些 "改造"的痕迹。制作机械部分时也 尝试过使用亚克力板材,由于条件所 限,加工设备只有手锯、锉刀和一把 电钻,加工起来效果不佳,最后只好 放弃了亚克力,改用了现在所用的普 通塑料板。另外,程序设计时,编写 了两个方案,一个见上文,另一个方 案见源代码,可到www.radio.com.cn 上下载,其原理也不复杂,
单片机 51单片机 MCU 单片机视频教程 单片机开发 ARM单片机 AVR单片机 PIC单片机 Atmel stm32 单片机学习 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)