Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32

En este artículo, exploraremos una emocionante forma de controlar un servomotor utilizando una interfaz de pantalla LCD con la placa de desarrollo STM32. Descubra cómo esta combinación poderosa puede ayudarlo a lograr un control preciso y eficiente de sus dispositivos. ¡Siga leyendo para descubrir todo lo que necesita saber sobre esta emocionante tecnología!

El objetivo de este proyecto es diseñar una interfaz de pantalla para controlar un servomotor. El ángulo o la posición del servo se cambia arrastrando o presionando el botón en la interfaz de pantalla LCD. La interfaz se basa en una pantalla táctil de 4,3 pulgadas y se programa con una placa de desarrollo STM32.

Contenido

Componentes necesarios

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Pantalla de serie STONE de 4,3 pulgadas

La pantalla serial es un tipo de pantalla que es controlada por el puerto serial. Esta pantalla ahorra mucho tiempo ya que no requiere programación y es perfecta para aquellos que usan microcontroladores en el diseño de la interfaz de usuario. Al usar esta pantalla, puede obtener algunos espacios comunes a través de configuraciones simples y no es necesario escribir el código para la implementación de la interfaz de usuario.

  • Stm32 placa de desarrollo (placa de desarrollo atomic f103)
Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Placa de desarrollo STM32
Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Servomotor TowerPro MG995

Diseño de la interfaz gráfica de usuario

En primer lugar, se diseña la interfaz de la pantalla del puerto serie. Puedes diseñar una imagen del mismo utilizando pintura o cualquier otra herramienta similar. Para cada efecto clave, se debe diseñar una imagen particular. Por ejemplo, aquí he diseñado imágenes de visualización separadas para el efecto de tecla separada:

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Imagen original de la pantalla

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
La imagen que se muestra después de presionar un botón

La imagen original se muestra cuando se enciende la pantalla. En otras palabras, es la imagen de visualización de primer plano. Mientras que la segunda imagen con la posición correspondiente se muestra cuando se presionan los botones de posición +ve o -ve.

Este proyecto se realiza utilizando conexiones mano a mano. La pantalla, la placa del microcontrolador y el motor paso a paso están conectados entre sí mediante cables de puente. Para que este proyecto sea más confiable, resistente y permanente, le sugiero que use una placa PCB hecha a medida de PCBWay. Proporcionan PCB de alta calidad a un precio muy bajo.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32

Para>

Paso 1: Descarga del software de diseño de GUI

Para diseñar la GUI, descargue este software gratuito de diseño de GUI desde el enlace que figura a continuación: https://www.stoneitech.com/support/download

Paso 2: crea un nuevo proyecto

Después de instalar el software, ábralo y cree un nuevo proyecto. Dado que la resolución de la pantalla de visualización es de 480×272 px, seleccione esta resolución en los detalles del proyecto. Quiero usar la pantalla horizontalmente, por lo que todas las demás opciones están configuradas de manera predeterminada.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Crear un nuevo proyecto

Paso 3: Agregue imágenes relevantes en el proyecto

Agregue la imagen diseñada que desea usar en la GUI. El nombre de la imagen debe comenzar con un número, aunque no existen requisitos especiales para el número especificado. El tamaño de la imagen debe ser consistente con la resolución de su pantalla, de lo contrario, generará un error.

Aquí he agregado las dos imágenes, la imagen de visualización predeterminada o de primer plano se denomina número 2. Para esto, cambié la configuración de la pantalla dentro de la visualización de la imagen de inicio. En esta configuración, la imagen de la pantalla de inicio corresponde a la imagen número 2.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Añadir la imagen diseñada

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Modificar la numeración de la página de inicio

Paso 4: Agregar imágenes de iconos

Si su proyecto tiene diferentes tipos de archivos de imagen, debe crear varias carpetas .ico para almacenar diferentes tipos de imágenes de iconos.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Agregar iconos

Paso 5: agregue un área de botón táctil

En el lado derecho de la interfaz, hay un área de teclas de acceso rápido donde debe modificar la dirección de almacenamiento y el método de ajuste. Para la misma operación o función del lado -ve, la dirección de almacenamiento se hace igual que la dirección +.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Adición de un área de pulsación de teclas

Paso 6: agregue un control deslizante

Bajo la columna de configuración de variablesSelecciona el escala deslizante. En la columna de la derecha, modifique el archivo del control deslizante y las propiedades del icono del control deslizante que desea mostrar sobre la imagen.

