Controlar un potenciómetro
HogarHogar > Blog > Controlar un potenciómetro

Controlar un potenciómetro

May 04, 2024

El núcleo M5Stack es un módulo de desarrollo modular, apilable y programable diseñado para construir proyectos de IoT y crear prototipos de forma rápida y sencilla. Este módulo se basa en el microcontrolador ESP32 y viene con una variedad de sensores, entradas, salidas y una pantalla de cristal líquido (LCD) en color. Además, el núcleo M5Stack está empaquetado como un módulo rectangular que mide 54 x 54 x 18 mm y tiene una pantalla LCD de transistor de película delgada (TFT) de 2 pulgadas.

Como se mencionó, esta unidad cuenta con varias opciones de entrada y salida, como tres pulsadores, un altavoz y una ranura para tarjetas microSD. La Figura 1 ilustra el núcleo de M5Stack.

Una de las características más exclusivas del núcleo M5Stack es su ecosistema de diseño modular. El módulo se puede apilar fácilmente con otros módulos M5Stack, lo que permite a los usuarios agregar funcionalidades adicionales y ampliar las capacidades de sus proyectos. El ecosistema modular M5Stack tiene varios módulos disponibles, como una cámara, GPS y unidades de módulo de batería.

En este artículo, exploraremos las unidades de sensor de ángulo y servomotor con el núcleo M5Stack. El resultado de este proyecto práctico es la construcción de un controlador de servomotor basado en potenciómetro con una pantalla TFT central M5Stack.

El proyecto de controlador de servomotor basado en potenciómetro central M5Stack ilustrará la versatilidad y facilidad con la que se pueden construir dispositivos de interacción persona-computadora (HCI) utilizando productos electrónicos y software disponibles en el mercado. La intención de este proyecto es ilustrar cómo se pueden lograr conceptos de HCI como la interacción humana con los sistemas utilizando un pequeño controlador basado en ESP32. La plataforma basada en ESP32 tendrá interacción informática física-humana con objetos electromecánicos. Este proyecto permitirá al lector comprender cómo se pueden mostrar y obtener datos de interacción de sistemas electromecánicos utilizando la pantalla LCD TFT del núcleo M5Stack. Estos datos se pueden utilizar para explorar conceptos de aprendizaje automático de sistemas ciberfísicos (CPS) utilizando lenguajes de programación como Python, PyTorch y Pandas.

Como fuente técnica clave para este proyecto, se recomienda hacer referencia al libro de planos electrónicos de M5Stack. Más específicamente, el capítulo dos, "Práctica con las unidades M5Stack", proporciona información técnica sobre los circuitos electrónicos y la configuración del controlador modular ESP32 y las unidades de control y detección programables. Este libro también incluye proyectos prácticos y cuestionarios interactivos para atraer al lector. Básicamente, puedes pensar en este proyecto como una extensión del libro; por lo tanto, en este proyecto no se explicarán instrucciones detalladas de configuración del software.

A continuación se muestra una lista de piezas electrónicas para construir y ayudar a explorar el proyecto del controlador de servomotor basado en potenciómetro central M5Stack.

Lista de materiales (BOM):

El kit inicial M5Go IoT tiene una variedad de sensores, cables de puente, un LED RGB y un cable USB C. El sensor de ángulo está incluido en el kit. En el proyecto, se utilizará el potenciómetro de 10 KΩ y la resistencia de 1 KΩ para construir una versión casera del sensor de ángulo M5Stack. El Capítulo 2 proporciona detalles sobre el cableado eléctrico de las piezas electrónicas en una placa sin soldadura y la conexión del sensor de elaboración casera al controlador central M5Stack.

El concepto general del proyecto es ilustrar la construcción del prototipo de un pequeño controlador de servomotor que utiliza el núcleo M5Stack como plataforma principal integrada ESP32. La configuración inicial para este proyecto consiste en agregar un potenciómetro externo para controlar un servomotor. El potenciómetro proporcionará información de rotación al núcleo M5Stack. Luego, el núcleo M5Stack convertirá los datos de división de voltaje analógico en señales de control de modulación de ancho de pulso (PWM) equivalentes, operando así el servomotor cableado eléctricamente. La Figura 2 muestra un diagrama de bloques del sistema del prototipo.

A continuación, el circuito del potenciómetro se conecta eléctricamente al microcontrolador ESP32 del núcleo M5Stack utilizando los mismos componentes electrónicos internos del sensor de ángulo. El sensor de ángulo M5Stack está construido con una resistencia de 1 KΩ conectada en serie con un potenciómetro de 10 KΩ. Esta configuración de circuito proporciona una función de división de voltaje que permite que un rango de valores de señales analógicas discretas esté presente en un pin de entrada-salida de propósito general (GPIO) analógico a digital ESP32 designado. La Figura 3 muestra el sensor de ángulo M5Stack.

Además, este enfoque de circuito permite que un voltaje de salida máximo del potenciómetro con respecto a tierra sea de +3,3 V, además los pines GPIO del microcontrolador ESP32 cumplen con +3,3 V. Por lo tanto, el voltaje de salida máximo del circuito divisor de voltaje de +3,3 V no dañará el microcontrolador ESP32. El diagrama esquemático del circuito electrónico para el sensor de ángulo de elaboración casera se muestra en la Figura 4.

Tenga en cuenta que el designador de referencia J1 representa el conector hembra de cuatro pines soldado a la PCB de los sensores de ángulo.

Desde aquí, puede cablear el circuito electrónico en una placa sin soldadura utilizando el diagrama de cableado eléctrico que se muestra en la Figura 5 como referencia para conectar el sensor de ángulo de elaboración casera al núcleo M5Stack.

Tenga en cuenta que el diseño de la pantalla LCD TFT del núcleo M5Stack se puede diseñar utilizando el software UiFlow; abordaremos esto en la siguiente sección.

A continuación, utilizará cables Dupont para crear un arnés de extensión entre el núcleo M5Stack y el circuito de la placa de pruebas sin soldadura del sensor de ángulo casero. La inserción de tres cables Dupont, como se muestra en la Figura 5, en el conector hembra blanco de cuatro pines se utiliza para interconectar eléctricamente el circuito con el controlador central M5Stack. La Figura 6 ilustra este método de conexión y fijación de la interfaz de cableado eléctrico.

Para este proyecto, utilicé un programa llamado UiFlow. UiFlow es una plataforma de desarrollo de software diseñada para simplificar el proceso de programación y creación de prototipos para el producto M5Stack de controladores, módulos, sensores y unidades. Este software ofrece una interfaz gráfica de usuario (GUI) para programar el microcontrolador ESP32 central M5Stack. Los desarrolladores pueden arrastrar y soltar bloques de código y crear código lógico para programar el microcontrolador ESP32. UiFlow permite codificar utilizando un editor en línea o un paquete de software descargable de escritorio.

El editor en línea UiFlow se puede obtener desde el sitio web de M5Stack en la siguiente dirección URL aquí. También hay una versión de escritorio disponible para máquinas basadas en Windows, Apple y Linux.

El diseño de la pantalla LCD TFT central del M5Stack para mostrar los datos de rotación del potenciómetro se muestra en la Figura 7.

Para obtener más información sobre UiFlow, puede consultar el Capítulo 2 del libro de planos electrónicos M5Stack para obtener información adicional.

Con el potenciómetro conectado al núcleo M5Stack, se necesita el software para mostrar los valores de rotación del componente eléctrico. El software UiFlow se utilizará para mostrar el ángulo de rotación del potenciómetro en grados, y los bloques de código constan de tres operaciones principales para el controlador del servomotor.

Las funciones de los bloques de código instructivo constan de:

Los bloques de código de UiFlow se ilustran en la Figura 8.

Además de los bloques de código, las unidades de servo y sensor de ángulo se incluyen en la paleta de bloques de código. Estas unidades agregarán un conjunto de nuevos bloques de código para el funcionamiento adecuado de estos dispositivos dentro del prototipo general del producto controlador. Como se muestra en la Figura 8, "servo_0, servo_0 rotar a un grado" y "obtener valor de ángulo_0" son las nuevas instrucciones de unidad agregadas a la paleta de bloques de código. Puede incluir estos bloques de código seleccionando el botón más de unidades. Al seleccionar las unidades de servo y ángulo de una lista de dispositivos, se agregarán los bloques de código necesarios a la paleta para completar la compilación del código para el controlador del proyecto. Los bloques de código UiFlow se ejecutarán en el núcleo M5Stack seleccionando el botón EJECUTAR en el panel de control IDE del software.

Además de mostrar el ángulo de rotación del potenciómetro, los bloques de código UiFlow, que se muestran en la Figura 8, controlan el servomotor. Conectar el servomotor al núcleo M5Stack requiere la misma técnica de cableado eléctrico utilizada para el potenciómetro. El diagrama esquemático del circuito electrónico parcial, que se muestra en la Figura 9, ilustra el cableado eléctrico del servomotor conectado al pin ESP32 GPIO13 del núcleo M5Stack.

El conector J2_A en el diagrama esquemático del circuito electrónico representa el puerto A en el núcleo M5Stack. Mientras que el designador de referencia J2_B representa las clavijas del mazo de cables eléctricos insertadas en el conector hembra negro de tres clavijas del servomotor.

El cableado eléctrico del M5Stack Core al servomotor se muestra en la Figura 10.

En la Figura 11 se muestra el prototipo completo del controlador de servomotor basado en potenciómetro central M5Stack.

Como referencia final para el proyecto, la Figura 12 muestra el diagrama esquemático del circuito electrónico completo del controlador de servomotor basado en potenciómetro central M5Stack.

Al ajustar el potenciómetro, el servomotor girará a la posición de ángulo que se muestra en la pantalla LCD TFT del núcleo M5Stack. Dado que el servomotor tiene un rango de barrido rotacional de 0˚ a 180˚, la pantalla LCD TFT permitirá marcar dichos ángulos con el potenciómetro y mostrarlos en consecuencia. Se ha proporcionado un breve vídeo para mostrar el controlador del servomotor en funcionamiento. Para ver el prototipo de controlador de servomotor en acción, puede ver el vídeo aquí o verlo a continuación.

El aspecto intencional de este proyecto fue ilustrar un enfoque único e innovador para el uso de una plataforma ESP32 para crear un controlador de servomotor HCI. El núcleo M5Stack es un ecosistema de IoT modular basado en ESP32 que permite crear prototipos fácilmente de una variedad de dispositivos CPS utilizando unidades y componentes electrónicos disponibles en el mercado. Este proyecto ilustró cómo un lenguaje de programación visual (VPL) puede ayudar al desarrollador a construir rápidamente un prototipo funcional en varios minutos. Con el factor de forma pequeño del M5Stack Core, se pueden desarrollar e implementar pequeños controladores portátiles e interfaces hombre-máquina (HMI) en áreas como automatización, robótica, hogares inteligentes y campos de desarrollo de tecnología educativa.

Figura 1.Figura 2.Figura 3.Figura 4.Figura 5.Figura 6.Figura 7.Figura 8.Figura 9.Figura 10.Figura 11.Figura 12.