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

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

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

项目简介

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

在这里插入图片描述

在这里插入图片描述

硬件设计

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

在这里插入图片描述

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

  • 电机驱动模块

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

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

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

  • 平衡模块

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

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

遥控手柄UI控制(LVGL)

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

在这里插入图片描述

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

在这里插入图片描述

实现APP控制

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

在这里插入图片描述

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值将使机器人减小其相对于地板的角度,但这会使恢复和转弯变得更加困难。

在这里插入图片描述

UDP 网络通信控制

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

在这里插入图片描述

源码获取

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flutter自定义地图Marker完美展示图片

世人都说雪景美 寒风冻脚无人疼 只道是一身正气 结论 参考Flutter集成高德地图并添加自定义Maker先实现自定义Marker。如果自定义Marker中用到了图片,那么会碰到图片没有被绘制到Marker的问题,此时需要通过precacheImage来预加载图片,从而解…

Codeforces Round 916 (Div. 3)(E:贪心 F贪心dfs G tarjan+topsort +线段树优化建图)

A&#xff1a;直接暴力统计每个字符的次数是否达标即可 #include<bits/stdc.h> using namespace std; const int N 3e510,mod998244353; #define int long long typedef long long LL; typedef pair<int, int> PII; typedef unsigned long long ULL;const long l…

智能化创作与艺术:发展、问题、未来趋势

导言 随着人工智能技术的不断进步&#xff0c;智能化创作在艺术领域逐渐崭露头角。本文将深入研究智能化创作与艺术的发展过程、遇到的问题、解决的过程&#xff0c;探讨未来的可用范围&#xff0c;并分析在各国的应用和未来的研究趋势。最后&#xff0c;探讨在哪些方面能取胜&…

一. 模块之间的依赖 ------ 详细解析官网购物应用优秀案例(鸿蒙开发)

一. 项目目录简介 ├──**common** // 公共能力层 │ ├──components │ │ ├──CommodityList.ets // 商品列表组件 │ │ ├──CounterProduct.ets // 数量加减组件 │ │ └──EmptyComponent.ets /…

java开发面试:常见集合ArrayList的源码分析,数组和List的相互转换

ArrayList 底层数据结构——数组 寻址公式 a[i] baseAddress i *dataTypeSize 即&#xff0c;数组的首地址索引乘以存储数据的类型大小。 为什么数组索引从0开始呢&#xff1f;从1开始不行吗&#xff1f; 实际上并不是不行。而是如果数组索引从1开始的话&#xff0c;整体…

AUTOSAR从入门到精通-存储配置(NvM)(三)

目录 前言 几个高频面试题目 ​autosar架构中,nvm运行在核1,那么核0的程序如何使用nvm 原理

【华为机试】2023年真题B卷(python)-猜密码

一、题目 题目描述&#xff1a; 小杨申请了一个保密柜&#xff0c;但是他忘记了密码。只记得密码都是数字&#xff0c;而且所有数字都是不重复的。 请你根据他记住的数字范围和密码的最小数字数量&#xff0c;帮他算下有哪些可能的组合&#xff0c;规则如下&#xff1a; 1、输出…

使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践

作者&#xff1a;森元 需求背景 新业务上线前&#xff0c;我们通常需要对系统的不同中间件进行压测&#xff0c;找到当前配置下中间件承受流量的上限&#xff0c;从而确定上游链路的限流规则&#xff0c;保护系统不因突发流量而崩溃。阿里云 PTS 的 JMeter 压测可以支持用户上…

【C++初阶】第一站:C++入门基础(下)

前言&#xff1a; 紧接着上两篇文章&#xff0c;c入门基础(上)&#xff1a;C入门基础(上) c入门基础(中)&#xff1a;C入门基础(中) 继续补充完c初阶入门基础的知识点&#xff0c;本章知识点包括&#xff1a; 引用和指针的区别、内联函数、auto关键字(C11)、基于范围的for循环…

使用 Layui 的 template 模块来动态加载select选项

可以使用 Layui 的 template 模块来动态加载选项&#xff0c;如下所示&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>Layui 动态模板示例</title><link rel"stylesheet" href"pat…

