Rueda libre invertido péndulo Control (4 / 7 paso)

Paso 4: RTOS gratis

Para poder ejecutar todas las tareas necesarias en tiempo real, FreeRTOS fue utilizado. FreeRTOS es un sistema operativo de tiempo Real, que significa que responderá a los eventos dentro de un período predecible de tiempo. Esto es importante porque permite que el sistema sea predecible. El código fue diseñado para tener cuatro tareas que siguen:

  • Lectura de la UART
  • Lectura de ESP8266 WiFi módulo
  • Lectura de la IMU MPU-6050
  • Ejecutar una consola de línea de comandos

Lectura de la UART

Esto fue una tarea sencilla que encuestados el UART para nuevos personajes. Cuando encontraron a un nuevo personaje, el personaje se coloca en una cola, que fue leída por la tarea de consola de línea de comandos. Esto podría se han implementado utilizando interrupciones de la UART, pero votación era simple, trabajado, y haciendo esta tarea la prioridad más baja, sólo fue permitido correr cuando no había nada más que hacer. Esto significa que no estaba desperdiciando ciclos de CPU el UART de la interrogación cuando podrían hacer otras cosas. La otra preocupación con el UART de la votación fue si personajes venían demasiado rápido. En nuestra configuración, hemos consultados el UART para nuevos personajes cada 10 ms, que es significativamente más rápido que cualquier humano puede escribir. Esto puede ser problemático si la consola UART debía ser ejecutado desde un script de ordenador, pero decidimos que la sencillez del módulo compensó esa característica.

Lectura de ESP8266 WiFi módulo

Como parte de este proyecto hemos querido también comunicación inalámbrica. Después de todo, sería lamentable si el cubo es necesario para conectarse a un ordenador. Esto fue lograda usando un ESP8266, un módulo de WiFi pequeña, fácil de usar disponible en muchos diferentes. El ESP8266 se comunica a la Junta de Zynq también mediante una interfaz UART, que hizo necesario escribir otro conductor UART. Para este controlador UART, necesitamos leer en muchos personajes a la vez, que significó que las interrupciones fueron requeridas. La era de controlador de interrupción llamado cada vez que un personaje se leídas por el UART y agrega los datos a una cola. La cola es luego leída por la tarea de ESP8266, que decide qué hacer con el personaje.

La tarea fue compuesta de una máquina grande del estado para la inicialización del módulo y leer datos de entrada. Cuando la tarea recibe los paquetes desde el módulo les envió a la misma cola que fue utilizada por el módulo UART, que fue leído por la tarea de la consola. Esto permite que los mismos comandos de consola que se utilizará por tanto un operador conectado físicamente al sistema o por WiFi. Este método también permite la reutilización de código y mantiene el código base más organizado.

Lectura de la IMU MPU-6050

IMU-6050 es una IMU 6 ejes compuesto de un acelerómetro de 3 ejes y un giroscopio de 3 ejes. Esto permite detección de ángulo y velocidad de rotación del sistema, que son importante para el algoritmo de control. Recibiendo datos desde el sensor era sencillo. El sensor se comunica a través de I2C con una dirección de 0x68. Antes de leer los datos de acelerómetro y giroscopio, el sensor debe tomarse del modo de sueño escribiendo 0 a dirección 0x6B, el registro de gestión de energía. A partir de ahí, las lecturas de acelerómetro y giroscopio crudas pueden leerse a partir en dirección 0x3B. Consulte la hoja de datos y registro de ruta para una funcionalidad completa.

Cuando comenzamos a jugar con el sensor, nos dimos cuenta de que los datos en bruto no eran precisos además de ser ruidosos. Utilizamos dos técnicas diferentes para resolver estos problemas. Después de mirar los datos, nos dimos cuenta de que la IMU parece tener un desplazamiento de las lecturas correctas. Para resolver este problema, colocamos la IMU en una tabla, donde sabíamos que la orientación de cada uno de los ejes del acelerómetro. Luego tuvo un promedio de 5 mediciones de la IMU. Luego tomamos la orientación conocida y restar de la aceleración nos dio. El resultado fue un vector de desplazamiento que se resta de cada IMU de lectura. Esto aumentó considerablemente la precisión del sistema. Para resolver el problema del ruido se utilizó un simple punto 5 con un promedio de filtro. En lugar de devolver cada IMU leyendo, almacenar 5 lecturas y tomar la media de cada valor. Esto ayudó a eliminar un poco del ruido que estábamos viendo desde el sensor.

Desde aquí esperábamos enviar esta información a la FPGA, que funcionaría el algoritmo de control. Por desgracia, nos estaban teniendo dificultades en implementar el algoritmo de control en Verilog y decidió implementar en C. Debido a esto, una vez una IMU válida lectura fue tomada, la tarea RTOS entonces calcular la velocidad del motor es necesaria y enviar al motor mediante PWM bloque de generación. Mientras que esto hace la aplicación más simple, habría estado bien ejecutar los controles dentro de la FPGA lo que creemos que habría mejorado el bucle de control.

Lectura de una consola de línea de comandos

La consola de línea de comandos fue responsable de enviar comandos de nivel superiores y la información, como las lecturas de la IMU del sistema de votación. La consola de línea de comandos funcionó como su propio trabajo y toma de datos del UART y el ESP8266. Esto permitió que la consola para funcionar directamente desde un ordenador o una red inalámbrica. La tarea bloqueada en una cola de FreeRTOS hasta que hubo datos disponibles. La tarea entonces funciona como una máquina de estado, en un nombre de comando y los datos. Si el comando es válido entonces se ejecuta el código asociado y esperar otro comando. Esto permitió comandos flexibles y fue útil para depurar y ordenar el sistema.

