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

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

如图安放:

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

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

需要注意的是:

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

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

必须是一个A轮一个B轮

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于离散小波变换(DWT)的心电信号伪影去除及心电信号PQRST波检测(MATLAB R2018)

心电信号是心脏神经,肌肉组织电化学活动的表现形式。这些电化学活动使心脏内部产生一系列非常协调的电刺激脉冲,分别使心房,心室的肌肉细胞兴奋,从而有节律的舒张和收缩。这些生物电活动在体表的不同部位形成不同的电位差变化&…

622.设计循环队列

typedef struct {int* a;int head;int tail;int k; } MyCircularQueue;bool myCircularQueueIsEmpty(MyCircularQueue* obj); bool myCircularQueueIsFull(MyCircularQueue* obj);//初始化 MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj(MyCircularQue…

ARM+FPGA+NVIDIA AI摄像头软硬件定制

拥有资深ISP图像技术团队,是英伟达、地平线等合作伙伴,我们的团队掌握目前市面上大部分车载平台的ISP图像画质服务能力,能自主开发图像ISP和增强算法。我们具有多名经验丰富光学设计专家,掌握车载模组光学设计能力,资深…

Mac上如何安装低版本chrome浏览器

背景 为了排查项目上使用chrome低版本的兼容性问题,需要在本机【mac系统】上安装一个低版本的chrome浏览器。 不同版本的chrome下载地址 https://www.slimjet.com/chrome/google-chrome-old-version.php 下载后要记得你下载的旧版本的版本号,后面修改…

Neural Filters:着色

Ps菜单:滤镜/Neural Filters/颜色/着色 Neural Filters/COLOR/Colorize 着色 Colorize滤镜可以对黑白照片自动着色,也为彩色照片简化色彩提供了有力的支持。 “着色”滤镜利用深度学习技术,对输入的黑白或彩色照片进行分析,识别图…

【云原生】kubernetes声明式管理-----YAML文件

目录 引言 一、声明式管理简介 (一)什么是声明式管理 (二)支持格式 二、YAML文件 (一)YAML文件基本格式 (二)YAML文件实践 三、YAML文件创建方式 (一&#xff0…

rk3568_spinlock

文章目录 前言1、spinlock是什么?2、自旋锁实验2.1源码2.2 结果图总结前言 本文记录在rk3568开发板做的自旋锁实验。通过自旋锁控制state变量来限制只有一个应用程序来打开驱动设备。 1、spinlock是什么? spinlock称为自旋锁,如果获取不到资源,就只能一直傻傻地等待资源被…

B树与B+树区别

B树和B树是常见的数据库索引结构,都具有相较于二叉树层级较少,查找效率高的特点,它们之间有以下几个主要区别: 1.节点存储数据的方式不同 B树的叶子结点和非叶子节点都会存储数据,指针和数据共同保存在同一节点中B树…

一文教你使用stream流轻松解决java项目数据枚举显示问题

本篇文章主要讲解java枚举、vo实体类通过stream流形式输出枚举参数的方法。 日期:2024年5月26日 作者:任聪聪 本文代码实例附件:https://download.csdn.net/download/hj960511/89361611 实际效果 可以看到在枚举参数的基础上,我们…

这或许是国产游戏出海的最佳时机

《刺客信条:影》过于政治正确的选角激怒了全球玩家,而社交媒体上有玩家讨论育碧是否应该因为刻意加入DEI(多元化)而延期《刺客信条:影》时,没想到这得到了X拥有人埃隆马斯克的回复。马斯克表示“DEI&#x…

【Chrono Engine学习总结】6-创建自定义场景-6.2-chrono中的光线设置

由于Chrono的官方教程在一些细节方面解释的并不清楚,自己做了一些尝试,做学习总结。 上一篇文章中,自己【用sketchup重建了三维场景】,但导入chrono中颜色很不正确,几乎都是白色的,但也不是完全白色。经过…

宿舍管理系统代码详解(操作界面)

目录 一、前端代码 1.样式展示 2.代码详解 <1>主页面列表部分 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 <2>新增页面 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 <3>修改页面…

Mongodb介绍及springboot集成增删改查

文章目录 1. MongoDB相关概念1.1 业务应用场景1.2 MongoDB简介1.3 体系结构1.4 数据模型1.5 MongoDB的特点 2. docker安装mongodb3. springboot集成3.1 文件结构3.2 增删改查3.2.1 增加insert3.2.2 保存save3.2.3 更新update3.2.4 查询3.2.5 删除 1. MongoDB相关概念 1.1 业务…

vue3快速入门(局部使用)

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

上位机图像处理和嵌入式模块部署(f103 mcu运行freertos)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 mcu一般有两个用途,一个是控制,一个是非控制。控制类的应用一般要求实时性比较高,什么时候做什么,都是有严格的时间要求的。而非控制类的应用,则要求实现尽可能多的功能,比如…

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

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

冷冻式压缩空气干燥机常见几种系统原理图

冷冻式压缩空气干燥机 我们以两种典型的设计流程图为例 1.干式蒸发型&#xff0c;这类冷干机是我们最为常见的设计型式。下图为deltech公司的典型流程图 此类设备各家设计不同的最大区别基本就是在换热器的结构型式上有比较大的区别。换热器主要有&#xff1a;管壳式、铝板换、…

echarts饼图图例右侧纵向排列

如图所示&#xff0c;一开始&#xff0c;我设置了图例的right和top值&#xff0c;还有orient&#xff0c;但图例始终不能纵向排成一排&#xff0c;要么上面两个一行&#xff0c;要么最后两个一行&#xff0c;最后我发现同时设置一下left的值就可以了&#xff0c;如下所示&#…

51单片机-实机演示(按键)

书接上回。http://t.csdnimg.cn/4wSSW 目录 一.按下灭&#xff0c;松开亮 二.两个按键控制两个灯 三.点一下灯开&#xff0c;在按一下关 四。优化按键消抖 1.加入bit变量 一.按下灭&#xff0c;松开亮 代码 #include <reg52.h> //此文件中定义了单片机的一些特…

关于Iterator 和ListIterator的详解

1.Iterator Iterator的定义如下&#xff1a; public interface Iterator<E> {} Iterator是一个接口&#xff0c;它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下&#xff1a; forEachRemaining(Consumer<? super E> act…