Cobra Flex

来自Waveshare Wiki
跳转至: 导航搜索
Cobra Flex
{{{name2}}}
{{{name3}}}
功能简介
特性 Cobra Flex 四轮四驱机器人底盘
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 UART LIN 总线 TTL/RS485

产品简介

Cobra Flex 是一款通用模块化线控底盘,具备强悍的越野通过能力和抗震性能,开源全部代码,方便用户用于二次开发,需要扩展多种上位机 (树莓派、Jetson Orin Nano 等),并可通过 USB 或串口与底盘通信。四轮由内置 FOC 控制电路的总线轮毂电机驱动,动力强劲,转速平稳。内部安装了由六颗 18650 锂电池 (3s2p) 组成的电池组,为机器人持续供电的同时支持边充电边放电。内置多功能机器人驱动板,采用强弱电分离设计,可扩展总线舵机,驱动板基于 ESP32,板载 Wi-Fi (仅用于短距离调试)和蓝牙。采用 CNC 工艺的紧凑型四轮独立悬挂,使其轻松满足重载、避震和越野等需求。产品配有两条 1020 欧标型材扩展导轨,为二次开发提供了更多的可行性。


产品参数

Cobra Flex 相关参数
物理参数 尺寸(长*宽*高) 235*173*101mm 性能参数 驱动方式 差速驱动
自重 2375±5g 悬挂 四轮独立悬挂
最大载重 12kg 最大运行速度 0.53m/s(受电压影响)
轴距 154mm 最小转弯半径 0m(原地自旋)
轮距 228mm 最大爬坡角度 30°
离地间隙 34.24mm 电机空载速度 180rpm(受电压影响)
驱动轮直径 74.5mm 工作温度 0~40℃
电气参数 供电电压 9~12.6V 电机参数 工作电压 9~28V DC
电池规格 5000mAh 18650 锂电池 ×6 额定电流 0.24±0.07A
续航时间 10h 额定转速 100rpm
充电时间 3h 额定转矩 0.15Nm/V


产品特性

  • 独立悬挂 · 高强避震:采用 CNC 工艺打造的四轮独立悬挂系统,结构紧凑,避震性能出色,轻松应对崎岖地形。
  • 总线轮毂电机:采用内置 FOC 控制电路的总线轮毂电机,动力强劲,运行平稳。
  • 高效电源系统:内置 3S2P 锂电池组,支持边充边放,保证续航。
  • 多功能驱动板:主控模块基于 ESP32,内置 Wi-Fi (仅用于短距离调试)和蓝牙,支持扩展总线舵机、传感器等外设。
  • 强弱电分离:驱动板采用强弱电分离设计,有效提升系统稳定性与电气安全性。
  • 模块化设计:Cobra Flex 整体采用模块化结构,适配多种上位机平台(如树莓派、Jetson Orin Nano 等),支持 USB 与串口通信,方便用户进行二次开发。
  • 开源代码:下位机全部代码开源并提供丰富的开发文档和教程。
  • 可扩展性:结构上配备双 1020 欧标型材导轨,扩展空间灵活,可轻松搭载相机、雷达、机械臂等模块。


产品介绍

底盘结构说明

以下是 Cobra Flex 各个部位以及常用接口的标注:

CobraFlex 外观与结构说明.jpg

产品组装


使用前注意事项

使用前请务必了解以下内容:

  1. 产品出厂内置有 3S2P 18650 锂电池组,严禁使用不匹配的充电器,请使用我们配套的 12.6V 2A 充电器,避免损坏电池或起火。
  2. 产品支持边充边放电,但不建议在高负载任务中长时间边充边用,以保护电池寿命。
  3. 勿让电池长时间处于过充或过放状态,请定期检查电压并维护电池。
  4. 本产品防护等级仅为 IP32,避免在雨天、泥水、雪地或高湿环境下运行。
  5. 长时间高温(>40℃)或低温(<0℃)会影响电池和电机性能,请合理使用。
  6. 小车提供了DC5521母头 转 DC5525公头+XH2.54母头的连接线方便从电池组引出给jetson orin nano进行供电,这个电源是电池组直接输出的,不能直接给树莓派供电,树莓派需要额外添加电源或者考虑降压。

