首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 23-09-28 04:01
  • 3430
  • 9504
blog.csdn.net

目录

  • 说明
  • 一、ESP-NOP
    • 1.1、简介
    • 1.2、硬件准备
    • 1.3、代码演示
      • 1.3.1、官方示例
      • 1.3.2、代码改进简化
  • 二、力矩反馈
    • 2.1、Dagor项目介绍
    • 2.2、ESP32drive的力矩反馈
      • 2.2.1、硬件准备
      • 2.2.2、修改代码
      • 2.2.3、根据串口输出调试
      • 2.2.4、观察电机运行
      • 2.2.5、实际应用
      • 2.2.6、调试总结
  • 三、ESP32drive-Double的力矩反馈
    • 3.1、一个驱动器两个电机
      • 3.1.1、硬件准备
      • 3.1.2、代码演示
      • 3.1.3、串口查看
      • 3.2.4、观察电机运行
    • 3.2、两个驱动器四个电机
      • 3.2.1、硬件准备
      • 3.2.2、代码演示
      • 3.2.3、串口查看
      • 3.2.4、观察电机运行

 
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 

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);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

 

  • 把读取的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,
    在这里插入图片描述
     
  • 如果是不同的电机,除了修改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 购买链接:某宝购买
    带编码器电机 购买链接:某宝购买
     

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

注:本文转载自blog.csdn.net的loop222的文章"https://blog.csdn.net/loop222/article/details/122699186"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top