Ajuste el tamaño del control deslizante de escala para que se ajuste a su valor de escala. Pero tenga en cuenta que el icono puede superar la escala inferior. Por lo tanto, puede controlar el control de escala del control deslizante ajustando el tamaño del control de escala del control deslizante. O ajuste el desplazamiento de la coordenada X para alinearlo, intente generar un proyecto para depurarlo y ver si la posición es adecuada.

Hay otras propiedades del control de escala móvil que deben modificarse: la dirección almacenada corresponde a la dirección +ve y -ve y la escala mínima y máxima correspondiente a la barra de escala en la parte inferior.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Agregar control deslizante

Paso 7: Agregue el área de ajuste de arrastrar y soltar

En el barra de herramientas de configuración táctil menú desplegable, seleccione el ajuste de arrastre para colocar sobre la imagen. Ahora ajústalo al tamaño adecuado y modifica sus propiedades. La dirección de almacenamiento sigue siendo coherente con lo anterior, pero es necesario ajustar el rango de valores máximo y mínimo.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Agregue arrastre para ajustar el área táctil

Paso 8: agregar variables de datos

Agregue una variable de datos y los datos deben almacenarse en la misma dirección que arriba. Esto es principalmente para mostrar los datos y para observar mejor los cambios en los datos.

Después de completar este paso, puede descargar o ejecutar la prueba de simulación. Si no hay problemas con el diseño de la pantalla en serie, pase a escribir el programa del microcontrolador.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Interfaz gráfica de usuario terminada

Programa de escritura para el microcontrolador STM32

Usé el software STM32cube IDE para escribir el programa para la placa. Pero antes de eso, se debe seleccionar la opción de configuración para STM32, y daré una breve descripción de la configuración aquí.

  • Abierto canal tim2 ch1 Salida de onda PWM. El ajuste mínimo es 1us para la precisión. El ajuste del servo es de 0° a 270° correspondiente al pulso de 0,5 ms a 2,5 ms. Una vez completada la configuración, seleccione la frecuencia de salida de la onda PWM de 100K.
Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Configuración de salida PWM

  • Abra el puerto serie 1. Aquí usé el DMA, principalmente una cuestión de hábito, existe esta configuración más avanzada sobre el uso del mismo. Acostumbrarse al futuro del proyecto también ayuda, ¡ah! Las imágenes que se muestran a continuación son capturas de pantalla de la información de configuración. Y después de completar la configuración, puede generar código.
Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Configuración del puerto serie

Una vez completada la configuración, debe agregar el código. Todo lo que tiene que hacer es agregar la matriz y el puerto serie recibe los datos del indicador de finalización.

Aquí agregamos nuestro código para activar la interrupción inactiva y recibir DMA antes de while(1).

Agregar el controlador de código posterior a la recepción

a) En salida PWM, interrupción inactiva, código de recepción DMA

HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);

HAL_UART_Receive_DMA(&huart1,buff,20);

__HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE);

b) Agregue su propio código de recepción a la interrupción de recepción del puerto serie 1 y actualice los bits de bandera.

if(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE)==SET)

{

__HAL_UART_CLEAR_IDLEFLAG(&huart1);

UART_CLEAR_IDLEFLAG(&huart1); HAL_UART_DMAStop(&huart1);




//HAL_UART_Transmit_DMA(&huart1,rx_buff,temp);

HAL_UART_Receive_DMA(&huart1,buff,20); //HAL_UART_Receive_DMA(&huart1,buff,20);

USART1_RX_STA=1;//receive completion flag

}

c) En un proyecto regular, la función de procesamiento del puerto serie debe manejarse por separado. Pero no lo hacemos aquí porque nuestra función es relativamente simple.

if(USART1_RX_STA==1)

{

USART1_RX_STA=0;

if ((buff[0]==0xa5)&&(buff[1]==0x5a))

{

data=(uint16_t)(buff[7]<<8|buff[8])*15/2+500;

__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,data);//Modify the PWM duty cycle.

}

memset(buff,0,20);

}

Después de completar todo el proyecto, compile y descargue el código a la placa. Cabe señalar que las conexiones de comunicación de la pantalla son de tipo 232 y TTL. Mi placa no está conectada al 232, por lo que está conectada directamente al puerto IO. Aquí en la pantalla, hay juntas de soldadura J17 que deben soldarse para abrirlas.

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Selección TTL de juntas de soldadura