产品固件更新

我们提供 Cobra Flex的 ESP32 下载工具,使用这款工具,用户可以快速给产品更新固件或还原至出厂程序。

1. 首先,使用 USB 线连接机器人和你的电脑。(此步骤需要拆开机器人才能完成)。

2. 下载 Cobra Flex的 ESP32 下载工具:Cobra Flex的 ESP32 下载工具,下载后解压缩,双击打开“flash_download_tool_3.9.5.exe”程序。打开后,会弹出两个窗口,我们需要操作的是下载工具的 UI 界面,而另一个窗口作为终端来显示下载工具的工作状态。

3. 在“DOWNLOAD TOOL MODE”这个界面,Chip Type 选择为 ESP32S3,WorkMode 选择为 Factory,使用 Factory,调用二进制文件时才会使用相对路径,就不需要用户手动输入二进制文件路径,选择好后点击OK。

Flex1.png

4. 在这个软件界面中,保持“LockSettings”的勾选,右边代表的是可以同时给 8 个 UGV02 上传程序。点击“COM”,选择新出现的 COM(我这里新出现的 COM 为 COM3);BAUD 是用于设置下载速度,越高速度越快,ESP32 最高可以使用 921600。

Flex2.png

5. 选择好后,点击 START 开始上传程序,上传完成后,“IDLE 等待”会变成“FINISH 完成”,完成后可以断开驱动板与电脑的 USB 连接,打开机器人产品的开关,通电后即可控制机器人。

Flex3.png

产品使用与开发

基础调试

首次使用需要先使用配置的 12.6V 2A 充电器插入至机器人的电源接口中,打开电源开关后机器人会进行初始化,OLED 屏幕会显示初始化的一系列内容。

  1. 机器人开机后 OLED 屏幕上显示内容含义如下:
    • 第一行内容表示此时 WiFi 处于 AP 模式下,机器人创建了一个热点,WiFi 热点名为 UGV;
    • 第二行表示 STA 模式处于关闭状态,当 WiFi 处于 STA 模式时,路由器会给机器人分配一个 IP 地址并显示出来;
    • 第三行的内容为本设备的 MAC 地址,该地址是唯一的,可用于 ESP-NOW 通信。
    • 第四行 V 表示机器人产品的电源电压。

  2. 开机后使用手机或电脑连接机器人的 WiFi:UGV,密码是 12345678,连接 WiFi 后打开谷歌浏览器,在网址栏中输入 192.168.4.1 打开 Web 端使用界面。接下来你就可以使用 Web 端的按键来对机器人进行基础控制,也可以在 Web 控制界面上向机器人发送 JSON 指令。
注意:受产品外壳金属材质的影响,驱动板 Wi-Fi 信号会减弱,因此基础调试部分的 Wi-Fi 仅适用于短距离调试。


JSON 通信协议详解

在与机器人底盘通信时,我们使用一种特定的控制指令——即 JSON 指令,来告诉机器人应该执行什么动作。在这个部分中,我们主要介绍如何发送 JSON 指令进行机器人控制及机器人 JSON 指令的使用说明。

什么是 JSON 指令

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于在不同系统之间传输和存储数据。JSON 最初起源于 JavaScript,但已成为一种独立于编程语言的数据格式,因此可以在各种编程语言中使用和解析。

JSON 指令就像是一张标准化的“点餐单”,它可以告诉机器人移动的速度以及转动的方向等。

JSON 指令的基本格式

JSON 指令的基本格式是:键:值

  • 键必须是字符串,用双引号包围;
  • 值可以是多种类型:字符串、数字、对象、数组、布尔值或 null,其中,字符串必须用双引号包围,其它的不需要引号;

以下是驱动机器人移动的指令:

