四轮麦轮平衡车四个轮子安放位置要求,以及编码器测速注意事项(强调,否则无法正常平移)——基于STM32F103ZET6

news2024/12/25 12:56:38

轮子推荐ABBA,当然BAAB也可以

如图安放:

 这两种安防位置可以实现平移效果

若要实现平移则需要先实现PID控制平衡,这里用到520编码电机,相较于370电机他的动力更足,在调节PID时能节约不少时间而且更加容易。

需要注意的是:

写速度环PID时需要传进去实际速度,实际速度需要两个编码器进行测量,这里我们四个轮子上分别带了一个编码器,也就是四个编码器。

那我们应该选择哪两个轮子呢?

必须是一个A轮一个B轮

选择这两个轮子之后,通过调整极性,让他们前进时编码器测出来的都为正数,后退时编码器测出来的都为负数。然后将这两个值传进速度环之中。在平移时给相应的速度差,才能进行平移操作。

如果选择两个A轮或两个B轮或出现的问题:

在平移时,假设两个A轮向前,两个B轮向后,这时是右平移。那么此时会出现一个问题,假设你编码器电机选择的是两个A轮,那么这两个都是正数,将两个正数传进速度环PID,速度偏差会很大,最终导致速度环的值偏大。

由下图计算可知速度环偏大。

而速度环的值是作为参数传入直立环的,那么会进一步导致直立环算出的结果偏大,输出的PWM也会偏大,假设此时输出的PWM为正值,那么A轮速度会进一步增大,因为A轮本身就是正数;而B轮速度会进一步减小,B轮本身是负数,加上一个正值,速度会变小。所以整体现象就是两个A轮在转动而B轮好像没有转动。然后看到的就是小车会往左上,左下,右上,右下平移,而导致不能正常的左右平移。

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

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

相关文章

AI应用案例:AI就是这么牛,聊天就能分析股票。

今天给大家介绍一个可能跟你切身相关的案例“大模型股票分析“!首先申明这不是教你怎么炒股的方法,而是告诉你可以通过AI协助你去分析股票。 像我是程序员出身,有数据给我,我可以写SQL语句查数据库,或者通过写代码来分…

QT上位机开发

目录 前言一、环境搭建1.1 IDE下载1.2 添加环境变量 二、Qt Creator的使用2.1 快捷键2.2 创建QT项目2.3 帮助文档使用 三、Qt信号与槽3.1 标准信号与槽的使用3.2 自定义信号与槽 四、Qt控件4.1 QMainWindow4.2 按钮4.3 容器4.4 窗口4.5 布局管理 五、SerialPort5.1 修改.Pro文件…

【Python】 Python函数返回多个值的多种方法

基本原理 在Python中,函数通常用于封装一段代码,使其可以重复调用。有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点。 代码示例 示例1:使用元组返回多个值 Python中,元组…

TYPE-C接口桌面显示器:办公与娱乐新玩法

随着科技的不断进步,传统桌面显示器已经难以满足现代人对高效办公与极致娱乐体验的追求。在这个背景下,新型的TYPE-C接口桌面显示器应运而生,以其独特的功能和设计,引领了未来办公与娱乐的新潮流。 添加图片注释,不超过…

Linux 批量网络远程PXE

一、搭建PXE远程安装服务器 1、yum -y install tftp-server xinetd #安装tftp服务 2、修改vim /etc/xinetd.d/tftpTFTP服务的配置文件 systemctl start tftp systemctl start xinetd 3、yum -y install dhcp #---安装服务 cp /usr/share/doc/dhc…

云上聚智共创未来 | 移动云的项目实战,10分钟让你获得高度可玩的个人博客网站

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 随着互联网的发展各种以前看起来离我们比较遥远的词越来越近了,比如 云服务、大数据、区块链、容器这些听起来…

免费且非常火的日程管理软件:飞项

一、简介 1、在日常繁忙的工签中,是否事情一大堆却记不住?系统自带的日历用着却是不方便,不顺手,提醒不及时?待办、打卡、记事乱七八糟的混在一起,关键时候找不到?市面上的日程管理软件那么多&a…

用go语言实现一个有界协程池

写在文章开头 本篇文章算是对go语言系列的一个收尾,通过go语言实现一个实现一个简单的有界协程池。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源项目 Java Guide 的维护…

