SimpleFOC之ESP32(十)—— ESP-NOW和力矩反馈




SimpleFOC教程目录:请点击

说明

  • 一 开始并没打算做ESP32的产品和教程,在B站无意中看到了老外的触觉控制(Haptic Control),觉得非常炫酷,甚是心动。仔细研究了Dagor这个项目,国内貌似没有销售这个产品(2021年8月份),板子上用的TI芯片正缺货,我就想能不能用分立元件搭建电路,实现同样的功能,凭借十几年的经验我觉得应该可以拿下。过程还算顺利,两个月做了四版PCB,实现了Dagor的全部功能。这个产品借鉴了老外的创意,参考了老外的代码,只能算半个原创吧!

  • Haptic Control,这个术语我专门百度翻译了下,触觉控制,但是大家都叫力矩反馈,只好随大流了。

  • ESP32drive这个产品目前最大的问题是没有应用场景,不知道这个产品能做什么用。工业环境下CAN或者485似乎更可靠,为什么要用无线通信呢。而我之所以要做这个技术完全是被esp-now的触觉控制所吸引,这么炫酷的技术肯定有它的价值,大概现在是超前市场了。

  • 有一种传言,说国内的芯片都是找的国外研发机构设计的,国外设计好国内直接拿去生产,最典型的就是近两年突然冒出的很多可以兼容STM32F103的芯片。当然这不是本文要讨论的,我想说的是ESP32这个芯片会不会也是这种模式。《SimpleFOC之ESP32(二)—— 开环控制》文中 修改底层代码 一节,描述了一个问题,这个问题并不重要,重要的是创作者在这里放了一个网址:https://github.com/espressif/esp-idf/issues/5429,打开网址,描述了一个问题,大胆揣测,可以脑补出事件过程:国外专业研发机构设计的这个芯片,其中包含有MCPWM功能,但这个功能并没受到ESP的重视,因为当前的主要应用场景是物联网,网络通信是重点。研发部工程师(可能是一个211或985刚毕业的研究生 )根据功能写底层驱动,因为领导不太重视MCPWM这个功能,所以驱动写好以后简单测试下就上传了,工程师没多久也辞职了。不久老外发现了这个问题,厂家给解决了,但解决的并不利索,我编译的时候又遇到了问题。

  • 对问题细节的推敲很好的解释了我的疑惑,为什么我做了这个产品却不知道能做什么用,因为ESP的厂家也不知道它能做什么用,芯片是老外设计的,老外知道做什么用,但是用法还没传到国内。

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

一、ESP-NOP

1.1、简介

  • ESP-NOW 是由乐鑫开发的另一款协议,可以使多个设备在没有或不使用 Wi-Fi 的情况下进行通信。这种协议类似常见于无线鼠标中的低功耗 2.4GHz 无线连接——设备在进行通信之前要进行配对。配对之后,设备之间的连接是持续的、点对点的,并且不需要握手协议,
  • ESP-NOW可以是一对一双向通信,也可以是多设备两两通信,

1.2、硬件准备

因为是通信,所以至少2个设备,
在这里插入图片描述
或者
在这里插入图片描述
在这里插入图片描述
ESP32drive 购买链接:某宝购买

1.3、代码演示

1.3.1、官方示例

在这里插入图片描述

  • 官方示例Master和Slave,刚好可以2个设备做验证,
  • 请注意,示例中专门做了说明,esp-now是没有主次概念的,这样命名只是为了更好的理解设置,
  • 代码中有一点小问题,通道不一致是不能通信的,下图
    在这里插入图片描述
  • 观察串口打印
    在这里插入图片描述

1.3.2、代码改进简化

  • 官方示例的功能很强大,不需要事先知道对方的MAC就可以连接,当然这也导致了代码看起来有点复杂,
  • 稍微做了点改进,用最简洁的代码实现ESP-NOW,前提是需要事先知道对方的MAC,

//读取本机MAC
#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_MODE_STA);
  Serial.print("ESP32 Board MAC Address:  ");
  Serial.println(WiFi.macAddress());  //打印本机MAC
  
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);  //turn on
  delay(500);   
  digitalWrite(2, LOW);   //turn off
  delay(500);
}

  • 把读取的MAC填入下图数组中,上传代码时选择对方的MAC
    在这里插入图片描述
  • 观察串口打印
    在这里插入图片描述

二、力矩反馈

2.1、Dagor项目介绍

  • SimpleFOC的官网提到了Dagor(应该是个人名),
    在这里插入图片描述
  • 点进去到github,提供源码下载,
    在这里插入图片描述
  • github上又提到了dagor的官网,点进去,
    在这里插入图片描述
  • Dagor提供代码下载,但是没有PCB或者原理图,我也没有找到详细的电机调试过程。
  • B站上老外的演示视频,请点击: 触觉无刷控制演示