Artículos Relacionados

Otro más fácil invertido péndulo Robot

Otro más fácil invertido péndulo Robot

Se trata de una versión mejorada de mi anterior instructivo titulado "Un Simple y muy fácil invertido péndulo equilibrio Robot". Existen cuatro ventajas en esta versión.Más fácil conseguir un materialMenos materiales necesariosPrograma sencillo
Arreglar su bicicleta. Sus cojinetes con grasa y cambiar la rueda libre.

Arreglar su bicicleta. Sus cojinetes con grasa y cambiar la rueda libre.

Mayoría de las personas no se dan cuenta esto, pero la bici necesita mantenimiento. Sus cojinetes de eje debe ser limpiado y reembalar con grasa cada 500 millas (100 en una bicicleta de montaña).Este instructable muestra cómo vuelva sus cojinetes de
Antigua bicicleta rueda libre limpieza

Antigua bicicleta rueda libre limpieza

Hi tengo una vieja bici que necesitan algunos tlc mientras que intentando desmontar mi cassete desmontar la rueda libre no tiene duro tiene gente hacer hacia fuera a ser así que decidí compartir cómo desarmar y limpiar la rueda libre (este modelo vie
Motor de BIGmotor de 3kw, abandonos de 147 mm para freno de disco y solo rueda libre

Motor de BIGmotor de 3kw, abandonos de 147 mm para freno de disco y solo rueda libre

datos:Voltaje del motor: 60v, 72v, 84v, 96vWattsage: 2kw, 3kwVelocidad: 70kph - 100 km/hAbandono: 147 mmFreno: freno de discoPiñón: rueda libre solo. Si tu moto tiene suficiente espacio para 6 engranajes o 7 engranajes de rueda libre, usted puede ele
Invertido péndulo Robot usando una rueda de reacción

Invertido péndulo Robot usando una rueda de reacción

Propósito de este proyecto es construir un robot capaz de equilibrar a sí mismo en una esquina de una placa cuadrada mediante el uso de una rueda de reacción atada medio de la Junta. El MPU6050 toma el ángulo actual del Consejo con respecto al eje ve
Reconstrucción de Scooter de 4 ruedas con una barra de Control

Reconstrucción de Scooter de 4 ruedas con una barra de Control

Material:1. un cometa patín2. 6" tubería de galvanizado, soldadura en un pedestal3. una bola de Nylon (robaron de mi perro)La barra de Control es control y gire.
Rueda libre

Rueda libre

Se trata de una rueda de cartón con un mecanismo interno de la bobina.  Rodar la rueda--release y se volverá hacia su posición original.Paso 1: Materiales y cómo funcionaEsto requiere cartulina, pegamento, dos pesos de pesca (3 onzas), bandas de goma
Un péndulo invertido Simple y muy fácil equilibrar Robot

Un péndulo invertido Simple y muy fácil equilibrar Robot

Vamos a hacer un simple robot equilibrio invertido y operar él.Usted necesita solamente medio día hacerlo, si tienes un arduino y algunos materiales.[un vídeo de un robot que haría]Introducción:Después de unos pocos con arduino, he pensado de hacer u
Restauración de piezas de aviones antiguos (rueda de control)

Restauración de piezas de aviones antiguos (rueda de control)

Hola a todos los amantes de aeronaves y la restauración.Mi nombre es Greg, y este es mi primer instructable.Trabajo en una yarda del salvamento de aeronaves. Todo el que trabaja aquí ama aeroplanos y el dueño tiene varios. Que estoy enamorado es un j
Reciclado de basura electrónica coche de Control remoto

Reciclado de basura electrónica coche de Control remoto

Estamos haciendo estos bricolaje kits de material reciclados. Son comoen el kit kits fabricante reciclados que son divertidos proyectos que hacen las personas que generalmente tienen tecnología y diodos emisores de luz (LEDs). Infórmate en www.gejcut
Silla de ruedas controlada por el cerebro

Silla de ruedas controlada por el cerebro

Hola!  Muchas personas han escrito diciendo que están construyendo una silla de ruedas de Brain-Controlled, y eso es genial!  Esperamos poder ayudar a que conseguir a través de las partes duras, pero algunos de ustedes no necesitan alguna ayuda (tal
El control de un cerrojo electrónico Schlage con un arduino!

El control de un cerrojo electrónico Schlage con un arduino!

Este instructivo le guiará a través del proceso de desmantelamiento y hacking un cerrojo electrónico Schlage para controlar con un arduino.Paso 1: Comprar la cerradura y descomprimirlo yo tengo la mía a la venta por $99 en Lowe.Saque de la caja y ech
Juguetes de control remoto coche (DIY)

Juguetes de control remoto coche (DIY)

Hola a todos, en este momento voy a compartir cómo hacer juguetes de control remoto coche por ti mismo. Para aquellos de ustedes que necesitan una referencia como material didáctico o una afición, puedes intentar en homeIt muy fácil no requiere ningú
Bicicleta funcionado vehículo de 4 ruedas (DiffBikeDorli)

Bicicleta funcionado vehículo de 4 ruedas (DiffBikeDorli)

Esto aquí es un vehículo operado de bicicleta para dos personas, en mayor escala, también llamada bicicleta de cerveza. Los ciclistas se enfrentan a izquierda. Manejo se realiza con una manija de manejo de bicicleta. De frenado se realiza presionando