Una vez realizadas las conexiones, enciende el tablero y ¡empieza a jugar!

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
GUI mostrada al encender la placa

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Arrastre el icono para mover el servo

Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32
Efecto de la pulsación de tecla

A través del motor +ve/-ve o arrastrando el control deslizante, los datos del cuadro de visualización de datos se cambian, mientras que el servo también seguirá la rotación de su ángulo.

Y el proyecto está completo. Todo el diseño de la interfaz de usuario se basa en la imagen. El desarrollo de MCU fue relativamente simple ya que se usa el puerto serie, lo que reduce en gran medida la carga de los desarrolladores.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded





Preguntas frecuentes sobre Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32

Preguntas frecuentes sobre Control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32

1. ¿Qué es un servomotor?

Un servomotor es un dispositivo electromecánico que se utiliza para controlar con precisión la posición angular de un eje. [Fuente: Wikipedia]

2. ¿Qué es una interfaz de pantalla LCD?

Una interfaz de pantalla LCD es una conexión física entre la placa de desarrollo STM32 y una pantalla de cristal líquido (LCD) para mostrar información de manera visual. [Fuente: Wikipedia]

3. ¿Cuál es el objetivo del control de servomotor mediante interfaz de pantalla LCD con placa de desarrollo STM32?

El objetivo es poder controlar remotamente la posición y movimiento de un servomotor a través de una interfaz de pantalla LCD utilizando una placa de desarrollo STM32. Esto puede ser útil en aplicaciones de robótica, automatización industrial y otros proyectos electrónicos.

4. ¿Cuál es la importancia de la placa de desarrollo STM32 en este contexto?

La placa de desarrollo STM32 es un microcontrolador altamente versátil y potente que proporciona una plataforma para el desarrollo de aplicaciones de control y automatización.

5. ¿Cómo se realiza la conexión entre el servomotor, la pantalla LCD y la placa STM32?

La conexión física se realiza mediante la interconexión de cables entre los pines correspondientes de cada componente. Se deben seguir diagramas de conexión y especificaciones proporcionados por el fabricante del servomotor, la pantalla LCD y la placa STM32.

6. ¿Es necesario programar la placa STM32 para controlar el servomotor a través de la pantalla LCD?

Sí, es necesario programar la placa STM32 para enviar las señales adecuadas al servomotor y controlar su posición. Esto se logra utilizando un lenguaje de programación como C o C++ y el entorno de desarrollo recomendado por STMicroelectronics para la placa STM32.

7. ¿Existen ejemplos de código y tutoriales disponibles para ayudar en la programación del control de servomotor con interfaz de pantalla LCD en la placa STM32?

Sí, la comunidad de desarrolladores y STMicroelectronics proporcionan numerosos ejemplos de código y tutoriales en línea para ayudar a los usuarios a programar y utilizar la funcionalidad de control de servomotor mediante interfaz de pantalla LCD en la placa STM32. Estos recursos ofrecen una gran base para comenzar y aprender.

8. ¿Cuáles son las ventajas de utilizar el control de servomotor con interfaz de pantalla LCD en la placa de desarrollo STM32?

Las ventajas incluyen la capacidad de controlar de manera precisa y eficiente la posición y movimientos del servomotor, la facilidad de uso y programación de la placa STM32, así como la posibilidad de integrar la funcionalidad con otros componentes y sensores para crear sistemas más complejos.

9. ¿Dónde puedo obtener una placa de desarrollo STM32 y los componentes necesarios para implementar el control de servomotor con interfaz de pantalla LCD?

Las placas de desarrollo STM32 y los componentes necesarios se pueden obtener en tiendas de electrónica especializadas, distribuidores en línea y directamente a través del sitio web oficial de STMicroelectronics.

10. ¿Qué nivel de conocimiento requerido se necesita para implementar el control de servomotor mediante interfaz de pantalla LCD en la placa STM32?

Se recomienda tener conocimientos básicos en programación y electrónica. Sin embargo, hay recursos disponibles para ayudar a principiantes a familiarizarse con el control de servomotor mediante interfaz de pantalla LCD en la placa STM32. ¡No dudes en empezar y explorar!

Artículo escrito por un chatbot de OpenAI. Para más información sobre los temas tratados, consulta las fuentes en Wikipedia.


Deja un comentario