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个设备,
在这里插入图片描述
或者
在这里插入图片描述

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、硬件准备

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

ESP32drive 购买链接:https://item.taobao.com/item.htm?ft=t&id=662591519566,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

2.2.2、修改代码

  • 两个相同的电机用同一个代码,只需要修改MAC,
    在这里插入图片描述
  • 如果是不同的电机,除了修改MAC,还需要设置电机参数。此处不再赘述,如有不清楚请先学习之前的教程。
    在这里插入图片描述

2.2.3、根据串口输出调试

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

2.2.4、观察电机运行

在这里插入图片描述

2.2.5、实际应用

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

2.2.6、调试总结

力矩反馈的代码已于20221115升级,代码更加简洁,调试更加容易。

在这里插入图片描述

三、ESP32drive-Double的力矩反馈

3.1、一个驱动器两个电机

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

3.1.1、硬件准备

  • 调试阶段仍需要接上串口查看电机的角度,方便调试
    在这里插入图片描述

ESP32drive 购买链接:https://item.taobao.com/item.htm?ft=t&id=662591519566,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

3.1.2、代码演示

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

3.1.3、串口查看

在这里插入图片描述

3.2.4、观察电机运行

在这里插入图片描述

3.2、两个驱动器四个电机

3.2.1、硬件准备

  • 调试阶段仍需要接上串口查看电机的角度,方便调试
    在这里插入图片描述

ESP32drive 购买链接:https://item.taobao.com/item.htm?ft=t&id=662591519566,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

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和力矩反馈

  • 15
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要下载ESP32-C3-LCD-EV板的示例程序,你可以按照以下步骤进行操作: 1. 首先,打开ESP32-C3-LCD-EV板的官方网站,通常可以在开发板的制造商网站或者ESP32的官方网站上找到。 2. 在官方网站上,找到关于ESP32-C3-LCD-EV板的页面或者单独的板支持页面。这个页面通常会提供板的相关信息、规格和下载链接。 3. 查询页面上是否有与板子配套使用的IDE或者开发环境。如果有,下载并安装它们。 4. 在官方网站的页面上查找示例程序的下载链接。它们通常会以压缩文件的形式提供,可以点击链接进行下载。 5. 下载示例程序后,解压缩文件到你选择的位置。确保你已经安装了所需的开发环境,以便能够打开和编辑这些示例程序。 6. 打开解压缩后的示例程序文件夹,并查找一个入口文件(通常命名为main.c或者main.ino)。这是一个示例程序的主文件,你可以在此基础上进行修改和调试。 7. 使用你的IDE或者开发工具打开入口文件,然后将板子连接到电脑上。通常需要使用USB线缆将ESP32-C3-LCD-EV板连至电脑。 8. 在IDE或者开发工具中选择合适的开发设备(通常是ESP32系列)和端口(通常是USB端口),然后编译并烧录示例程序到板子上。 9. 编译和烧写完成后,断开ESP32-C3-LCD-EV板与电脑的连接,然后重新连接板子供电。 10. 示范程序应该会开始在板子上运行,你可以观察板子上的LCD显示屏或者其他指示灯来确认是否成功下载和运行了示例程序。 以上就是下载ESP32-C3-LCD-EV板示例程序的一般步骤。具体步骤可能因为开发环境、操作系统和板子的不同而有所差异。如果在下载或者使用示例程序的过程中遇到问题,建议参考官方文档、开发者社区或者相关论坛寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值