04第4章 电机和舵机的控制Word格式文档下载.docx

上传人:b****8 文档编号:22322085 上传时间:2023-02-03 格式:DOCX 页数:28 大小:721.44KB
下载 相关 举报
04第4章 电机和舵机的控制Word格式文档下载.docx_第1页
第1页 / 共28页
04第4章 电机和舵机的控制Word格式文档下载.docx_第2页
第2页 / 共28页
04第4章 电机和舵机的控制Word格式文档下载.docx_第3页
第3页 / 共28页
04第4章 电机和舵机的控制Word格式文档下载.docx_第4页
第4页 / 共28页
04第4章 电机和舵机的控制Word格式文档下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

04第4章 电机和舵机的控制Word格式文档下载.docx

《04第4章 电机和舵机的控制Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《04第4章 电机和舵机的控制Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。

04第4章 电机和舵机的控制Word格式文档下载.docx

底板的上面开了许多孔,用以方便安装其它部件。

底板的一面是光滑的,另一面是不光滑的,安装部件时应尽可能装在光滑的一面上。

底板图片

舵机结构件:

是专用的舵机安装构件,用来安装舵机并把舵机固定到底板或其它构件上。

舵机结构件图片

连接件:

步骤1:

安装底盘和舵机架

用连接件连接底板和舵机结构件,如图。

3.4CDS5500数字舵机

机器人之所以有“人”字,是因为人们希望这种新的人造物能够像人一样,除了有聪慧的大脑、敏感的知觉外、还要有灵活的活动能力,从而能够代替人完成人们所不期望亲力亲为的事情。

机器人常用的运动驱动部件有直流有刷电机、直流无刷电机、步进电机、舵机等。

下面我们将重点讨论创意之星配置的机器人专用舵机——CDS5500数字舵机(电机)。

ProMOTIONCDS系列机器人舵机属于一种集成电机、伺服驱动、总线式通讯接口为一体的集成伺服单元,既可以当作电机作用,也可以当作舵机使用。

当用作电机时它可以360度不停的旋转,控制它的参数为速度和时间,当用途舵机时,它只能旋转300度,控制它的参数为速度和角度,主要用与微型机器人的关节、轮子、履带驱动,也可以用于其它简单位置控制场合。

图2.35CDS5500机器人舵机

CDS5500的特点如下:

◆大扭矩:

10Kgf

cm的持续转动输出扭矩,大于20Kgf

cm位置保持扭矩

◆位置伺服控制模式下转动范围0-300°

◆高转速:

最高0.16s/60°

输出转速

◆在速度控制模式下可连续旋转,调速

◆DC6.5V~8.4V宽电压范围供电

◆总线连接,理论可串联254个单元

◆0.32°

位置分辨率

◆高达1M通讯波特率

◆双端输出轴,适合安装在机器人关节

◆0.25KHz的伺服更新率

◆高精度全金属齿轮组,双滚珠轴承

◆兼容RobotisDynamixel通讯协议

◆连接处O型环密封,防尘防溅水

◆具备位置、温度、电压、速度反馈

步骤2:

安装舵机

先按照图所示,将舵机架装到底板上(安装时注意舵机架不能装反,原因是舵机架的两端长度不统一)。

再将舵机装入舵机架中用螺丝钉固定(注意:

舵机不能装反,安装两侧舵机要对称)。

3.5轮子

在我们现实生活中,我们能够看到各种各样的轮式车辆,他们是我们设计轮式机器人的参考。

实际上,轮式机器人底盘就是把现实的轮式车辆进行缩微和简化而已。

除了摩托车、自行车,各种轮式车辆一般至少有3个轮子同时着地,这样能够让车辆在任何时候都能保持平衡。

同样,在这里我们也不应该选择两轮的构型,控制两轮机器人保持平衡是很困难的,您在第八章能体会得到。

表4.1常见轮子底盘结构对照表

序号

结构类型

说明

1、

后面两个独立驱动的轮子,前面一个转弯用无驱动轮子。

2、

后面两个无动力轮子,前面一个有动力的转向轮。

3、

前面两轮驱动,后面两轮从动,前后都带差速器。

4

前后都是驱动轮,带差速器。

越野车的驱动方式。

5

四轮独立驱动,模型四驱车的驱动方式。

6

中间两个独立驱动的轮子,前后各有一个万向轮。

7

前面一个万向轮,后面两个独立驱动的轮子。

注:

有动力的驱动轮,

无动力的随动轮,

万向轮。

上表我们列出了7种常见的,轮式机器人底盘上经常用到的结构类型。

