小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
楼主: liuviking

WIFI机器人网·机器人创意工作室上位机与下位机通信协议(V1.1版)

[复制链接]
发表于 2017-7-20 15:36:47 | 显示全部楼层
有个屌丝版的小车,写命令控制时发现有点问题:
不支持下面这些命令,发送了小车没有任何反应?
左前转        FF000500FF
左后转        FF000600FF
右前转        FF000700FF
右后转        FF000800FF

想调整前进后退的速度也没有反应?
左侧速度档位       
右侧速度档位

另外还有一个问题是,发现现在小车的左转或右转时的角度很大,能不能自己控制这个转动的角度呢?
请版主帮帮忙!
谢谢!
@liuviking
       


回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-20 18:07:40 | 显示全部楼层
saledfishzl 发表于 2017-7-20 15:36
有个屌丝版的小车,写命令控制时发现有点问题:
不支持下面这些命令,发送了小车没有任何反应?
左前转        F ...

通信协议请看一下小车的源码,就知道启用了命令。
如果是树莓派版本的,需要更新一下系统,找小R客服索要即可。
转动角度和速度有关系,如果要慢一些,那就把下位机代码那边改改,在转弯命令执行之前先把速度降下来,转完再恢复原有速度。
回复 支持 反对

使用道具 举报

发表于 2017-7-27 10:11:26 | 显示全部楼层
liuviking 发表于 2017-7-20 18:07
通信协议请看一下小车的源码,就知道启用了命令。
如果是树莓派版本的,需要更新一下系统,找小R客服索 ...

发送速度修改命令:

左侧速度档位       
FF
02
01
左侧档位值
FF
档位值范围:0-10
右侧速度档位       
FF
02
02
右侧档位值
FF

在前进或后退之前,发送速度修改命令,感觉速度上没有任何区别啊?这是怎么回事?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-27 12:04:56 | 显示全部楼层
saledfishzl 发表于 2017-7-27 10:11
发送速度修改命令:

左侧速度档位       

需要更新一下驱动代码,请联络wifi-robots.taobao.com里面的客服,他们会发给你。
回复 支持 反对

使用道具 举报

发表于 2017-7-27 15:16:27 | 显示全部楼层
liuviking 发表于 2017-7-27 12:04
需要更新一下驱动代码,请联络wifi-robots.taobao.com里面的客服,他们会发给你。

是只需要更新wifirobots.py文件,还是需要重新刷驱动代码?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-27 17:40:29 | 显示全部楼层
saledfishzl 发表于 2017-7-27 15:16
是只需要更新wifirobots.py文件,还是需要重新刷驱动代码?

替换这个文件即可
回复 支持 反对

使用道具 举报

发表于 2017-7-31 10:50:24 | 显示全部楼层
liuviking 发表于 2017-7-27 17:40
替换这个文件即可

谢谢。
另外关于超声波避障模式,还有点疑惑。
如果要获取雷达数据,是否需要发送切换进超声波避障模式的命令????

超声波避障模式        FF        13        05        00        FF

看了下wifirobots.py的源码里,似乎是需要这个逻辑的:
####################################################
##函数名称 Cruising_Mod()
##函数功能 :模式切换函数
##入口参数 :无
##出口参数 :无
####################################################
def        Cruising_Mod(func):
        print 'into Cruising_Mod-01'
        global Pre_Cruising_Flag
        print 'Pre_Cruising_Flag %d '%Pre_Cruising_Flag
       
        global Cruising_Flag
        print 'Cruising_Flag %d '%Cruising_Flag
        while True:
                if (Pre_Cruising_Flag != Cruising_Flag):                       
                        if (Pre_Cruising_Flag != 0):
                                Motor_Stop()
                        Pre_Cruising_Flag = Cruising_Flag
                        print 'Pre_Cruising_Flag = Cruising_Flag == 0'
                if(Cruising_Flag == 1):                #进入红外跟随模式
                        Follow()
                elif (Cruising_Flag == 2):        #进入红外巡线模式
                        TrackLine()
                elif (Cruising_Flag == 3):        #进入红外避障模式
                        Avoiding()
                elif (Cruising_Flag == 4):        #进入超声波壁障模式
                        AvoidByRadar(15)
                elif (Cruising_Flag == 5):        #进入超声波壁障模式
                        Send_Distance()
                else:
                        time.sleep(0.001)
                time.sleep(0.001)


####################################################
##函数名称 Send_Distance()
##函数功能 :超声波距离PC端显示
##入口参数 :无
##出口参数 :无
####################################################
def        Send_Distance():
        dis_send = int(Get_Distence())
        #dis_send = str("%.2f"%dis_send)
        if dis_send < 255:
                print 'Distance: %d cm' %dis_send
                tcpCliSock.send("\xFF")
                time.sleep(0.005)
                tcpCliSock.send("\x03")
                time.sleep(0.005)
                tcpCliSock.send("\x00")
                time.sleep(0.005)
                tcpCliSock.send(chr(dis_send))
                time.sleep(0.005)
                tcpCliSock.send("\xFF")
                time.sleep(0.1)

但是问题是,上行协议里关于雷达数据的说明是:
雷达数据        FF        03        距离值        角度值        FF        数据位1为距离值,数据位2作为角度值。                       
                                                                       
而源码里的 Send_Distance()方法里,数据位1一直是0,数据位2才是距离值,没有角度值???
请问我的理解是否正确?

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-2 16:31:32 | 显示全部楼层
saledfishzl 发表于 2017-7-31 10:50
谢谢。
另外关于超声波避障模式,还有点疑惑。
如果要获取雷达数据,是否需要发送切换进超声波避障模式 ...

因为目前没有合适的传感器采集角度并上传,所以角度值预设为0,如果你可以往这一位发送角度也是可以在上位机显示的。
回复 支持 反对

使用道具 举报

发表于 2017-9-7 17:43:19 | 显示全部楼层
其实我还弄懂怎么判断的,是接收一个字符就判断了么,
回复 支持 反对

使用道具 举报

发表于 2019-2-28 11:06:12 | 显示全部楼层
老师好。下行数据协议格式中,类型位、命令位、数据位是如何定义的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-4-20 13:57 , Processed in 1.066888 second(s), 15 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表