ESP32Encoder是什么?
ESP32Encoder是一个用于ESP32微控制器的开源库,它利用ESP32内置的脉冲计数器(PCNT)硬件外设来读取旋转编码器的信号。与软件轮询方式相比,该库利用硬件中断处理,极大地降低了CPU负载,提高了读取精度和效率,特别适合需要实时处理旋转编码器数据的应用场景。
ESP32Encoder能做什么?
ESP32Encoder主要用于读取各种类型的旋转编码器,例如增量式编码器,并将其转换为数字信号,以便微控制器进行后续处理。这在许多应用中至关重要,例如:
机器人控制:精确控制机器人的关节角度、速度和位置。
工业自动化:监控和控制各种机械设备的运行状态。
仪器仪表:读取旋钮或刻度盘上的数值。
用户界面:作为一种人机交互方式,例如音量调节、菜单选择等。
ESP32Encoder的核心功能和特性:
硬件加速: 利用ESP32的PCNT硬件外设进行计数,极大地减少了软件处理负担,提高了效率和精度。
低中断负载: 只有一个中断用于处理计数器溢出,极大地减少了中断处理的CPU开销,保证系统稳定运行。
多通道支持: 支持最多8个同时运行的编码器(ESP32和ESP32C2),ESP32S3支持2个。
多种计数模式: 支持全四象限计数、半四象限计数和单边沿计数三种模式,以适应不同类型的编码器和应用需求。
内部弱上拉/下拉电阻: 可以配置内部弱上拉/下拉电阻,简化电路设计。
可配置中断服务CPU内核: 允许用户指定中断服务程序运行的CPU内核,避免并发问题。
硬件去抖动: 提供硬件去抖动功能,有效滤除编码器信号中的抖动噪声。对于KY-040等易产生抖动的编码器,需要配合外部电容进行去抖动,并设置适当的滤波参数。
易于使用: 提供简洁的API接口,方便用户快速集成到自己的项目中。
良好的文档: 提供Doxygen生成的详细文档,方便用户查阅和学习。
兼容性:
• 支持ESP32和ESP32-C2芯片。
• ESP32-C3不支持,因为该芯片没有脉冲计数器硬件。
• ESP32-S3仅有两个PCNT模块,因此仅支持两个硬件加速的编码器。
使用示例 (简化):
#include <ESP32Encoder.h> ESP32Encoder encoder1(2, 4);// 使用GPIO 2和4连接编码器 void setup() { Serial.begin(115200); encoder1.setFilter(1023);// 设置最大硬件去抖动 encoder1.setCount(0);// 设置初始计数为0 } void loop() { long count = encoder1.getCount(); Serial.print("Encoder Count: "); Serial.println(count); delay(100); }
关于KY-040及类似编码器的注意事项:
KY-040等开关式编码器容易产生较大的信号抖动,需要外部电容进行去抖动(通常在0.1uF到2uF之间)。同时,在使用ESP32Encoder库时,需要设置 setFilter(1023) 以获得最大的硬件去抖动效果。
总结:
ESP32Encoder库是一个高效、易用、功能强大的旋转编码器读取库,它充分利用了ESP32的硬件资源,极大地简化了编码器的使用,并提高了系统性能。无论是简单的应用还是复杂的项目,ESP32Encoder都能提供可靠的旋转编码器读取解决方案。
项目地址:https://github.com/madhephaestus/ESP32Encoder
来源:https://mp.weixin.qq.com/s/EhyENMEBG7R0FZ6G_CbCig
勾股定理,是一个基本的几何定理,指直角三角形的两条直角边的平方和等于斜边的平方。中国古代称直角三角形为勾股形,并且直角边中较小者为勾,另一长直角边为股,斜边为弦,所以称这个定理为勾股定理,也有人称商高定理。
本文对比了几款适合物联网开发的盒子硬件参数,供大家参考。
乐动掌控采用掌控板作为主控,塑胶一体式外壳,侧面和底面开具多个乐高扩展孔位,兼容乐高积木,可完成多种创意应用。
在MicroPython的ESP32库中,NVS类用于管理非易失性存储,支持 32 位有符号整数和 二进制blob。
Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。
本方案是一个基于ESP32-CAM + 物联网的图像采集方案。
ESP32-CAM与MicroPython结合可实现摄像头图像采集、视频流传输等功能,不过Micropython官方没有支持ESP32-CAM的固件,需要烧录第三方的专有固件。
相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。
MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。
掌控板3.0升级了主控,还主打AI。带有双麦克风阵列,增加了音频解码芯片,板载了一个1W喇叭,还把之前的单色屏幕换成了1.47寸的彩色屏幕,有更多的可玩性。
乐鑫自主研发的 ESP-TOUCH 协议采⽤的是 Smart Config(智能配置)技术,帮助用户将采用 ESP8266 和 ESP32 的设备(以下简称“设备”)连接至 Wi-Fi 网络。