导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    用R128复刻自平衡赛车机器人,还实现了三种不同的操控方式

    A Series
    1
    1
    889
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • q1215200171
      budbool LV 9 最后由 q1215200171 编辑

      经常翻车的朋友们都知道,能在翻车后快速摆正车身的车才是好车。

      就像动画《四驱兄弟》中展现的那样,在比赛中需要跟着赛车一起跑圈,而且赛车如果被撞翻还需要重新用手扶正,所浪费的时间非常影响比赛结果。

      EE2D3553-365A-4409-903B-F6097D543112.png

      如果小豪和小烈可以拥有一款能通过发挥R128的WiFi&蓝牙特性的平衡小车,从而能通过WiFi或蓝牙连接的方式进行控制,既可以自平衡和转向,又可以远程操控,那冠军岂不是手到擒来。

      ezgif.com-optimize (5).gif

      ezgif.com-optimize (4).gif

      它,就是可以自平衡的赛车机器人——B_ROBOT_100ASK

      项目简介

      本项目基于jjrobots的开源项目B-ROBOT EVO2进行复刻,与原开源项目不一样的地方是,作者将原本适配的的Arduino控制板移植为DShanMCU-R128s2-DevKit开发板,与此同时还添加了一些功能,比如自平衡功能、WiFi&蓝牙控制、App控制以及语音控制功能,让平衡小车的操控乐趣更上一层楼。

      D8A56F71-0A76-4d94-9B9D-212BB2DD2048.png

      ezgif.com-optimize (6).gif

      硬件设计

      本项目中的自平衡赛车机器人的硬件设计结构非常简单,硬件部分主要由R128开发板和几个驱动模块组成。

      D39C081F-C757-4f0c-8050-13E12ACBC4C3.png

      • 供电模块
        自平衡机器人采用锂电池供电的方式,并利用mini360航模电池降压模块来将较进行电压的转化工作,以满足小车设备对电压方面的需求

      • 电机驱动模块

      自平衡机器人选用两个NEMA17步进电机,并选用DDRV8825步进电机驱动模块来负责与电机之间的控制信息传输。

      DDRV8825步进电机驱动模块的体积小,驱动能力强,它只需要一个PWM波就能控制步进电机,同时基本上三个引脚就能完全控制步进电机。

      通过该模块可以使小车快速反应R128下达的运动信息,驱动小车本身的轮子进行运动。

      • 平衡模块

      MPU6050是一种6轴运动跟踪传感器,它包含3轴陀螺仪、3轴加速度计、运动处理器和温度传感器。它可以通过I2C总线接口与微控制器进行通信,并且可以通过辅助I2C总线与其他传感器设备通信。

      MPU6050的主要作用是帮助机器人实现姿态感知和运动控制,提高机器人的自主性和灵活性。

      遥控手柄UI控制(LVGL)

      作者本人还利用R128开发板来移植了一个酷炫的LVGL遥控手柄UI,通过手柄上的菜单栏UI可以选择不同的机器人基础参数设置和进行机器人操控。

      ezgif.com-optimize (7).gif

      在自平衡机器人启动后,可以通过面包板上的两个手柄去遥控机器人的前进后退和转弯,并且在屏幕上还会实时返回机器人的倾斜角度、速度、电量等状态。

      ezgif.com-optimize (8).gif

      实现APP控制

      在机器人竞速中,必须要在准确性和速度之间找到平衡。为了更好的反馈给自平衡机器人设置不同参数下的运动状态,作者针对自平衡机器人进行了控制App的适配。

      app-v2-e1538486753789.png

      App可以实时显示电池状态和机器人的倾斜角度,操作者只需要通过App中的几个可视化按钮和滑动栏来实时修改其PID,以实现对机器人速度和状态的远程控制。

      自平衡机器人的一般行为由一组参数定义:

      
      // NORMAL MODE PARAMETERS  
       #define MAX_THROTTLE 550  MAXIMUM VELOCITY
       #define MAX_STEERING 140 MAXIMUM SPINNING VELOCITY
       #define MAX_TARGET_ANGLE 14 MAXIMUM ANGLE REACHED WHEN MOVING
      
      // PRO MODE = MORE AGGRESSIVE (MAXIMUM SETTINGS)
       #define MAX_THROTTLE_PRO 860  MAXIMUM VELOCITY. PRO MODE
       #define MAX_STEERING_PRO 280 MAXIMUM SPINNING VELOCITY. PRO MODE
       #define MAX_TARGET_ANGLE_PRO 32  MAXIMUM ANGLE REACHED WHEN MOVING. PRO MODE
      
       #define KP 0.32 // 0.14
       #define KD 0.050 // 0.028
       #define KP_THROTTLE 0.075 //0.075
       #define KI_THROTTLE 0.1 // 0.1
       #define KP_POSITION 0.06 //0.055
       #define KD_POSITION 0.45 //0.5
       //#define KI_POSITION 0.02
      

      比如:

      • 高MAX_THROTTLE_PRO值会使机器人更快,但如果不能顺利恢复垂直位置,稳定性会降低。

      • 高MAX_STEERING_PRO值会让机器人旋转得更快,但转弯时更难精确控制。

      • 高MAX_TARGET_ANGLE_PRO值将使机器人减小其相对于地板的角度,但这会使恢复和转弯变得更加困难。

      ezgif.com-optimize (4).gif

      ezgif.com-optimize (3).gif

      UDP 网络通信控制

      这个功能的实现比较简单,利用R128本身自带的WiFi&蓝牙特性,来实现两块R128开发板(机器人自身携带&手上的操控端)的UDP网络通信控制。

      ezgif.com-optimize (9).gif

      源码获取

      基于R128-S2设计的全套开发板已上线淘宝百问网韦东山老师个人店进行售卖,包含黑色的DshanMCU-R128s2-R16N16模组和全套的DshanMCU-R128s2-DEVKIT。

      • DshanMCU-R128s2-R16N16模组:39.9元
      • DshanMCU-R128s2-DEVKIT开发板:49.9元

      R128开发板购买链接:https://item.taobao.com/item.htm?spm=a21n57.1.0.0.46b0523cMfarLo&id=736154682975&ns=1&abbucket=5#detail

      “主图_01”为智能对象-1.jpg

      Gitee源码获取链接:https://gitee.com/weidongshan/100ask_r128_demos
      GitHub源码获取链接:https://github.com/100askTeam/100ask_r128_demos

      更多关于项目的详情可以前往百问网R128综合项目开发案例界面了解:https://aw-r128.100ask.net

      1 条回复 最后回复 回复 引用 分享 4
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策