使用M5Stack内核控制基于电位器的伺服电机
发布日期:2023-06-17
点击次数:933
M5Stack是一个模块化、可堆叠和可编程的开发模块,专为快速轻松地构建物联网项目和创建原型而设计。该模块基于ESP32 微控制器,带有各种传感器、输入、输出和彩色液晶显示器 (LCD)。此外,M5Stack 内核采用矩形模块封装,尺寸为 54 x 54 x 18 mm,并配有 2 英寸薄膜晶体管 (TFT) LCD。
如前所述,该装置有多个输入和输出选项,例如三个按钮、一个扬声器和一个 microSD 卡插槽。图 1 说明了 M5Stack 内核。

图1.M5Stack 。图片由M5Stack提供
M5Stack 内核独特的功能之一是其模块化设计生态系统。该模块可以轻松地与其他 M5Stack 模块堆叠,允许用户添加额外的功能并扩展其项目的功能。M5Stack 模块化生态系统提供各种模块,例如摄像头、GPS 和电池模块单元。
在本文中,我们将探讨 采用 M5Stack 内核的角度传感器和伺服电机单元。这个动手项目的成果是构建了一个基于电位器的伺服电机控制器,带有 M5Stack TFT 显示器。
项目概览——了解人机交互 (HCI)
基于 M5Stack 电位器的伺服电机控制器项目将展示使用现成的电子产品和软件构建人机交互 (HCI) 设备的多功能性和易用性。该项目的目的是说明如何使用基于 ESP32 的小型控制器实现人机交互等 HCI 概念。基于 ESP32 的平台将与机电对象进行人机交互。该项目将使读者了解如何使用 M5Stack 的 TFT LCD 从机电系统显示和获取交互数据。此类数据可用于使用Python、PyTorch 和 Pandas 等编程语言探索网络物理系统 (CPS) 的机器学习概念。
作为本项目的关键技术,推荐参考M5Stack电子蓝图书。更具体地说,第二章“M5Stack 单元动手实践”提供了对 ESP32 模块化控制器和可编程传感和控制单元的电子电路和设置的技术见解。本书还包括动手项目和互动测验以吸引读者。基本上,您可以将此项目视为本书的延伸;因此,本项目将不解释详细的软件设置说明。
设置 M5Stack
该项目的总体概念是说明使用 M5Stack 内核作为主要 ESP32 嵌入式平台的小型伺服电机控制器的原型构建。该项目的初始设置是添加一个外部电位器来控制伺服电机。电位器将向 M5Stack 内核提供旋转信息。然后,M5Stack 将模拟分压数据转换为等效脉宽调制 (PWM)控制信号,从而操作电气有线伺服电机。图 2 显示了原型的系统框图。

图 2.基于 M5Stack 电位器的伺服电机控制系统框图。
接下来,使用与角度传感器相同的内部电子元件,将电位器电路连接到 M5Stack 的 ESP32 微控制器。M5Stack 角度传感器由一个 1 KΩ 电阻器与一个 10 KΩ 电位计串联而成。此电路配置提供分压功能,允许一系列离散模拟信号值出现在指定的 ESP32 模数通用输入输出 (GPIO)引脚上。图 3 显示了 M5Stack 角度传感器。

图 3. M5Stack 角度传感器单元。图片由M5Stack提供
此外,该电路方法允许电位器相对于地的输出电压为 +3.3 V,而且 ESP32 微控制器的 GPIO 引脚符合 +3.3 V 标准。因此分压电路的输出电压+3.3V不会损坏ESP32单片机。自制角度传感器的电子电路原理图如图 4 所示。

图 4.自制角度传感器电子电路原理图。
请注意,J1 参考标志代表焊接到角度传感器 PCB 上的四针母连接器。
从这里,您可以使用图 5 中所示的电气接线图作为参考将自制软件角度传感器连接到 M5Stack ,从而在无焊面包板上连接电子电路。

图 5.自制角度传感器无焊面包板图。
请记住,可以使用 UiFlow 软件设计 M5Stack 的 TFT LCD 布局——我们将在下一节中对此进行介绍。
接下来,您将使用杜邦线在 M5Stack 和自制角度传感器无焊面包板电路之间创建一个延长线束。如图 5 所示,将三根杜邦线插入白色四针母头连接器,用于将电路与 M5Stack 控制器进行电气连接。图 6 说明了这种电气布线接口连接和连接方法。

图 6.电位器到 M5Stack 内核的无焊面包板接线。
UiFlow软件介绍
对于这个项目,我使用了一个名为UiFlow的程序。UiFlow 是一个软件开发平台,旨在简化控制器、模块、传感器和单元的 M5Stack 产品的编程和原型制作过程。该软件提供了一个图形用户界面 (GUI),用于对 M5Stack ESP32 微控制器进行编程。开发人员可以拖放代码块并创建逻辑代码来对 ESP32 微控制器进行编程。UiFlow 允许使用在线编辑器或桌面可软件包进行编码。
UiFlow 在线编辑器可以从 M5Stack 网站获得,网址如下。还有适用于 Windows、Apple 和基于 Linux 的计算机的桌面版本。
M5Stack内核TFT LCD显示电位器转动数据的版图设计如图7所示。

图 7.配置 M5Stack Core TFT LCD 以显示电位器角度信息。
要了解有关 UiFlow 的更多信息,您可以前往 M5Stack 电子蓝图书的第 2 章了解更多信息。
显示电位器读数
将电位器连接到 M5Stack 内核后,需要软件来显示电气元件的旋转值。UiFlow 软件将用于显示电位器的旋转角度(以度为单位),代码块包含伺服电机控制器的三个主要操作。
指令代码块功能包括:
• 从电位器读取原始数据到变量
• 提供适当的可变比例因子以确保正确的角度显示
• 以度数显示角度
UiFlow 代码块如图 8 所示。

图 8. UiFlow 电位器角度显示代码块。
除了代码块之外,伺服和角度传感器单元也包含在代码块调色板中。这些单元将添加一组新的代码块,以便在整个控制器产品原型中正确操作这些设备。如图8所示,“servo_0,servo_0旋转角度”和“获取angle_0值”是添加到代码块调色板中的新单元指令。您可以通过选择单位加号按钮来包含这些代码块。从设备列表中选择伺服和角度单元会将所需的代码块添加到调色板,以完成项目控制器的代码构建。通过选择软件 IDE 控制面板上的 RUN 按钮,UiFlow 代码块将在 M5Stack 上执行。
使用 UiFlow 控制伺服电机
除了显示电位器的旋转角度外,UiFlow 代码块(如图 8 所示)还控制伺服电机。将伺服电机连接到 M5Stack 需要使用与电位器相同的电气接线技术。部分电子电路示意图,如图 9 所示,说明了连接到 M5Stack ESP32 GPIO13 引脚的伺服电机电气接线。

图 9.部分电子电路原理图:附在 M5Stack ESP32 微控制器上的伺服电机。
电子电路原理图上的 J2_A 连接器代表 M5Stack 上的 A 端口。J2_B 参考标志代表插入伺服电机黑色三针母连接器的电线跳线线束针脚。
M5Stack Core 到伺服电机的电气接线如图 10 所示。

图 10. 伺服电机与 M5Stack 进行电气连接。
完成的基于 M5Stack 电位器的伺服电机控制器原型如图 11 所示。

图 11.终的 M5Stack 基于电位器的伺服电机控制器原型构建。
作为该项目的终参考,图 12 显示了基于 M5Stack 电位器的伺服电机控制器的完整电子电路原理图。

图 12.基于 M5Stack 电位器的伺服电机控制器电子电路原理图。