【C语言】自定义类型:联合与枚举的简明概述

🔥引言 关于自定义类型除了我们常用的结构体,还有联合与枚举也是属于自定义类型。本篇将简单介绍联合与枚举基本概念和使用方法 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏&…

中国改革报是什么级别的报刊?在哪些领域具有较高的影响力?

中国改革报是什么级别的报刊?在哪些领域具有较高的影响力? 《中国改革报》是国家发展和改革委员会主管的全国性综合类报纸。它在经济领域和改革发展方面具有重要的影响力,是传递国家政策、反映改革动态的重要平台。该报对于推动中国的经济改…

【Java限流算法详解及实现】

Java限流算法详解及实现 在高并发场景下,限流是保护系统的重要手段。限流算法可以帮助我们在流量过大时进行合理的控制,避免系统崩溃。本文将详细介绍几种常见的限流算法及其在Java中的实现。 Java限流算法详解及实现 Java限流算法详解及实现一、令牌桶…

Android 深入系统源码探讨 Activity、Window 和 View 的关系与实践

文章目录 1、概括2、Android Window 设计2.1、Window 类2.2、PhoneWindow2.3、WindowManager2.4、ViewRootImpl2.5、DecorView 3、Android Activity 设计3.1、Activity的基本概念3.2.、Activity的生命周期3.3、Activity的内部结构 4、Android View 设计4.1、View的基本概念4.2、…

构建智慧城市公共服务系统的功能架构设计

随着城市化进程的加速,城市公共服务系统在保障居民生活品质、提升城市管理水平方面扮演着愈发重要的角色。构建智慧城市公共服务系统的功能架构设计至关重要,它不仅需要充分考虑居民需求与城市管理的实际情况,还需要整合先进的科技手段&#…

vue3快速入门(局部使用)

目录 前置知识JavaScript-导入导出 入门操作 变量渲染页面 局部使用vue的实现步骤 vue指令 v-for v-bind v-if v-show v-on v-model 生命周期 前置知识JavaScript-导入导出 正常情况在html导入js文件是全部导入,这样会导致性能上的损失 。 JS提供的…

Docker之xfs文件系统下安装报错解决方案

一、需求说明 centos系统下安装docker最新版的时候,安装成功,启动的时候报错。报错信息“failed to start daemon: error initializing graphdriver: overlay2: the backing xfs filesystem is formatted without d_type support, which leads to incorr…

5.26机器人基础-DH参数 正解

1.建立DH坐标系 1.确定Zi轴(关节轴) 2.确定基础坐标系 3.确定Xi方向(垂直于zi和zi1的平面) 4.完全确定各个坐标系 例子: 坐标系的布局是由个人决定的,可以有不同的选择 标准坐标系布局: …

NDIS协议驱动(一)

Microsoft Windows 操作系统使用基于 1978 年国际标准化组织 (ISO) 开发的七层网络模型的网络体系结构。 ISO 开放系统互连 (OSI) 参考模型将网络描述为“一系列协议层,具有分配给每个层的一组特定函数。 每个层都向更高层提供特定的服务,同时阻止这些层…

vscode:如何解决”检测到include错误,请更新includePath“

vscode:如何解决”检测到include错误,请更新includePath“ 前言解决办法1 获取includePath路径2 将includePath路径添加到指定文件3 保存 前言 配置vscode是出现如下错误: 解决办法 1 获取includePath路径 通过cmd打开终端,输入如下指令&a…

有个小伙把 MyBatis 替换成 MyBatis-Plus,上线后就被开了!!

MyBatis-Plus 替换 MyBatis 首先,我们准备了一张名为 tbl_order 的表,并初始化了其中的两条数据。 DROP TABLE IF EXISTS tbl_order; CREATE TABLE tbl_order (id bigint(0) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 自增主键,order_no varchar(50)…

云易办springboot+vue后端

springbootvue云易办后端项目完成 一.创建项目 创建父项目&#xff1a;yeb&#xff0c; 使用spring Initializr&#xff0c;完成创建之后删除无用文件夹&#xff0c;作为父项目 添加packaging <packaging>pom</packaging>二.创建子模块&#xff1a;yeb-server …