Android 13 - Media框架(24)- OMXNodeInstance(一)

为了了解 ACodec 是如何与 OpenMAX 组件进行 buffer 流转的&#xff0c;我们有必要先来学习 OMXNodeInstance&#xff0c;在前面的章节中&#xff0c;我们已经了解了 media.codec 进程包含的内容&#xff0c;以及 OpenMAX 框架中的一些内容。这一节我们将来学习 OMXNode 与 med…

JUC、MySQL

java后端面试题大全 1.JUC1.1 ReentrantLock(可重入独占式锁)&#xff08;难度&#xff1a;★★★ 频率&#xff1a;★★&#xff09;1.2 ReentrantLock比synchronized的优点&#xff08;难度&#xff1a;★★★ 频率&#xff1a;★★&#xff09;1.3 CAS的原理和优缺点1.4 syn…

快猫视频模板源码定制开发 苹果CMS 可打包成双端APP

苹果CMS快猫视频网站模板源码&#xff0c;可用于开发双端APP&#xff0c;后台支持自定义参数&#xff0c;包括会员升级页面、视频、演员、专题、收藏和会员系统等完整模块。还可以直接指定某个分类下的视频为免费专区&#xff0c;具备完善的卡密支付体系&#xff0c;无需人工管…

Git 中 rebase、reset、revert 有什么区别?

在Git中&#xff0c;rebase、reset和revert是三个常用的操作命令&#xff0c;它们用于处理合并分支、回退版本、撤销更改。 区别&#xff1a; 1、rebase&#xff08;变基&#xff09;&#xff1a;git rebase命令用于将一个分支的提交应用到另一个分支上&#xff0c;从而重新组…

听GPT 讲Rust源代码--src/tools(17)

File: rust/src/tools/rust-analyzer/crates/profile/src/hprof.rs 在Rust源代码中&#xff0c;rust/src/tools/rust-analyzer/crates/profile/src/hprof.rs文件是rust-analyzer中的性能分析模块&#xff0c;用于代码运行时的性能统计和分析。下面将详细介绍每个结构体的作用&a…

【操作系统】什么是进程?

文章目录 进程进程的属性进程的状态挂起 进程 进程是一个可并发执行的具有独立功能的程序关于某个数据集合的执行过程&#xff0c;也是操作系统进行资源分配和保护的基本单位。 进程的属性 结构性&#xff1a; 共享性&#xff1a;同一程序运行于不同数据集合上构成不同的进程…

Flink Table API 与 SQL 编程整理

Flink API总共分为4层这里主要整理Table API的使用 Table API是流处理和批处理通用的关系型API&#xff0c;Table API可以基于流输入或者批输入来运行而不需要进行任何修改。Table API是SQL语言的超集并专门为Apache Flink设计的&#xff0c;Table API是Scala和Java语言集成式…

一文学会 Apache Zeppelin

Zeppelin资料 Zeppelin项目信息 Zeppelin官网 http://zeppelin.apache.org/Zeppelin源码地址 https://github.com/apache/zeppelinZeppelin JIRA: https://issues.apache.org/jira/projects/ZEPPELIN/summaryZeppelin文档 Flink on Zeppelin 文档集中地 https://www.yuque.co…

176.【2023年华为OD机试真题(C卷)】整数对最小和(贪心算法(Greedy Algorithm)实现JavaPythonC++JS)

🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握! 文章目录 【2023年华为OD机试真题(C卷)】整数对最小和(遍历和条件判断实现Java&Python&C++&&JS)题目描述解题思路题解代码Python题…

【漏洞复现】奥威亚 教学视频应用服务平台任意文件上传漏洞

漏洞描述 AVA 教学视频应用服务平台是由广州市奥威亚电子科技有限公司基于当前教育视频资源建设的背景及用户需求的调研,开发出来能够适应时代发展和满足学校需求,具有实效性、多功能、特点鲜明的平台。 该平台存在任意文件上传漏洞,通过此漏洞攻击者可上传webshell木马,…