- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
移动机器人控制器二次开发指令集
移动机器人控制器二次开发指令集
前言
本文适用于熟悉计算机高级语言编程或单片机编程的专业人士,使用二次开发指令集调用控制器的功能,还必须具备232串行通信或TCP网络编程和调试的经验,以及熟悉ASCII码表的使用。
要使用自己电脑软件或单片机对控制器进行二次开发,是利用控制器的开放的二次开发指令集,通过串口向控制器发送指定格式的文本命令来调用控制器功能的。
电脑系统与控制器的通信仍可使用控制器自带的USB转串口线;单片机开发板与控制器的连线需要连接四根杜邦线:单片机的电源正极和地分别接控制器的VCC(5V)和GND,单片机的串行口RX接控制器的TXD,单片机的TX接控制器的RXD,串行通信使用9600波特率。
无论是用户使用自行开发的电脑软件还是单片机系统作为控制器的上位机,其编程方式都与普通的232串行通信完全一致,都是向控制器发送符合指令格式的文本字符串,并可接收控制器反馈的文本字符串(如果用户需要这些反馈码对执行结果加以判断的话)。用户也可以使用常用的串口调试助手等串行通信软件来测试二次开发指令的具体功能。
为描述简便,以下将上位机发送给控制器执行的文本字符串称为指令,而将控制器反馈给上位机的文本字符串称为反馈码。
指令和反馈码格式的常规约定:
指令和反馈码都以字符$开头表示指令起始点,都以回车换行符\r\n作为结束符(注意:回车换行符是不可见的控制字符,在大多数单片机C语言里,不支持\r\n的表达,而应明确地用单字节的ASCII码0x0d代替\r,用0x0a代替\n)。
指令和反馈码紧跟$是具体的指令类型字串。
指令和反馈码都分为不带数据表的简单指令(或反馈码)和带数据表的复杂指令(或反馈码)。简单指令和反馈码在指令类型字串后紧接着就是结束符;复杂指令和反馈码在指令类型字串后是数据表,然后才是结束符。
数据表一般是以一个或多个#起头的字段序列,#后紧跟的是主体序号(例如舵机号、AD接口号等),序号之后是该主体的数据类型,数据类型之后是具体数据。
有的指令无反馈码,有的只有成功的反馈码,有的既有成功的反馈码也有失败的反馈码,用户可以针对指令的反馈码特点,做这样处理:凡是没有反馈码的指令,单向发指令不检验反馈码;凡是收到成功的反馈码则说明指令被成功执行,否则说明指令未被控制器正确接收或被控制器拒绝(接收不正确可能是因物理连接、通信参数的错误设置等原因造成,被拒绝可能是因控制器正在执行上一条指令,在上一条指令执行完毕或被中止前不会响应新指令,用户应一一排查之)。
1 状态采集类指令
1.1 测试通信口连接
指令:$OPEN\r\n
反馈码:$OPEN\r\n
1.2 同步
指令:$SAME\r\n
反馈码:$SAME#1P[pw1] #2P[pw2] ……#16P[pw16]\r\n
例句:$SAME#1P1230#2P2205…….#16P1500\r\n
说明:
[pw1]、[pw2]……[pw16]分别是1#、2#……16#舵机的当前实际脉宽字符串
1.3 读取动作组数
指令:$COUNT\r\n
反馈码:$COUNT [nGrpCnt]\r\n
例句:$COUNT 4\r\n
说明:
[nGrpCnt]是当前控制器中存在的动作组数字符串
1.4 AD转换指令
指令:$ADC#[i]\r\n
例句:$ADC#2\r\n
成功反馈码:$ADC [value]\r\n”
例句:$ADC 233\r\n
失败反馈码:$STOP\r\n
说明:
[i]是要采集的AD端口号,取值区间为字符串1~8
[value]是采集到的AD数量级,取值区间为字符串0~1023,最大值字符串1023代表5V
若采集指令指定的AD端口号是有效的(即该端口已被设置为AD口),则返回成功反馈码;若该端口是舵机控制口,则返回失败反馈码。
2 电机即时拖动类指令
2.1 控制器启动和舵机复位
指令:$RESET\r\n
反馈码:$RESET\r\n
说明:
控制器只有在启动后才能接受其他电机控制指令。
控制器接收到该指令时,若控制器已启动则使所有舵机立即回归启动脉宽,未启动则启动电机控制并使所有舵机立即回归启动脉宽。
2.2 单电机即时拖动
指令:$MOP#[i]P[pwi]\r\n
例句1:$MOP#1P1500\r\n
例句2:$MOP#17P100\r\n
反馈码:无
说明:
#[i]表示第几号电机,[i]是电机号字串,取值区间1~18;[i]取值1~16时表示是舵机,取值17表示车体直行,取值18表示车体转弯。
当[i]取值1~16 时,P表示舵机脉宽,[pwi]取值区间为500~2500。
当[i]取值17时,P表示直行转速和方向,[pwi]取值区间-100~100,无符号表示向前,有负号表示是向后。
当[i]取值18时,P表示转向转速和直行方
原创力文档


文档评论(0)