Tabla de contenido:
- Paso 1: Piezas necesarias
- Paso 2: creación de la interfaz
- Paso 3: Recursos del proyecto
- Paso 4: Importación de imágenes
- Paso 5: hacer GUI
- Paso 6: Pantalla de bienvenida de la página 0
- Paso 7: Página 1 - Controlador de motor paso a paso
- Paso 8: Página 2 - Piano de motor paso a paso
- Paso 9: depuración
- Paso 10: CONFIGURACIÓN DE ARDUINO
- Paso 11: Finalización + Esquemas
Video: Reproducir canciones con motor paso a paso: 11 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Este proyecto trata sobre el diseño de una interfaz dinámica sencilla, que permitirá interactuar con un motor paso a paso de dos formas distintas.
La primera interfaz controlará la dirección y la velocidad del motor paso a paso mediante el uso de una GUI simple, que tiene flechas izquierda y derecha para la dirección, y flechas arriba y abajo para la velocidad.
La segunda interfaz será de naturaleza más musical, lo que permitirá reproducir canciones sencillas utilizando los sonidos rotacionales del motor paso a paso.
Paso 1: Piezas necesarias
- Arduino UNO (o placa compatible)
- Nextion Enhanced NX4827K043 de iTead Studio.
- Tarjeta de expansión Nextion para pantalla mejorada Nextion
- Tarjeta Micro SDHC
- Lector / grabador de tarjetas SD: para transferir archivos desde la computadora a la tarjeta SDHC
- Tablero de circuitos
- Motor paso a paso (42BYGHM809)
- Condensador de 100 uF Controlador de motor paso a paso Duinotech (L298) - [JayCar parte # XC4492].
- Fuente de alimentación externa, p. Ej. Fuente de alimentación de laboratorio regulada
Paso 2: creación de la interfaz
El primer paso es crear las interfaces en Nextion Editor en su PC.
Puede descargar Nextion Editor aquí.
Cargue el editor de Nextion y cree un nuevo proyecto. Cuando inicie un nuevo proyecto, debe asegurarse de seleccionar el dispositivo Nextion correcto entre las opciones disponibles. Aquí se utiliza el dispositivo “Nextion Enhanced NX4827K043”.
- Seleccione Archivo → Nuevo Seleccione un nombre para el proyecto y guárdelo en un lugar adecuado del disco duro.
-
Seleccione el dispositivo Nextion apropiado de las opciones disponibles
Mi dispositivo tiene un tamaño de pantalla de 480 x 272 píxeles
Paso 3: Recursos del proyecto
Debe importar todos los recursos (por ejemplo, imágenes y fuentes) a su proyecto y luego diseñar la interfaz para que se adapte a sus necesidades específicas.
Fuentes
No se utilizan fuentes específicas, pero si desea escribir algún texto en la pantalla, deberá generar una fuente en el editor Nextion.
A) Herramientas → Generador de fuentes
- Seleccione la altura de la fuente (por ejemplo, 16).
- Seleccione el tipo de código de fuente (por ejemplo, iso-8859-2)
- Seleccione si quiere que esté en negrita o no
- Elija la fuente que desea usar (por ejemplo, Arial)
- Elija el espaciado (por ejemplo, 0)
- Y finalmente dale a esta fuente un nombre único (por ejemplo, Arial_16)
- Presione el botón "Generar fuente" en la parte inferior derecha de la ventana.
Una vez que presione el botón Generar fuente, podrá guardar la fuente usando una extensión *.zi, y automáticamente le preguntará si desea "¿Agregar la fuente generada?" al proyecto. Si está satisfecho con la fuente y le gustaría usar esta fuente en su proyecto, seleccione "Sí", de lo contrario, seleccione "No" y comience de nuevo.
No puede agregar ningún texto a su proyecto hasta que haya importado o agregado una fuente. Todas las fuentes de su proyecto se mostrarán en la ventana de fuentes.
** Nota: Cada fuente se indexará automáticamente, por lo que puede hacer referencia a la fuente de forma programática si es necesario. De hecho, a todos los recursos que agrega a su proyecto se les asigna un número y se incrementa en uno por cada recurso agregado. Para algunos recursos, puede ver este número a la izquierda del artículo. P.ej. En la imagen de arriba, la fuente Courier tiene un índice de 0, mientras que la fuente Arial tiene un índice de 1. Si elimina un recurso, el número de índice puede cambiar para ese elemento.
Paso 4: Importación de imágenes
En el dispositivo Nextion Enhanced NX4827K043, cada imagen debe tener un tamaño de 480 x 272 píxeles.
Ahora importaremos las siguientes imágenes al editor de Nextion para que podamos usarlas en el proyecto. En la esquina inferior izquierda del editor Nextion se encuentra la ventana de recursos "Fuentes e imágenes":
- Seleccione la pestaña Imagen
- Luego seleccione el ícono "+"
- Esto abrirá un cuadro de diálogo que le permitirá seleccionar las imágenes para agregar al proyecto. Puede seleccionar más de una imagen para importar.
Para la pantalla de bienvenida, puede hacer cualquier imagen de acuerdo con su elección.
Y para la interfaz de piano y motor paso a paso, puede descargar la imagen de arriba.
Paso 5: hacer GUI
Cada recurso obtendrá una identificación según el orden en que se agregue, y cada recurso obtendrá automáticamente un nombre.
Puede cambiar el nombre del recurso u objeto, pero no puede editar el ID.
Se diseñarán tres páginas para cumplir con los criterios descritos anteriormente.
Para agregar una página, simplemente seleccione el icono "Agregar" de la "ventana de la página". Y siga agregando páginas hasta que tenga un total de 3 páginas (página 0, página 1 y página 2).
Paso 6: Pantalla de bienvenida de la página 0
Cuando se enciende el Nextion, la pantalla de inicio se mostrará durante 3 segundos antes de mostrar la pantalla del controlador de motor paso a paso. Usé los siguientes pasos para crear la pantalla de bienvenida.
Agregue la imagen de la pantalla de bienvenida a la página 0
- Seleccione "página 0" en la ventana de la página
- Seleccione "Imagen" en la ventana de la Caja de herramientas.
- Haga doble clic en el atributo "imagen" de la ventana Atributo.
- Seleccione la imagen de la pantalla de presentación de la lista
- Presione el botón OK
2. Agregue un temporizador a la página 0
- Seleccione Temporizador en la ventana Caja de herramientas
- Cambie el atributo "tim" de 400 a 3000 en la ventana Atributo
- Ingrese “página página1” en la sección de código de usuario del evento de temporizador (0) Este evento de temporizador hará que Nextion salte a la página1 después de 3 segundos.
Este evento de temporizador hará que Nextion salte a la página 1 después de 3 segundos.
Paso 7: Página 1 - Controlador de motor paso a paso
Esta página está diseñada para controlar la dirección y velocidad del motor paso a paso. Habrá dos botones para la dirección (izquierda y derecha) y dos botones para la velocidad (más rápido y más lento). Y un botón más para pasar a la página siguiente (es decir, la página del piano de motor paso a paso). Estos botones también se asignarán a la placa de expansión Nextion. Los botones táctiles de la placa de expansión proporcionarán un método alternativo para controlar el motor.
Agregue la imagen del controlador de motor paso a paso a la página 1
- Seleccione "página1" en la ventana de la página.
- Seleccione "Imagen" en la ventana de la Caja de herramientas.
- Haga doble clic en el atributo "imagen" de la ventana Atributo.
- Seleccione la imagen "Controlador de motor paso a paso" de la lista
- Presione el botón OK
2. Agregue Hotspots sobre cada botón en la imagen del controlador de motor paso a paso
a) Seleccione "Hotspot" en la ventana Toolbox
b) Arrastre y cambie el tamaño del Hotspot para que cubra el botón "Izquierda"
- Esta es el área que responderá a las pulsaciones del "botón izquierdo".
- Será transparente cuando se cargue en el tablero de Nextion.
c) Seleccione la pestaña "Evento de prensa táctil" en la ventana Evento
d) Desmarque la casilla de verificación "Enviar ID de componente"
e) Escriba el siguiente código en la sección "Código de usuario" de la ventana Evento:
imprimir "L"
f) Cambie el nombre del objeto del punto de acceso a "Izquierda" mediante el siguiente proceso:
- Seleccione objname en la ventana de atributos y cambie el texto de "m0" a "Left"
- No es obligatorio cambiar el nombre del objeto del punto de acceso; sin embargo, ayudará más adelante.
g) Repita los pasos 2a-2f para cada uno de los otros botones en el siguiente orden y según la tabla siguiente
- Derecha
- Más rápido
- Más lento
- próximo
El código ASCII decimal para la letra "L" es 76, por lo tanto, cuando la pantalla Nextion Enhanced envía la letra L al Arduino usando el comando print "L", el Arduino recibirá el número 76. Cuando se presiona el botón derecho, recibirá el número 82, y así sucesivamente. El botón "Siguiente" no transmite nada al Arduino, simplemente está ahí para saltar a la siguiente interfaz en la pantalla Nextion Enhanced, de ahí la razón por la que el código de usuario es diferente para ese botón.
3. Mapee los botones a la placa de expansión
a) Seleccione "página0" y luego "página1" en la ventana Página
b) Seleccione la pestaña "Preinicializar evento" de la ventana Evento
c) Ingrese el siguiente código en el campo "Código de usuario" de la pestaña Preinicializar evento:
- cfgpio 5, 1, izquierda
- cfgpio 2, 1, Derecha
- cfgpio 4, 1, más rápido
- cfgpio 3, 1, más lento
- cfgpio 1, 1, Siguiente
*** Tenga en cuenta: hay un espacio entre cfgpio y el número al lado, pero no hay otros espacios en cada línea. Si introduce espacios adicionales, no se compilará. Este código asigna los botones de la placa de expansión a los objetos del punto de acceso en la página 1. Por ejemplo, cuando se presiona el botón Izquierda (IO5) en la placa de expansión, simula las acciones o eventos asociados con el hotspot m0 / Izquierda. En este caso enviará un valor de "L" (76) al Arduino.
El número IO está marcado entre paréntesis en la placa de expansión.
Paso 8: Página 2 - Piano de motor paso a paso
Su interfaz estará diseñada para parecerse a un piano y me permitirá controlar el motor paso a paso de manera que produzca una nota en la misma tecla que la que presiono en la pantalla Nextion. El motor paso a paso producirá la nota girando a una frecuencia específica.
Agregue la imagen del piano con motor paso a paso a la página 2.
- Seleccione "página2" en la ventana de la página
- Seleccione "Imagen" en la ventana de la Caja de herramientas.
- Haga doble clic en el atributo "imagen" de la ventana Atributo.
- Seleccione la imagen "Stepper Motor Piano" de la lista
- Presione el botón OK
2. Agregue Hotspots sobre cada tecla en la imagen del piano de motor paso a paso
a) Seleccione "Hotspot" en la ventana Toolbox
b) Arrastre y cambie el tamaño del Hotspot para que cubra la tecla "A". Esta es el área que responderá a las pulsaciones de la tecla "A". Será transparente cuando se cargue en el tablero Nextion.
c) Seleccione la pestaña “Evento de prensa táctil” en la ventana Evento.
d) Escriba lo siguiente en la sección "Código de usuario"
imprimir 1
e) Repita los pasos 2a-2d para cada una de las otras teclas según la tabla siguiente.
** Cuando se presiona la tecla específica, la placa Nextion Enhanced transmitirá el número impreso, seguido de tres valores 0x00. Los valores finales se pueden ignorar.
3. El botón "Atrás" me permitirá volver a la interfaz anterior en el tablero Nextion Enhanced.
a) Cree un punto de acceso para el botón Atrás mediante el siguiente proceso:
- Seleccione Hotspot en la ventana Toolbox
- Mover / cambiar el tamaño del punto de acceso sobre el botón "Atrás"
b) Seleccione la ventana Evento.
c) Asegúrese de que la pestaña "Evento de prensa táctil" esté seleccionada
d) Escriba: page page1 en la sección Código de usuario
Paso 9: depuración
Lo bueno de Nextion Editor es que puede probar la funcionalidad de la interfaz antes de cargarla en la placa.
- Guarde el proyecto presionando el botón guardar en la barra de tareas
- Luego presione el botón de compilación
- Luego presione el botón de depuración.
Aparecerá una ventana del emulador de Nextion. Esta ventana debería responder de la misma manera que el módulo Nextion después de que el archivo Nextion se cargue en la placa. Este emulador es una excelente manera de probar su interfaz y asegurarse de que se vea y funcione como se espera. Una vez que estuve satisfecho con las interfaces, transferí el archivo Nextion compilado a una tarjeta SD:
- Presione el botón de compilación
- Archivo → Abrir carpeta de compilación
- Seleccione el archivo *.tft con el mismo nombre que el del proyecto.
- Cópialo en una tarjeta micro SDHC
- Inserte la tarjeta SDHC en la ranura para tarjetas SD en la pantalla Nextion
- Enciende la placa Nextion
Espere a que el archivo parpadee en la placa Nextion y debería ver un mensaje similar a este:
El siguiente paso es apagar la placa Nextion y quitar la tarjeta SDHC.
Paso 10: CONFIGURACIÓN DE ARDUINO
La pantalla Nextion Enhanced está lista y ahora es el turno de Arduino. El Arduino está programado para recibir mensajes en serie desde la pantalla Nextion Enhanced y controlar el motor paso a paso en función de las letras o números recibidos. Las letras o números únicos que se transmiten desde la placa Nextion permiten que Arduino comprenda qué botón se está presionando y utiliza esos números o letras para controlar el flujo de código para realizar acciones específicas del motor paso a paso.
La biblioteca SoftwareSerial se utiliza para habilitar la comunicación serial entre Arduino y la pantalla Nextion Enhanced. La biblioteca AccelStepper se utiliza para simplificar el proceso de control del motor paso a paso.
Configure una velocidad máxima y mínima para los motores y algunas teclas predefinidas. Es posible "sintonizar" el motor utilizando la primera interfaz de la pantalla Nextion. Puede hacer esto haciendo que el motor gire más rápido o más lento hasta llegar a la tecla deseada. Aquí, la aplicación "Tuner T1 Free" de la tienda de aplicaciones de iTunes se utiliza para identificar CUÁNDO el motor estaba produciendo una nota en clave. Cuando el motor estaba produciendo una nota específica, escribía la velocidad del motor paso a paso que estaba impresa en la ventana del monitor serial. Cada vez que la velocidad del motor aumenta o disminuye, el código Arduino imprime la velocidad en la ventana del monitor en serie. Luego utilizo estas velocidades para actualizar la matriz notes en el código Arduino. La matriz de notas contiene las velocidades del motor paso a paso que corresponden a las notas individuales del piano. La pantalla Nextion esencialmente envía el número de índice de la nota a tocar desde la matriz de notas en el Arduino, simplificando así el código requerido para hacer girar el motor a 16 velocidades diferentes.
Paso 11: Finalización + Esquemas
Con todas las placas apagadas, el siguiente paso es realizar todas las conexiones de hardware necesarias al Arduino. Hay dos secciones principales a considerar:
- El controlador y el motor del motor paso a paso
- El tablero mejorado Nextion.
Debe asegurarse de utilizar una fuente de alimentación externa para alimentar tanto el motor paso a paso como la placa Nextion Enhanced. La placa del controlador del motor paso a paso fue alimentada por Arduino sin ningún problema, pero el motor paso a paso real necesitará una fuente de alimentación externa. La placa Nextion Enhanced también necesita una fuente de alimentación externa porque requiere más corriente de la que Arduino puede proporcionar de forma segura.
Tome nota de la fuente de alimentación externa utilizada. Me aseguré de tener una fuente de alimentación lo suficientemente grande para manejar los requisitos de energía del proyecto y utilicé las hojas de datos relevantes para ayudarme a identificar esos requisitos. Si planea replicar este proyecto, asegúrese de tener en cuenta los requisitos de potencia específicos de su motor, su controlador de motor y su pantalla Nextion. El Arduino solo puede suministrar 400 mA de corriente desde el pin de 5 V. Con todo conectado, encendí la pantalla Nextion y luego encendí el Arduino. El motor paso a paso comienza a girar automáticamente. Usé la primera interfaz para cambiar la dirección y / o velocidad del motor. Tenga en cuenta las velocidades máxima y mínima configuradas en el código Arduino. Luego usé el botón Siguiente para saltar a la segunda interfaz en la pantalla Nextion Enhanced. La segunda interfaz parece un piano. Y cuando presiono una tecla en la pantalla del piano, el motor cambia de velocidad para coincidir con la nota que presioné.
Eso es todo, ahora has terminado.
Espero que te guste
Recomendado:
Motor paso a paso controlado por motor paso a paso sin microcontrolador: 6 pasos
¡Motor paso a paso controlado por motor paso a paso sin microcontrolador !: En este Instructable rápido, haremos un controlador de motor paso a paso simple usando un motor paso a paso. Este proyecto no requiere circuitos complejos ni un microcontrolador. Así que sin más preámbulos, ¡comencemos
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): 9 pasos (con imágenes)
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): En uno de mis Instructables anteriores, le mostré cómo controlar un motor paso a paso usando un motor paso a paso sin un microcontrolador. Fue un proyecto rápido y divertido, pero vino con dos problemas que se resolverán en este Instructable. Entonces, ingenio
Modelo de locomotora controlada por motor paso a paso - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)
Locomotora modelo controlada por motor paso a paso | Motor paso a paso como codificador rotatorio: en uno de los Instructables anteriores, aprendimos cómo usar un motor paso a paso como codificador rotatorio. En este proyecto, ahora usaremos ese motor paso a paso convertido en codificador rotatorio para controlar un modelo de locomotora usando un microcontrolador Arduino. Entonces, sin fu
Motor paso a paso controlado por motor - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)
Motor paso a paso controlado por motor paso a paso | Motor paso a paso como codificador rotatorio: ¿Tiene un par de motores paso a paso por ahí y quiere hacer algo? En este Instructable, usemos un motor paso a paso como codificador rotatorio para controlar la posición de otro motor paso a paso usando un microcontrolador Arduino. Así que sin más preámbulos, vamos a
Reproducir canciones (MP3) con Arduino usando PWM en el altavoz o transformador Flyback: 6 pasos (con imágenes)
Reproducir canciones (MP3) con Arduino usando PWM en altavoz o transformador Flyback: Hola chicos, este es mi primer instructivo, ¡espero que les guste! Básicamente, en este proyecto he utilizado la comunicación en serie entre mi Arduino y mi computadora portátil, para transmitir datos de música desde mi computadora portátil al Arduino. Y usando los TIMERS de Arduino t