Tabla de contenido:

Guino: Tablero para su Arduino: 4 pasos (con imágenes)
Guino: Tablero para su Arduino: 4 pasos (con imágenes)

Video: Guino: Tablero para su Arduino: 4 pasos (con imágenes)

Video: Guino: Tablero para su Arduino: 4 pasos (con imágenes)
Video: ARDUINO: QUÉ ES, CÓMO FUNCIONA y PARA QUÉ se puede UTILIZAR 2024, Junio
Anonim
Guino: panel de control para su Arduino
Guino: panel de control para su Arduino
Guino: tablero para su Arduino
Guino: tablero para su Arduino
Guino: tablero para su Arduino
Guino: tablero para su Arduino
Guino: tablero para su Arduino
Guino: tablero para su Arduino

Este proyecto es parte de los experimentos realizados mientras realizaba un artista en residencia en Instructables. Puedes ver los otros proyectos aquí. Puede ser una tarea complicada depurar y visualizar datos en tiempo real en la placa Arduino. Por lo general, está atascado con la salida en serie estándar, ya que a medida que aumenta la complejidad de su código Arduino, esto hace que sea imposible comprender lo que realmente está sucediendo dentro de la placa. Para resolver esto, he creado una pequeña biblioteca que le permitirá crear su propia GUI personalizada para sus proyectos Arduino. Mire este video para obtener una demostración de un hola mundo básico con un potenciómetro y un diodo: A partir de ahora, el programa tiene las siguientes posibilidades y características: Diseño personalizado de su interfaz desde la placa Arduino Usted define qué controles deslizantes, gráficos y botones necesita para su interfaz. Haz esto en tu boceto de Arduino, lo que significa que el programa de interfaz gráfica de usuario actúa como esclavo del boceto. Toda la información se almacena en su tablero. Visualice y manipule datos en tiempo real Ya sea que esté haciendo un controlador de luz RGB o un brazo robótico, obtener una retroalimentación gráfica es crucial para comprender lo que está sucediendo dentro del tablero. Esto le permite comprender si es su hardware o el código lo que está causando el problema. Además, los controles deslizantes y los botones le permiten ajustar los parámetros individuales en tiempo real. De esta manera puede ver qué efecto tienen los diferentes umbrales en la interacción. Guardar los parámetros en la memoria de la placa. Cuando haya ajustado los parámetros, puede guardarlos en la EEProm de la placa. Los parámetros se cargarán automáticamente la próxima vez que encienda la placa, incluso si la computadora no está conectada. Use la misma aplicación para todos sus proyectos de Arduino. He creado toneladas de aplicaciones pequeñas para diferentes proyectos. Mi problema siempre es volver a encontrarlos un año después. Debido a que guardamos todo en el Arduino, solo necesito mantener una aplicación alrededor, Arduino configurará automáticamente la aplicación para el proyecto actual. Prototipo de la interfaz antes de encender el soldador Porque puede diseñar la interfaz gráfica de usuario como desee (dentro de un plazo razonable límites), puede crear un prototipo de la interfaz antes de crear una interfaz física. Esto también le permite dividir las tareas entre varias personas, p. Ej. una persona está trabajando en el hardware y otra en el código. Cuando haya creado la interfaz física, Guino se integrará perfectamente. Úselo como un tablero de pantalla completa Puede usarlo como un tablero de pantalla completa presionando F y presionando T para alternar la visibilidad del panel de configuración. Por la presente, solo presenta su interfaz personalizada para el mundo que lo rodea. Controle el color de fondo El color de fondo se puede controlar desde el Arduino, lo que le permite crear diferentes colores para diferentes bocetos. También se puede utilizar para hacer alertas cuando algo anda mal. Puede ser verde cuando todo está bien y rojo cuando algo está mal Rápido y delgado He tenido mucho cuidado al hacer que la huella en el Arduino sea lo más pequeña posible: solo almacena una cantidad mínima de datos en la memoria (concretamente un puntero lista de 100 artículos). Esta configuración se puede cambiar a más baja o más alta dependiendo de la cantidad de elementos de la interfaz gráfica de usuario que pretenda tener en su interfaz. Además, el sistema se basa en la biblioteca EasyTransfer que transfiere la información en forma binaria. Cada paquete consta de un byte para el comando, un byte para el artículo # y un número entero para el valor. Idealmente, todos sus datos deben normalizarse a un rango de enteros con signo de 16 bits. Esto significa un uso óptimo del puerto serie cuando se trabaja con números enteros (técnicamente usamos un poco de espacio extra para una suma de comprobación). Bueno para Instructables La GUI le permite crear Instructables que solo requieren los componentes principales. Los componentes adicionales como potenciómetros, etc. se pueden crear virtualmente a través de la interfaz gráfica de usuario. Limitaciones y planes futuros En este momento, la aplicación se ha compilado para la plataforma Mac OSX y Windows. Está escrito en Openframeworks, por lo que también debería poder ejecutarse en otras plataformas. Dado que la aplicación está utilizando el puerto serie, no podrá conectar otros programas al Arduino. Esto se solucionará en una versión futura que incluirá un Open Sound Control y un puente Midi. Créditos: Programación e idea de: Mads Hobye Biblioteca Easytransfer de: Bill Porter Biblioteca GUI de: Reza Ali