由于“创意之星”标准版没有万向轮和差速器,我们排除3、4、6、7构型。

1、2构型需要有比较大的转弯半径,5构型的四个轮子可以单独驱动控制,具有很强的机动能力,并且动力比较强劲,所以我们采用构型5。

我们控制四个电机,让机器人能够灵活运动,四个电机转动输出和机器人平台的方向对应关系如表4.2所示。

之后我们需要根据机器人前方的障碍物情况,控制机器人的方向。

表4.2电机与底盘的运动关系对照表

状态

驱动方式

前进和后退

给左右两边的轮子同样向前或向后的电机转速,底盘就会前进或者后退。

有转弯半径的转向

左边的轮子给较高的转速,右边的轮子给较低的转速,底盘就会向右前方转向。

无转弯半径的转向

左右两个给一样的速度,但不同方向的电机转动,底盘就会原地转向。

至此,我们已经清楚我们需要什么样子的轮式小车来完成本次实验。

创意之星里的轮子及连接件主要有

橡胶轮LG和LTLZ4

可以选择其中的一种作为机器人的轮子。

步骤3:

安装橡胶轮

用连接组件橡胶轮连接起来,并用螺丝钉固定。

再将控制板等上层组件与上层底板连接,最后将上下两个底板连接到一块。

组建成完整的小车。

3.6舵机ID

1总线通讯的特点

CDS5500采用半双工串行异步总线通讯,控制器可以通过一个UART接口,控制多达255个的CDS5500。

这是什么意思呢?

我们借用现实中的一个例子来解释。

某学校接到上级要来视察工作的通知,校长为了给领导留个好印象,决定举行一个隆重的欢迎仪式。

他让宣传部编排了一些欢迎动作,这些欢迎动作需要10个方阵的学生共同表演,并且需要步骤协调,每个方阵由一个老师带领,所有的方阵由宣传部长指挥。

带队老师和部长都发一个对讲机,校长要求:

1、部长的对讲机调在讲话模式,带队老师的对讲机调在接听模式。

2、部长统一发布方阵的动作指令,比如A方阵下蹲、B方阵摇手、C方阵站立等。

每个带队老师都能听到这些命令,A方阵带队老师只关心与A方阵有关的命令,不理会和B方阵有关的命令,否则动作就乱套了。

同样,其它方阵的老师也只关心自己方阵的命令,除了要求所有方阵都执行的指令之外。

3、命令只能由部长发布,任何带队老师不能给其他带队老师发布动作命令。

4、带队老师不能随便将对讲机调为讲话模式,向部长咨询事情,否则大家都调为讲话模式,就唧唧咋咋的成了一锅粥了。

只有在部长要求回答的时候才能回答,回答完毕后立刻将对讲机调回接听模式。

某个风和日丽的日子,领导终于来了。

部长按照剧本对方阵老师下命令:

所有方阵听指令,我先发布各个方阵的动作,各个方阵记住自己的动作之后先不执行,等我说执行,所有方阵一起执行。

现在开始,A方阵向前走5步,B方阵摇手,C方阵放气球……,现在所有方阵执行动作。

欢迎仪式动作整齐,配合默契,步骤协调,获得了领导的大加赞赏。

总线是指能为多个功能部件服务的一组信息传输线,它是计算机中系统与系统之间、或者各部件之间进行信息传送的公共通路。

它由一定的物理线路和接口、数据协议规范所构成。

1、部长和各个带队老师的对讲机就是这样的物理线路,它让指挥者和执行者之间的通信成了可能。

校长发布的几个规定就是总线协议,这个协议让总线不会出现冲突、紊乱,让通信能够正常完成。

CDS5500的半双工串行异步总线的物理线路是舵机线、UART接口等,CDS5500也有一套总线协议,您可以在《CDS5500数据手册》里看到具体描述。

2、部长发布命令,其他带队老师只能接受命令,不能发布命令,因此我们可以称部长为主机,其它的带队老师是从机,这个总线上只能有一个主机,否则多人发布命令会导致带队老师(从机)不知道听谁的命令好。

从机可以有很多,现在有10个方阵,如果欢迎仪式的剧本复杂点,可能需要255个方阵也不一定。

在CDS5500这个总线上,“创意之星”控制器就是主机,发布CDS5500需要执行的命令,比如ID为1的舵机转50°

,其它舵机不动。

CDS5500就是从机,这个总线可以串联很多CDS5500,如图2.35所示。

3、这个总线是半双工总线,部长在说的时候,带队老师只能听,带队老师要说话必须将接收机调为讲话模式,部长需要调成收听模式,带队老师说完之后需要立刻切换为收听模式,否则会影响部长发布命令。