2.2、ESP32drive的力矩反馈

  • 本节可以参考SimpleFOC移植STM32(六)—— 双电机控制和力矩反馈,两篇文章可以互为参考,
  • 调试的结果一定要符合以下两个目标:
    1、两个电机一个转动,另一个跟随,停止转动,另一个也停止,能够自稳。
    2、拆掉一个电机,只接入任一个电机能够自稳。

2.2.1、硬件准备

  • 调试阶段仍然需要串口,程序中有角度的输出,可以查看两个电机的角度,方便调试,
    在这里插入图片描述

2.2.2、修改代码

  • 两个电机用同一个代码,所以需要修改MAC,还要根据电机正反转修改减速和被减数的位置,
  • 其它电机的参数根据实际所用电机修改,此处不再赘述,如有不清楚请先把之前的教程演示后再到这里,
    在这里插入图片描述
    在这里插入图片描述

2.2.3、根据串口输出调试

  • 输出的角度分别为thismotor和thatmotor,也就是本机的角度和对方的角度,角度值一定是要趋近的,在这里插入图片描述

2.2.4、观察电机运行

在这里插入图片描述

2.2.5、实际应用

  • ESP32drive带负载的演示,请点击:B站视频
    在这里插入图片描述

2.2.5、调试总结

  • 先单独调试每个电机,保证电机是可以自稳的,
  • 电机一个CW,一个CCW,
  • 如果单个电机可以自稳,通信后基本就可以互为反馈了。

三、ESP32drive-Double的力矩反馈

3.1、一个驱动器两个电机

这个功能与SimpleMotor类似,不需要无线通信

3.1.1、硬件准备

  • 调试阶段仍需要接上串口查看电机的角度,方便调试
    在这里插入图片描述
    ESP32drive 购买链接:某宝购买
    带编码器电机 购买链接:某宝购买

3.1.2、代码演示

  • 代码在双电机控制的基础上修改,
    在这里插入图片描述

3.1.3、串口查看

在这里插入图片描述

3.2.4、观察电机运行

在这里插入图片描述

3.2、两个驱动器四个电机

3.2.1、硬件准备

  • 调试阶段仍需要接上串口查看电机的角度,方便调试
    在这里插入图片描述
    ESP32drive 购买链接:某宝购买
    带编码器电机 购买链接:某宝购买

3.2.2、代码演示

  • 两个驱动器用同一个代码,所以需要修改MAC,还要根据电机正反转修改减速和被减数的位置,
  • 其它电机的参数根据实际所用电机修改,此处不再赘述,如有不清楚请先把之前的教程演示后再到这里,
    在这里插入图片描述

在这里插入图片描述

3.2.3、串口查看

在这里插入图片描述
在这里插入图片描述

3.2.4、观察电机运行

在这里插入图片描述


(完)


欢迎加入simpleFOC技术交流群:923734429 群已满根据提示添加新群 (入群申请写:CSDN)


请继续阅读相关文章:
SimpleFOC之ESP32(一)—— 搭建开发环境
SimpleFOC之ESP32(二)—— 开环控制
SimpleFOC之ESP32(三)—— 闭环控制
SimpleFOC之ESP32(四)—— 电流闭环控制Inline
SimpleFOC之ESP32(五)—— 电流闭环控制Lowside
SimpleFOC之ESP32(六)—— 双电机控制
SimpleFOC之ESP32(七)—— 霍尔电机
SimpleFOC之ESP32(八)—— ABZ编码器电机
SimpleFOC之ESP32(九)—— WIFI、UDP和TCP
SimpleFOC之ESP32(十)—— ESP-NOW和力矩反馈

版权声明:本文为CSDN博主「loop222」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/loop222/article/details/122699186

生成海报
点赞 0

loop222

我还没有学会写个人说明!

暂无评论

相关推荐

SimpleFOC之ESP32(八)—— ABZ编码器电机

SimpleFOC教程目录:请点击一、增量式编码器介绍 ABZ或者ABI,叫法不同但都是指 增量式编码器;ABZ编码器最初是光电式的,近几年随着磁编码器的兴起,磁编码器上也

SimpleFOC之ESP32(七)—— 霍尔电机

SimpleFOC教程目录:请点击一、霍尔电机介绍 霍尔电机就是带霍尔传感器的直流无刷电机,下图  霍尔有两种安装方式,120度和60度,120度安装方式的稍微常见一些,

ESP32学习记录<四>ADC和DAC

ESP32学习记录ADC和DAC 前言 ADC和DAC是单片机比较常用的,ESP32具有12位的ADC和8位的DAC。今天我就简单地记录它们的使用。 一、ADC ADC也就是我们通常所说的模数转换,模拟信号