Tabla de contenido:
- Paso 1: ¿Qué es la programación basada en eventos?
- Paso 2: Flujo lógico de la programación impulsada por eventos
- Paso 3: Creador de eventos
- Paso 4: Procesador de eventos
Video: Programación basada en eventos en FTC: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Este año, nuestro equipo ha trabajado mucho con el desarrollo de software basado en eventos para nuestro robot. Estos programas le han permitido al equipo desarrollar con precisión programas autónomos e incluso eventos de teleoperación repetibles. Como el trabajo de software que requiere es complejo, decidimos compartir el conocimiento que hemos adquirido sobre el desarrollo de código impulsado por eventos para robots FTC.
Paso 1: ¿Qué es la programación basada en eventos?
En términos generales, la programación impulsada por eventos, según Techopedia, es el desarrollo de programas que responden a la entrada del usuario. En este sentido, muchos programas se consideran impulsados por eventos, incluido el programa de teleoperación de un equipo, que se basa en las entradas de un controlador dirigido por humanos para realizar cualquier acción. Sin embargo, en términos del trabajo que ha estado haciendo nuestro equipo, la programación impulsada por eventos se trata de crear software a partir de varias entradas; en otras palabras, documentamos eventos basados en las entradas de controladores y sensores, luego podemos poner en cola estos eventos y usar el archivo para volver a ejecutar el evento registrado.
Este método de desarrollo de programas para nuestro robot tiene varias ventajas:
- Nos permite crear programas autónomos precisos. Dado que estamos creando el software en tiempo real durante el evento, los valores del sensor recopilados y utilizados serán muy precisos, ya que provienen directamente del evento original.
- Nos permite crear programas autónomos de forma rápida. Hacer programas autónomos es tan simple como registrar una serie de eventos y ajustar el evento según sea necesario.
- Nos permite crear procesos automáticos para tele-op. Para acciones repetidas en tele-op, la programación impulsada por eventos nos permite registrar estas acciones y asignar el evento a un botón durante los períodos de partidos controlados por el conductor. Estos eventos automatizados pueden ser influenciados por sensores para permitir su ejecución precisa.
Paso 2: Flujo lógico de la programación impulsada por eventos
A continuación se muestra el flujo lógico de un programa impulsado por eventos: el rojo representa la creación de un evento y el azul representa la convocatoria del evento. Para crear un evento, se toma una secuencia de entradas a través de la acción del robot y se registra como eventos; estos eventos se escriben en un archivo. Para llamar a un evento, ese archivo se lee y las entradas se envían a un procesador de eventos para convertir el código del archivo en acción de robot.
Paso 3: Creador de eventos
Los creadores de eventos se utilizan para documentar acciones o "eventos" basados en una variedad de sensores y botones. A medida que el robot realiza acciones en el campo, una clase creadora de eventos crea eventos para cada una de esas acciones en paralelo, haciendo referencia al evento clasificado en una clase de evento. Después de ser creado, el evento se coloca en una cola de eventos en la clase de eventos: el primer evento ocupa el primer lugar, luego el segundo evento ocupa el primer lugar y empuja hacia abajo cualquier evento debajo de él, y esto continúa hasta que el programa se detiene. Cuando se detiene el programa, los eventos se envían a un archivo de formato legible por humanos, como un archivo JSON. Este archivo se puede utilizar para mejorar mejor las rutinas autónomas.
El código de ejemplo anterior configura los parámetros para el evento, que en este caso es un turno usando un sensor IMU. Luego colocamos el evento en la cola de eventos. Finalmente, truncamos el evento, que esencialmente es restablecer el evento para que podamos usarlo para poner en cola eventos futuros.
Paso 4: Procesador de eventos
Las clases de eventos toman el archivo legible por humanos producido en la clase de creador de eventos y hacen lo que sea que cada evento en cola le diga llamando a los métodos descritos en una clase de procesador de eventos. La clase de procesador de eventos le dice al robot qué evento reproducir. Ya sea que se trate de un simple evento de "avance" o un evento complejo lleno de distancias, giros y disparos, el procesador reproducirá cualquier evento que se le dé. Este proceso es muy útil durante el modo autónomo, ya que un equipo puede registrar sensores y acciones de Tele-Op antes de coincidir, luego simplemente reproducir los eventos en autónomo. Este proceso se llama Memory Replay. Esto permite que un programa autónomo sea 100% configurable a través de un solo archivo. Una vez que se establece el creador y el procesador del evento, un equipo puede simplemente cambiar las rutinas autónomas a través del archivo legible por humanos.
El ejemplo anterior comienza primero verificando el archivo JSON en busca de un evento y luego verificando ese evento usando una declaración de caso para ver qué tipo de evento es, en este caso un turno usando un sensor IMU. Una vez que puede decir que es un turno usando el evento IMU, luego se ocupa de procesar el evento, que generalmente implica ejecutar el código del que proviene el evento usando variables del evento, pasado para replicar el evento que se hizo antes.
Recomendado:
Eventos de Google Calendar a ESP8266: 10 pasos
Eventos de Google Calendar a ESP8266: en este tutorial explicaré cómo importar datos de eventos de Google Calendar en Arduino IDE para la placa ESP8266. Importaré la hora de finalización y la hora de inicio de mi entrenamiento desde Google Calendar y las imprimiré en el monitor serial IDE de Arduino
Personalización del visualizador PulseSensor para desencadenar eventos (monitor anti-productividad): 8 pasos
Personalización de PulseSensor Visualizer para activar un evento (Monitor anti-productividad): en este instructivo, aprenderá cómo modificar el programa PulseSensor Visualizer para activar un evento en un navegador web. Llamo a este proyecto el Monitor de Anti Productividad porque si bien tenemos muchas herramientas que nos ayudan a monitorear nuestros signos vitales
Indicador de eventos / lámpara de color RPi-Zero IoT: 6 pasos (con imágenes)
Indicador de eventos / lámpara de color RPi-Zero IoT: Sin microcontrolador adicional, & No se requiere módulo adicional HAT, el RPi-Zero lo hace todo. ¡Mejor aún, use un RPi-Zero W! Ejemplo de uso: indicador de estado del servicio web (por ejemplo, seguimiento de DowJonesIndex), indicador de estado de eventos políticos o deportivos, luz de estado de ánimo
Programación Conducida Por El Acontecimiento En FTC: 4 Pasos
Programación Conducida Por El Acontecimiento En FTC: Este año, nuestro equipo ha hecho una gran cantidad de trabajo con el desarrollo de software dirigido por eventos para nuestro robot. Estos programas han permitido al equipo desarrollar con precisión programas autónomos e incluso eventos tele-OP rep
Interesante guía de programación de procesamiento para el diseñador: carga de medios y eventos: 13 pasos
Interesante guía de programación de procesamiento para el diseñador: carga de medios y eventos: el procesamiento se puede cargar una gran cantidad de datos externos, entre los cuales hay tres tipos de uso muy común. Son imagen, audio y video por separado. En este capítulo, vamos a hablar sobre cómo cargar audio y video en detalle, combinándolo con evento