{"T":1,"L":100,"R":100}

其中双引号中的 T、L、R 都是键,冒号后的是值。对于这条指令的解释:

  • "T":1 代表该指令用来驱动机器人移动(SPEED_INPUT)。固定值,不可更改,是程序识别该指令用途的数值。
    • T 的值在产品下位机程序的头文件 json_cmd.h 中定义。
    • 注意:不同的控制指令会使用不同的 T 值。
  • "L":为左侧轮速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
  • "R":为右侧轮速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm,当 L 和 R 的值均为 0 时,机器人即停止。

这条指令是告诉机器人:“请以 10rpm 的速度前进。”

以下是单独驱动电机的指令:

{"T":11,"M1":1000,"M2":1000,"M3":1000,"M4":1000}
  • "M1":为左前轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
  • "M2":为右前轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
  • "M3":为右后轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
  • "M4":为左后轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。

以下是获取小车反馈的指令:

{"T":130}

一问一答机制反馈的指令如下

{"T":1001,"M1":0,"M2":0,"M3":0,"M4":0,"odl":0,"odr":0,"v":1173}
  • "M1":为左前轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
  • "M2":为右前轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
  • "M3":为右后轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
  • "M4":为左后轮的速度。速度取值范围为 0~1800,正值前进,负值后退。单位为 0.1rpm。
  • "odl":为左侧轮的里程。单位是cm。
  • "odr":为右侧轮的里程。单位是cm。
  • "v":为电压。

以下是打开小车的连续反馈指令:

{"T":131,"cmd":1}
  • "cmd":0为关闭,1为打开。

以下是打开小车的连续反馈指令:

{"T":132,"IO1":255,"IO2":255}
  • "IO1":前方led灯的亮暗程度,取值范围为 0~255,255为最亮。
  • "IO2":前方led灯的亮暗程度,取值范围为 0~255,255为最亮。
JSON 指令中的每个符号都很重要,少了逗号或者括号都会导致指令无法执行。建议您直接复制粘贴对应功能的指令,更改相应的值即可。

为什么使用 JSON 指令通信?

以下是使用 JSON 格式的指令来控制机器人的优点:

1.可读性好

JSON 是一种轻量级的文本数据格式,易于人类阅读和编写。它使用键-值对的形式,这使得指令易于理解和调试,特别是在开发和测试阶段。

2.易于解析

许多编程语言都提供了JSON解析器,使得解析JSON指令变得非常容易。这使得将指令转化为可执行的操作变得简单。

3.跨平台兼容性

JSON 是一种通用格式,几乎可以在任何编程语言和平台上使用。这意味着您可以使用不同的编程语言来发送和接收 JSON 指令。

4.结构化数据

JSON 支持嵌套的数据结构,可以包含对象和数组。这使得您可以以清晰的方式组织指令,包括参数、选项和子命令等。

5.扩展性

您可以轻松地添加新的字段和参数到JSON指令中,以支持更多的功能和选项,而不必改变指令的整体结构。

6.易于集成

JSON 是许多 API 和 Web 服务的标准输入和输出格式。这使得机器人可以与其他系统和服务进行无缝继承,例如通过 REST API 进行通信。

7.标准化

JSON 是一个标准化的数据格式,受到广泛的支持和采用。这意味着您可以借助各种库和工具来处理和操作 JSON 数据。

8.支持多语言

由于 JSON 可以在多种编程语言中使用,因此可以实现多语言编写的机器人控制系统,而无需重新编写指令解析器。

总的来说,JSON 格式的指令提供了一种简单、灵活、可读性好且易于解析的方式来控制机器人,使得机器人控制系统更加强大和可维护。


产品资料

Cobra Flex 图纸

Cobra Flex 3D 模型

Cobra Flex 2D 尺寸图

软件

软件

下位机源码


技术支持

联系人:方工
EMAIL:[email protected]
QQ:2355742825
微信:扫下方二维码添加
QRCode YijunFang.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证