您现在的位置: 晨光科技 >> 文章 >> 技术 >> 单片机 >> 正文  
  32路舵机控制板与多自由度机械臂         
32路舵机控制板与多自由度机械臂
[ 作者:佚名    转贴自:http://www.eefocus.com/zhang700309/blog/12-09/286479_a1c80.html    点击数:56    更新时间:2018/5/10    文章录入:LA ]
[注:本站登载的某些文章并不代表本站支持或反对其观点或肯定其真实性]

图1 多自由度机械臂实验全景图 

 

一、多自由度机械臂的工业应用现状    

    1961年春,世界上第一个机器人Unimate开始投入使用,它首先在位于美国新泽西州的通用汽车公司的生产线上工作。公司里的3000多名工人中,绝大部分人都欢迎这位新成员的到来。Unimate能够做各种各样的工作,包括投掷车门与其他汽车上的零配件——不要小瞧这一工作,灼热的熔铸物对于普通工人来说是十分危险的。通用汽车公司的首席科学家Stive Holland在2003年的《美国新闻与世界新闻报道》中声称:“我们的机器人最初是用来做3种工作:脏的、困难的与危险的工作。”第一个机器人工作了接近1 0年,每天都不知疲倦地代替一部分工人,做这3种工作。事实胜于雄辩,通用公司的这一成功事例也使工厂主们逐渐认识到生产线上机器人起到了巨大的、不可替代的作用。

图2 博物馆里的Unimate工业机器人

    1954年,美国戴沃尔提出的工业机器人有以下特点:将数控机床的伺服轴与遥控操纵器的连杆机构联接在一起,预先设定的机械手动作经编程输入后,系统就可以离开人的辅助而独立运行。

     1962年美国推出的一些工业机器人的控制方式与数控机床大致相似,但外形主要由类似人的手和臂组成。后来,出现了具有视觉传感器的、能识别与定位的工业机器人系统。当今工业机器人技术正逐渐向着具有行走能力、具有多种感知能力、具有较强的对作业环境的自适应能力的方向发展。

图3 德国KUKA码垛机器人

图4 KUKA的移动机械手机器人

       工业机器人由主体、驱动系统和控制系统三个基本部分组成。主体即机座和执行机构,包括臂部、腕部和手部,有的机器人还有行走机构。大多数工业机器人有3~6个运动自由度,其中腕部通常有1~3个运动自由度;驱动系统包括动力装置和传动机构,用以使执行机构产生相应的动作;控制系统是按照输入的程序对驱动系统和执行机构发出指令信号,并进行控制。

       工业机器人还可以接受示教而完成各种简单的重复动作,示教过程中,机械手可依次通过工作任务的各个位置,这些位置序列全部记录在存储器内,任务的执行过程中,机器人的各个关节在伺服驱动下依次再现上述位置,故这种机器人的主要技术功能被称为“可编程”和“示教再现”。

    这篇文章介绍用DFRobot公司出品的USBSSC32舵机控制板来控制的6自由度机械臂,就是通过“可编程”和“示教再现”技术来实现的。我这个机械臂可以算是工业机器人的原型产品,就用成本低廉的180度舵机、舵机连接器和舵机控制板构建而成,通过它也可以让我们体验到工业机器人的魅力。

视频:

 

二、多自由度机械臂的硬件搭建和设置    

      实现多自由度机械臂原型平台的实验任务,当然首先需按照厂家的说明书把机械臂搭建起来,除了机械手部分,我都是用得DFRobot公司的设备。说明书网址:http://goo.gl/nH3m3。值得注意的是:在安装机械臂平台之前,要通过Arduino控制器的servo.write(90)指令把6个舵机的转角都调整到90度,然后舵机轴上的联轴器圆盘的孔位摆正安放,如下图,否则安装好了,调试时会发现舵机动作行程不合理,于是那就要重新拆装机械臂了。

图5 舵机联轴器圆盘放置位置

    对于32路舵机控制板的使用方法,前面我有文章详述过,《32路舵机控制板与乐高蓝牙遥控车》,网址: http://www.eefocus.com/zhang700309/blog/12-08/282734_3e3a9.html 。这次主要针对上位机舵机控制软件“USBSSC32V2.0(动作存储)”,来讲如何通过“示教再现”和“可编程”方法,来控制机械臂完成一组规定动作。

  DF-USBSSC32控制板的USB驱动和舵机控制软件以及全部文档资料我从厂家获取来,并打包成RAR文件,可以下载:http://115.com/file/dp42m70j#DF-USBSSC32资料.rar

图6  USB调试时的跳线帽和电源设置

      按照上图,把跳线帽插到红圈”2“的位置,红圈”3“的跳线帽拿掉,这样的设置,是利用USB线给控制板逻辑部分供电,利用5V开关电源(图1所示)给舵机部分供电,两套电源分开供电。然后把机械臂6个舵机的控制线,分别接到控制板的舵机端子上。这时,如果已经安装了控制板的驱动,插上USB线与PC机相连,则会生成串口号,我实验时生成的串口号是COM7,也可能生成其他的串口号,就根据自己生成的串口号为准,USB Serial Port串口号可以在windows的设备管理器的”端口“目录中看到,如下图。(文章中所有图片,都可以双击放大看!)

图7 舵机控制板的USB串口号生成显示

    多自由度机械臂的6个舵机分别安装在爪子、腕部X轴、腕部Y轴、肘部Y轴、臂部Y轴、臂部X轴部位,如图8所示,这些部位的舵机按照从爪子到塔台的顺序,分别通过舵机控制线接到舵机控制板的舵机端子3、4、5、13、14、15的针脚上。

图8 多自由度机械臂的舵机布局与功能

 

三、舵机控制软件的动作序列调试与确定

      硬件安装与设置好以后,就可以利用上位机舵机调试软件“USBSSC32V2.0(动作存储)”,开始通过”示教“的方法,确定每一个动作中各舵机的转动角度,并进行添加、记录、保存、下载和试车。

图9 舵机控制软件使用一

      图9所示,软件打开后,把串口号设置为COM7,然后点“连接”按钮,实现上位机与舵机控制板的联机,继续点“编辑模式”按钮,再点击您不需要用到的“舵机调试子面板开关”,把这些子面板关闭不显示,如下图。我只保留了用到的舵机3、4、5、13、14、15的子面板,它们对应着爪子、腕部X轴、腕部Y轴、肘部Y轴、臂部Y轴、臂部X轴部位的舵机,这样可以在调试6个舵机转角位置时,更直观,更有针对性。

图10 舵机控制软件使用二 

    6个舵机都支持180度转角,舵机的转动角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的,标准PWM信号的周期固定为20ms(50Hz),脉宽在500us到2500us之间,脉宽和舵机的转角0°~180°相对应。 所以在安装机械臂之前,应该事先通过Arduino控制器发出脉宽为1500us的PWM信号,把舵机转角都设置在90度位置。

     然后通过舵机控制软件,一动作一个动作地确定6个舵机的角度位置,比如我这次动作序列的第一个动作“机械臂的爪子松开”,用鼠标调整舵机3调试子面板上的游标,发现调整到PWM信号脉宽为1950us时,爪子完全打开,于是确定下来这个舵机3角度位置,其它舵机在这个动作里没有改变位置。这时按下软件界面右下方的“添加”按钮,把这个动作参数添加到动作序列文件中。再比如第二个动作“手臂放下”,也只有一个舵机的角度位置发生变化,调整舵机14调试子面板上的游标 ,发现当脉宽为1940us时,机械臂正好放下到被抓物体的“身边”,然后我把这个动作参数又“添加”到了动作序列文件中,依此方法,一步步确定每个动作时的舵机角度位置,逐步添加到动作序列文件中,就OK了!看下表,一共15个动作,很快就能确定下来了。如果用Arduino控制器来确定,简直是盲人摸象,幸亏有32路舵机控制板的上位机软件这个利器,而且各动作的设置还不用到啥C程序就解决了。

    表:多自由度机械臂抓取物体动作序列的舵机参数表(时间T:2000)

    点击图10软件界面右下方的“测试”按钮,于是机械臂会按照您设置的动作序列表演一遍,看看是否表演到位。如果可以了,请点击“保存”按钮,把动作序列文件存放到PC机硬盘某个文件夹里。到目前为止,还是依赖舵机控制软件通过USB线,来把PC机里存放的动作序列指令一条条地传送给舵机控制板,从而使机械臂动作的。

 

四、舵机控制软件的动作序列下载和脱机运行

       如果想脱离开这个舵机控制软件,让PC机或者Arduino控制器简单地发送一两个“字符串”命令,就让与舵机控制板相连的6个舵机做出一整套动作,那就需要把动作序列文件下载到舵机控制板的存储器芯片里。点击下图中的“下载”按钮,出现下载对话框,因为只用到了一套动作,所以我把动作组编号设为0,如果还想让机械臂做另一套动作,那设置好另一套动作序列后,可以选择动作组编号为1,或者其它编号也行,只不过每个动作组文件的存储单元不能重叠,可以通过设置“数据起始地址”来避免地址重叠的问题。

图11 动作序列文件的下载

     点击“脱机设置”,出现对话框,再点击“启动”按钮,看看下载到舵机控制板里的文件,脱机运行起来是怎样个表现。

图12 动作序列文件的脱机设置

五、SSCOM3.2串口助手软件发送动作序列指令

     点击舵机控制软件界面的“断开”按钮,并关掉这个软件。来看看是否可以发送一个“字符串”命令,让机械臂能执行一套完整的动作。我采用SSCOM3.2串口助手软件来进行测试,注意把软件界面中的“HEX发送”复选框的“√ ”去掉,把“发送新行”复选框的“√”打上,然后打开串口号COM7。在字符串输入框里写入“PL 0 SQ 0”,再点击发送,我看到桌子旁边的6自由度机械臂循环不间断地表演抓取物体动作了,就像视频里展示的那样。“PL 0 SQ 0”字符串的含义是从动作组0的第0动作序号开始播放。如果再输入字符串“PL 0”,则动作停止,字符串“PL 0 SM300”意思动作速度增加300%。这些字符串命令的含义可以在我上传的DF-USBSSC32舵机控制板资料里的说明书中看到。

SSCOM3.2软件,请下载:http://115.com/file/c2iez7hp

 

图13 通过SSCOM3.2串口助手发送动作序列命令

六、PC机与舵机控制板蓝牙串口联机

      拔掉USB线,用蓝牙来联系PC机的SSCOM3.2软件与舵机控制板。看看图6吧,把USB插座旁的跳线帽摘下来,插到红圈“3”的位置,让舵机电源也同时给逻辑部分供电,再安装上DFRobot公司的蓝牙模块,如图14所示。

图14 舵机控制板上的蓝牙模块

    这次用的PC机安装了win7操作系统,我发现低版本的IVT蓝牙驱动管理软件,连接失败,采用高版本V6.4版,成功了。我生成的蓝牙串口号为COM9。

   PC机蓝牙管理软件IVT_BlueSoleilv6.4(win7),请下载:http://115.com/file/beuhmkdf

   下面通过9张步骤图,图解PC机与舵机控制板蓝牙联机的过程。

   

图15 PC机与外设的蓝牙串口联机步骤一

    安装IVT_BlueSoleilv6.4蓝牙驱动管理软件以后,在PC机的USB插座上插入蓝牙模块配套的适配器,右击win7操作系统界面右下角的蓝牙图标,出现快捷菜单,点击“显示经典界面 ”。

图16 PC机与外设的蓝牙串口联机步骤二

   出现的橙色太阳就是蓝牙适配器,右击图标,选择“搜索设备”。

图17 PC机与外设的蓝牙串口联机步骤三

     找到了DFRobot公司的Bluetooth_V3模块,可能还会找到其它设备,不要管它们,认准Bluetooth_V3图标,右击图标,搜索服务。

图18 PC机与外设的蓝牙串口联机步骤四

   图18的红圈标注的串口服务有效,右击Bluetooth_V3图标,进行蓝牙配对,口令为1234。

图19 PC机与外设的蓝牙串口联机步骤五

    看到图19的Bluetooth_V3图标出现了一个绿色的蝴蝶结,说明配对成功,而且界面下方任务进程栏里,也显示“已配对”。

图20 PC机与外设的蓝牙串口联机步骤六

    看到图20中橙色太阳与绿色Bluetooth_V3之间出现了一条虚线,说明虚拟串口联机成功。但是到底生成的虚拟串口是多少啊?右击串口图标,选择“属性”。

图21 PC机与外设的蓝牙串口联机步骤七

    如果下次开机时,发现PC机与舵机控制板的虚拟串口消失了,首先要确定适配器是否已经插到USB插座上了,然后您就打开IVT蓝牙管理软件的经典界面,如下图,点击“连接蓝牙串口(COM9)”即可。

     建立起PC机与舵机控制板之间的无线蓝牙连接,上位PC机软件就可以毫无牵挂地控制多自由度机器人了,想想可以无线控制机械臂,当然也可以无线控制一个13个舵机驱动的机器蜘蛛了,或者其它什么多舵机设备。

七、结束语

      USBSSC32 舵机控制板到底有啥优势,我总结有五点:1、对于多舵机设备而言,确定每一个动作的各舵机转角参数实在是件不容易的事,有了配套的上位机舵机控制软件,通过“示教”的方法,调试、记录、下载一气呵成,使这一过程变得轻松方便;2、舵机控制板上有一块存储器芯片,可以存储多组动作序列,这样上位计算机,发几条字符串命令,就可以让多舵机机器人做出复杂的动作套路,当然也可以通过字符串命令控制每个舵机的每个动作细节;3、舵机控制板可以安装蓝牙模块或者APC220无线数传,这样可以让舵机控制板控制的机器人摆脱有线的束缚;4、32路舵机控制板实际上可以看成一个输入输出接口板,它自己并没有程序思考能力,大家可能认为有点遗憾,但是把大脑交给远端的计算能力更强的PC机,不是不用担心Arduino UNO控制器可怜的CPU能力无以应付智能机器人“繁琐”的计算工作吗?或许您还可以利用PC机做些可视化的操作,所以这样的设计好像还蛮合理的;5、舵机控制板不仅可以同时控制多达32路的伺服电机,可贵的是它还具有4个数字和模拟输入接口,可以接5V电压的传感器,这样就能实现带反馈的闭环控制,让多舵机设备,比如机器蜘蛛,可以根据周边环境变化,做出相应的动作反映。

        我经常研习乐高NXT机器人,由于它的控制器只能控制3个伺服电机,所以在控制机器人瓦力时,传动链设计得相当复杂,不是普通爱好者能设计出来的,如果机器人瓦力的手、脚和脸部表情,都由一个个舵机来直接驱动,这样传动链就可以大大简化,从而降低了您设计类似机器人机械机构的难度。而且爱好者们也发现往往是机器人的传动链功能零件,比如齿轮,精确尺寸的连杆、甚至链条,不容易找到,感觉“巧妇难为无米”,那么用DFRobot公司出品的32路舵机控制板来驱动多个舵机,传动链部件通通可以拿掉,直接带动您希望动作执行部件,再编写几行程序,就OK,不是更具可行性吗!

    文章实在有些长,看得有些累了,来两段国外公司出品的多自由度机器臂玩具视频,放松一下吧。

  • 上一篇文章: 荡漾在求索溪里的Arduino遥控船

  • 下一篇文章: DFRobot语音识别模块与Labview虚拟灯的对话
  •    
    [注:标题搜索比内容搜索快]
    发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
  • 轨道钢承重计算公式及应用[109]

  • 【选型】如何为变频器选取阻值…[86]

  • AIS2023参展厂商名录[346]

  • AGV综合选型[170]

  • APIE 2023第4届亚太国际智能装…[138]

  •  
     最新5篇推荐文章
  • 外媒:正在唤醒中国的习近平[305]

  • 中国反伪科学运动背后的CIA黑手…[494]

  • [转载]袁隆平真言:中国最大的…[668]

  • 台专家:当年我们造IDF时 大陆…[572]

  • 旅日华人:中国严重误判日本民…[577]

  •  
     相 关 文 章
  • Arduino和STM32性能对比究竟谁…[26]

  • Labview及Proteus软件环境下单…[38]

  • 基于labview串口通讯的虚拟数字…[41]

  • AVR编程语言Arduino也可以用Pr…[47]

  • Arduino编程 PWM方法调节LED光…[37]


  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    版权所有 Copyright© 2003 晨光科技        站长:璀璨星辰        页面执行时间:480.47毫秒
    Powered by:MyPower Ver3.5