“创意之星”控制器作为主机,发布CDS5500的动作指令,舵机在控制器要求应答时才发送应答数据,发送完成后立刻将自己的接口状态调整为接收状态。

4、每个方阵都有自己的代号,这就是从机的ID(地址),主机发布的命令所有从机都可以接收到,但某从机只响应和自己ID匹配的命令。

CDS5500都有自己的ID号,出厂默认都是1,您可以使用RobotServoTerminal软件进行修改,具体操作请查阅《RobotServoTerminal使用说明》。

5、部长可以让带队老师逐个执行动作,比如让A方阵先转向,再让B方阵蹲下,也可以让所有的方阵记住他们要执行的动作,然后同时执行,这样效果会比较整齐。

“创意之星”控制器也可以让CDS5500工作在上述两种模式,这是由总线协议规定的,您可以给1号CDS5500下达转50°

的命令,2号舵机转30°

的命令,然后下达一个命令让所有总线上的CDS5500同时开始执行刚才发布的命令,详细协议可以查阅《CDS5500数据手册》。

通过上述的例子您应该已经了解了CDS5500的半双工异步串行总线的意思及其特点。

那么总线式的机器人舵机和R/C舵机相比有什么优点呢?

我们再用上述例子来说明。

R/C舵机不是总线式的,只能直接接到控制器上,并且占用一个专有端口。

这就要求部长必须长10张嘴,拿着10个对讲机才能给10个方阵下命令。

我们如果要控制20个R/C舵机,则您设计的控制器必须具备20个R/C舵机接口。

“创意之星”控制器有8个R/C舵机接口,能够同时控制8个R/C舵机。

但总线式舵机不一样,只有一个CDS5500接口,理论上就能控制255个CDS5500。

为什么说是理论上呢?

CDS5500是需要消耗电能的,在工作的时候最高可能有2000mA的电流需求,如果在这个总线上接入255个舵机的话,同时工作起来,总线上的电流将达到400A的可怕程度。

实际上,我们也不可能搭建一个具有255个舵机的构型。

2CDS5500的使用

CDS5500采用半双工串行异步总线进行控制,每个舵机都有自己单独的ID号,您在机器人构型搭建时需要对ID号进行配置,以免机器人的某些关节的ID号重叠。

博创出厂的CDS5500默认ID为1,在“创意之星”包装盒里有CDS5500ID编号的不干胶,您设好ID后请将不干胶粘贴到舵机后盖上,避免遗忘。

CDS5500有专用的调试环境RobotServoTerminal,在这个环境下,您可以设置舵机ID、波特率、工作模式、速度限制、角度限制、电压限制等等。

CDS5500采用总线式通讯,您可以串联使用。

使用R/C舵机时我们一直很苦恼,如果我们设计的构型有20个舵机,我们需要接20根线都接到控制器,整个机器人会被长短不一、颜色各异的线所包围缠绕。

CDS5500让我们摆脱了这种窘境,我们可以将6足爬虫每条腿上的3个CDS5500串联在一起,再连到控制器上。

我们可以将机械手的六个关节串联成一串,最后一根线接到控制器上,整个走线非常简单、清晰,可靠性也高很多。

需要注意的是:

每个CDS5500需要使用不同ID;

每串CDS5500的数量不能太多,最好是6个以下。

正常工作下单个CDS5500的电流可能达到500mA~1A,堵转电流可达到2.5A,单组6个CDS5500的工作电流可能达到3-8A。

这样的电流会让舵机线发热,并产生比较大的电压降,最后一个CDS5500可能因为沿途舵机线的分压而导致工作电压过低,CDS5500在电压过低时会出现复位、数据通讯不正常等等状况。

图2.36CDS5500机器人舵机的串联使用

3CDS5500的自我保护

CDS5500还有其它的功能,诸如角度限制、扭矩限制等。

在您搭建机器人过程中,这些功能很是重要,某些时候您需要根据构型进行重新配置。

在使用传统R/C舵机时,我们经常遇见舵机长时间卡死,导致过热烧毁的现象,这是舵机自我保护功能不完善的一种表现。

在实际使用过程中,每一个舵机的使用条件都是不一样的,有些舵机的使用环境非常良好,有些则是工作条件恶劣。

比如机械手根部关节(图2.36的

关节),负载远远高于机械手爪(图2.36的

关节)。

CDS5500会实时检测工作电流、负载、温度,借此判断各种工作状态。

当出现过载、过热、过压、指令错误等就会发出报警信息,甚至直接卸载以保护舵机。

如下表所示,CDS5500定义了7种错误、危险的工作状态,您可定义CDS5500对这7中工作状态的应对措施,比如报警、指示灯闪亮、卸载等。

注意:

上文提到的“卸载”这个概念,您可以将其理解为“切断扭矩输出”。

CDS5500卸载进入保护模式,意思是CDS5500由于出现错误工作状态,进入保护模式,切断舵机的扭矩输出,舵机处于没有力量的状态。

卸载这个概念在接下去的章节里还会重复出现。

表2.6CDS5500保护状态说明

名称

详细说明

---

指令错误

如果收到一个未定义的指令或收到ACTION前未收到REGWRITE指令

过载

位置模式运行时负载大于最大输出扭矩

校验和错

指令校验和错误

指令超范围

指令超过指定范围

过热

温度超过指定范围

角度超范围

角度超过设定范围

过压欠压

电压超过指定范围

您可以对以上的保护措施进行参数调节,以达到适合使用条件又能保护CDS5500的目的。

主要有以下四个方面:

●角度限制

CDS5500在舵机模式下,有效角度控制范围是0-300°

,对应控制量为0-1023。

在某些运用场合,您可能需要限制舵机的转角,比如舵机转过200°

之后可能出现卡死,您需要将角度限制设置为0-682(控制量682对应角度200°

),当您的控制指令在0-682之间,舵机能够按照您的指令运动;

您的指令如果超过682,舵机将保持到682位置,不会往更高角度运转。

●电压限制

您可以设置CDS5500的工作电压范围,由于硬件设计的限制,CDS5500的工作电压是6.5V-10.5V,低于6.5VCDS5500将不能正常工作,高于10.5V会烧毁CDS5500。

您设定好电压限制之后,当CDS5500上的加载电压高于或低于此范围舵机将会置位错误标志位,软件的“电压超范围”指示灯会点亮。

●温度限制

CDS5500能够检测自身工作温度,温度过高可能会烧毁舵机。

您可以设置正常工作温度范围,当CDS5500检测到温度过高后,舵机将会强制卸载停止工作。

●转矩限制

“转矩限制”限制了CDS5500的最大工作电流,起到限制CDS5500的最大输出扭矩的作用。

在机器人手掌关节或需要长时间堵转的场合常常用到这个功能,默认为最大值1023,即为最大扭矩输出。

通过限制扭矩大小,您可以让机械手爪能够抓起草莓,而又不会将草莓捏碎。

4CDS5500的调试设置软件

CDS5500的基础参数设置、保护参数调节、性能测试等都可以通过RobotSevoTerminal软件来实现。

图2.37RobotSevoTerminal

步骤4:

ID号的查询/修改及电机模式设置

取出多功能调试器,电源,安装好。

查询串口号

填入串口号

查询ID

修改ID

修改电机舵机模式

 

舵机/多功能调试器/电源接线图

将四个轮子的ID设置为左前1,右前2,左后3,右后4

3.7机械手

机械手组件是创意之星专为安装机械手设计的,

它主要包括如下六件:

它与舵机一起使用组成一个完整的机械手。

其与舵机安装好后的效果图

它可以张开到mm,可以夹持直径mm,重量g的物品

步骤5:

机械手安装

将机械手的三个舵机ID设置为机械手端5,第一个关节6,第二个关节7

把安装好的机械手装在另外一个底板上。

三自由度机械手图片

步骤6:

安装其它零部件

安装声强传感器,控制器,和LED灯到上底板上,如图所示。

最后把上下两个底板安装到一起。

最终完成的搬运车图片

步骤7:

接线

红外

声强

LED灯

电机

舵机

多功能调试器

电源

3.8舵机的两种模式

我们刚才在搭建机器人的时候,轮子用的是舵机,机械手用的也是舵机,那它们之间有什么区别,应该如何使用?

其实,我们所使用的舵机有两种模式,即电机模式和舵机模式,也就是说一个舵机即可以当电机使用,进行连续旋转,也可以当舵机使用,在300度的范围内转动。

想如何使用舵机,就得在“工程设置”时的“舵机设置”中进行模式设置。

如图。

这个窗口会在新建文档时出现,也可在建完文档后点击设置/工程设置来进行。

步骤8:

新建工程及参数设置

新建工程,进入舵机设置界面,在“当前构型的舵机个数”中填入7。

在“当前构型的舵机列表”中,将前四个“mode”设置为“电机模式”。

单击下一步进入AD设置,这一步不作设置,单击下一步进入IO设置界面。

IO设置

单击完成进入主界面。

步骤9:

增加while循环控件

拖入一个while控件,放在start和end之间,组成一个死循环,这样可以使程序永远处于控制之中。