Paso 1: Comenzando

Empezando
Empezando
Empezando
Empezando
  • Descargue y descomprima el paquete GUINO.
  • Descarga Arduino
  • Copie la carpeta de bibliotecas en su carpeta de bibliotecas de Arduino (cómo hacerlo aquí)
  • Reinicie Arduino.
  • Abra uno de los ejemplos dentro de Arduino. (Menú: Archivos -> Ejemplos -> Guino -> elegir uno)
  • Si usa el ejemplo simple, haga un circuito como se ilustra arriba.
  • Sube el ejemplo.
  • Ejecute la aplicación Guino.
  • Elija el puerto serie (generalmente el último)
  • Presione conectar.

La fuente se puede encontrar aquí.

IMPORTANTE: Al usarlo en la plataforma Windows, debe usar un puerto com inferior o igual a 10. Si usa un puerto 10 o superior, el sistema no funcionará. Este es un error en openframeworks.

Paso 2: Cómo modificar el código

Cómo modificar el código
Cómo modificar el código

Para que la biblioteca funcione con su boceto, necesita un par de métodos adicionales. Los he descrito a continuación: gInit () aquí es donde define su diseño Este método define el diseño agregando componentes secuencialmente. Los componentes que se pueden cambiar (control deslizante, botones, etc.) tienen una variable adjunta. El & delante de la variable significa que no queremos pasar el valor en la variable, pero queremos pasar una referencia (puntero) a la variable. De esta manera, el sistema Guino los actualiza automáticamente cuando ocurren cambios en la GUI. void gInit () {gAddLabel ("DESLIZADORES", 1); gAddSpacer (1); gAddSlider (3, 200, "ANCHO" y ancho); gAddSlider (3, 200, "ALTURA" y altura); gAddSlider (0, 255, "BRILLO DEL LED", & ledLight); // Los deslizadores rotativos gAddLabel ("DESLIZADORES ROTATIVOS", 1); gAddSpacer (1); [………….] GAddColumn (); // Agrega más cosas aquí. gSetColor (r, g, b); // Establece el color de la interfaz gráfica de usuario. } GButtonPressed (int id) se llama cada vez que se presiona un botón. Generalmente, las variables se pueden actualizar automáticamente, pero en el caso de un botón, debe ser un evento del que usted se encargue. En este ejemplo, establecemos la variable de altura en 100 cuando alguien presiona el botón. void gButtonPressed (int id) {if (buttonId == id) {altura = 100; gUpdateValue (& altura); }} gItemUpdated (int id) Se llama cada vez que se actualiza un elemento. Por lo general, no es necesario usar esto ya que el sistema actualizará las variables automáticamente. Si desea reaccionar a un cambio, puede utilizarlo como tal. En este caso, estamos actualizando el color de fondo cada vez que se cambia uno de los 3 controles deslizantes giratorios. void gItemUpdated (int id) {if (rotaryRID = id || rotaryGID == id || rotaryBID == id) {gSetColor (r, g, b); }}

Paso 3: algunos consejos rápidos

Recuerde desconectarse cuando cargue un nuevo boceto. No puede tener el Guino en ejecución mientras carga un nuevo boceto a la placa Arduino, porque usan la misma conexión en serie. Esto requiere que se desconecte cada vez que cargue un nuevo boceto. Si usted (y lo hará) intenta cargar mientras tiene el Guino conectado, la placa puede entrar en un estado extraño en el que se está ejecutando, pero no del todo. En este punto, su única opción es reiniciar la placa presionando el botón de reinicio o desconectando y volviendo a conectar el cable USB. Errores conocidos A partir de ahora, el sistema está funcionando y es estable. Los siguientes son errores que uno debe tener en cuenta:

  • setMin no funciona en un MovingGraph (parece haber un error en la biblioteca de la GUI que debe corregirse). Entonces el mínimo permanece en cero.
  • La lista de serie se carga al iniciar el programa. El Arduino debe estar conectado antes de iniciar el programa. Actualizar la lista de serie mientras se ejecuta causa un evento incorrecto. Aún no se ha resuelto.
  • Jugar con la lista de serie: a veces hace que el programa se bloquee (el mismo evento de interfaz gráfica de usuario que la actualización, tiene que encontrar la fuente)
  • El fondo de los botones de alternancia se vuelve negro según la inicialización. Necesito configurar el fondo manualmente.
  • En algunas plataformas de Windows, el puerto com no aparece. Puede ser un problema con el controlador ftdi.

Paso 4: casos de uso

Casos de uso
Casos de uso

Si desea ver algunos casos de uso con la interfaz de Guino, vaya a este Instructable.

Recomendado: