banner

Blog

May 14, 2023

Controlar un potenciómetro

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) a color. Además, el núcleo M5Stack se empaqueta 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 tiene varias opciones de entrada y salida, como tres botones, un altavoz y una ranura para tarjeta microSD. La Figura 1 ilustra el núcleo 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 funciones 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 el sensor de ángulo y las unidades de 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 de núcleo M5Stack ilustrará la versatilidad y la facilidad con la que se pueden construir dispositivos de interacción humano-computadora (HCI) utilizando productos electrónicos y software listos para usar. La intención de este proyecto es ilustrar cómo se pueden lograr conceptos de HCI, como el compromiso humano con los sistemas, utilizando un pequeño controlador basado en ESP32. La plataforma basada en ESP32 tendrá interacción computacional humana-física con objetos electromecánicos. Este proyecto permitirá al lector comprender cómo se pueden mostrar y obtener los datos de interacción de los sistemas electromecánicos utilizando la pantalla LCD TFT del núcleo M5Stack. Dichos datos se pueden usar 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 consultar el libro de planos electrónicos M5Stack. Más específicamente, el capítulo dos, "Prácticas con las unidades M5Stack", brinda información técnica sobre los circuitos electrónicos y la configuración del controlador modular ESP32 y las unidades programables de detección y control. 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, las instrucciones detalladas de configuración del software no se explicarán en este proyecto.

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

Lista de materiales (BOM):

El kit de inicio 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, el potenciómetro de 10 KΩ y la resistencia de 1 KΩ se utilizarán 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 de prueba sin soldadura y la conexión del sensor homebrew al controlador central M5Stack.

El concepto general del proyecto es ilustrar la construcción del prototipo de un controlador de servomotor pequeño que utiliza el núcleo M5Stack como la plataforma integrada ESP32 principal. La configuración inicial de este proyecto es 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, y de ese modo operará el servomotor cableado eléctrico. 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 discretos de señales analógicas 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 de que 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 casero 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 de prueba sin soldadura usando el diagrama de cableado eléctrico que se muestra en la Figura 5 como referencia para conectar el sensor de ángulo casero al núcleo M5Stack.

Tenga en cuenta que el diseño de la pantalla LCD TFT del núcleo M5Stack se puede diseñar con el software UiFlow; hablaremos de 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 prueba sin soldadura del sensor de ángulo homebrew. La inserción de tres cables Dupont, como se muestra en la Figura 5, en el conector de cabezal hembra blanco de cuatro pines se usa para interconectar eléctricamente el circuito con el controlador central M5Stack. La figura 6 ilustra esta conexión de interfaz de cableado eléctrico y el método de fijación.

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 M5Stack core ESP32. Los desarrolladores pueden arrastrar y soltar bloques de código y crear código lógico para programar el microcontrolador ESP32. El UiFlow permite la codificación usando un editor en línea o un paquete de software descargable de escritorio.

El editor en línea de UiFlow se puede obtener del 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.

En la Figura 7 se muestra el diseño de la pantalla LCD TFT del núcleo M5Stack para mostrar los datos de rotación del potenciómetro.

Para obtener más información sobre UiFlow, puede consultar el Capítulo 2 del libro de planos electrónicos de 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 consisten en:

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 correcto funcionamiento de estos dispositivos dentro del prototipo general del producto del controlador. Como se muestra en la Figura 8, "servo_0, servo_0 rotar a un grado" y "obtener valor de angle_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 creación de código para el controlador del proyecto. Los bloques de código de 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. La conexión del 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 M5Stack core ESP32 GPIO13.

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 los pines del arnés de puente de cables eléctricos insertados en el conector hembra negro de tres pines del servomotor.

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

El prototipo completo del controlador de servomotor basado en potenciómetro de núcleo M5Stack se muestra en la Figura 11.

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 de núcleo 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˚–180˚, la pantalla LCD TFT permitirá marcar dichos ángulos con el potenciómetro y mostrarlos en consecuencia. Se ha proporcionado un breve videoclip para mostrar el controlador del servomotor en funcionamiento. Para ver el prototipo del controlador de servomotor en acción, puede ver el video aquí, o puede verlo a continuación.

El aspecto intencional de este proyecto fue ilustrar un enfoque único e innovador para usar 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 fácilmente prototipos de una variedad de dispositivos CPS utilizando componentes y unidades electrónicos estándar. 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 tales como automatización, robótica, hogares inteligentes y arenas 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.
COMPARTIR