3.9条件判断if语句和break语句

If语句位于程序模块中,它总是与ENDIF语句成对出现,如图

在if语句图标上有两个向下的前头,也就是说有个走向,左边黄色箭头表示判断为真时的分支,右边蓝色前头表示判断为假时程序的走向。

步骤10:

增加启动开关

拖入一个while控件,两个数字输入控件,一个if控件,一个break控件,一个variable控件,组成一个开关。

该开关与声强传感器相对应,可以实现拍手启动机器人。

最后连线的效果图如图所示

各图标的属性设置如下:

Variable:

变量,int,io11.

Digitalinput:

通道11,io11.

While:

1

If():

io11==0

生成的开关程序代码如下:

#include"

background.h"

intmain(intargc,char*argv[])

{

intio11=0;

//定义函数

MFInit();

MFSetPortDirect(0x000007FF);

io11=MFGetDigiInput(11);

//读取io11口的值

while

(1)

{

if(io11==0)//判断是否有声音

break;

//有声音跳出循环,执行后面的程序,相当于一个开关

}

//没有声音,继续读取io11口的值

//跳出开关之后的程序

}

3.10舵机控件—servo(N)

1电机模式

功能模块中的第一个控件就是舵机控件,把它拖入主界面后双击它可以对其进行属性设置,其意义与其它控件相似。

1注释框的使用方法与其它控件相同。

2属性框中,其四个标签的意义如下:

意义

取值范围

舵机模式

电机模式

ServoID

0-30

Angle

0-1023

不可用

Speed

-1023-1023

Mode

电机模式/舵机模式

属性框中还有

设置全部:

属于一种快捷设置方式。

当我们需要把所有的舵机或电机数值设置为同一个值时,可以更改位置或速度的值,然后点击设置全部,可以把所有ID的舵机或电机相应的值同时设置为同一个值,默认值为512.。

执行动作:

调试时使用,目前是灰色的不可用。

3选定舵机操作

在属性框中,我们可以对舵机的角度值和速度值直接进行修改。

也可以通过本框单独进行操作。

当我们在属性框中选中某个舵机时,其ID号会出现在标签上,角度和速度的拖拉条同时也显示目前的值,我们可以拖动拖拉条来设置其值。

当在电机模式角度拖拉条不可用。

中位:

角度拖拉条后面有中位按钮,其作用是让舵机直接复中位,512.

停止:

直接让舵机的速度为0.

调试和卸载在调试状态下可用。

4舵机位置,在舵机模式时使用。

2小车的运动

安装好硬件后,我们就得让小车运动,那么如何让小车前进和转弯呢?

首先我们得了解电机的转向问题。

把舵机拿在手上,输出轴面向我们,如图,当我们给电机一个正值时,其转向是逆时针的。

当为0时,停止转动,当值为负值时,转向为顺时针,并且值其绝对值越大,其转速越快。

其取值范围是-1023—1023.当取值为1023时,其每分钟的转速约为转/分钟。

舵机转向图片

步骤11:

小车前进

从上面的分析可知,左边的轮子为正值时向前转,右边的轮子为负值时,向前转。

拖入一个舵机控件,设置属性如下,1,3轮为左前和左后,设置其值为512,2,4右前和右后,设置其值为-512.

拖入一个delay控件,延时设置为5000.

步骤12:

小车左转和前进

步骤13:

小车停止

3舵机模式

步骤14:

增加开关,等待夹持物的到来

步骤15:

张开机械手

3.11舵机调试

3.12再谈delay

步骤16:

后退5秒

步骤17:

左转,前进,回到原处

松开机械手恢复原状

步骤18:

编译/下载

3.13编辑代码

使用流程图进行编辑是northstar软件的优点,如果有人习惯于使用手写编辑代码,不习惯于使用流程图,或者觉得流程图不灵活,那么就可以在在流程图编辑过程中,或生成代码后,从Tools菜单或者工具栏点击EditCode,软件就会切换到代码编辑模式,如图2.65所示。

此时可在前面生成流程图生成的代码基础上进行编辑,或手动输入新代码,然后编译,下载,即可运行程序。

可以通过File菜单下的SaveCode将代码窗口的代码保存成.c或者.cpp文件,或者通过LoadCode来加载代码文件到代码窗口。

但要注意,如果切换到代码窗口进行了修改,就不要再切换回流程图窗口了,因为如果再切换回去,代码窗口的内容就会被流程图所生成的代码重新覆盖!

步骤19:

编辑代码

点击代码命令,进入代码窗口,

3.14程序调试

调试

把机器人放

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1