FPGA robótica visión para nadie (4 / 5 paso)

Paso 4: Razon del código VHDL

Código VHDL no es como el código de C. Realmente el VHDL es un lenguaje de descripción, con este lenguaje se puede "describir" cómo debe comportarse el chip FPGA. Es básicamente como un esquema de dibujo pero ahora lo haces en palabras.

Nivel superior

Echa un vistazo a la imagen adjunta a este paso, esto se llama nivel. En el nivel superior se pueden ver todos los bloques de código individuales y describiré brevemente cuáles son sus funciones.

POWER_ON_RESET_CONTROLLER

Este bloque se encarga de que todos los demás se reinician correctamente cuando se aplica la alimentación al sistema. Lo hace por una cantidad de tiempo usando una máquina de estado a la espera y la espera se hace tiene salida NOT_POR_RESET bajo. Esta señal está conectada a todos los otros bloqueos y los restablece / les impide iniciar hasta que este reset pulso es largo (va a alto nivel).

Blinkled

A mi forma de Hola mundo, usar esto para dejar mi Consejo indicar su vivo (parpadea el LED)

clock_divider

Se divide el reloj por 2 y esto a la OV7670 porque el OV7670 no puede utilizar lo 50MHz de la tarjeta fpga (demasiado alta).

datasplitter

Actúa como un amortiguador de cable bidireccional con 3state opción. No todavía, sólo se escribe en el TFT pero es posible también leer de los registros TFT.

ili9325_16bitcameradata

Este bloque primero configura el TFT se conecta a (a la derecha después de que termine el power RESET). Por ejemplo establece el TFT en modo RGB565. Después de eso él entra en modo de escritura y todo lo que hace es actualizar constantemente la vista TFT (mostrando imágenes de la cámara o imágenes tresholded. Cuando este bloque es configurarlo señales al siguiente bloque que puede comenzarla configuración:

OV7670_sccb_initialisation

Este bloque tuvo mucho trabajo. La cámara Omnivision (OV7670) debe configurarse después de encender. Por ejemplo necesitamos ajustar su salida a RGB565 modo (es decir, el factor R de un píxel es de 5 bits, G es 6 y B es 5 otra vez). Elegí esta para hacerla coincidir con mi TFT ILI9325 que tiene la misma característica. SCCB es muy similar a I2C (I-Plaza-C, protocolo inventado por Philips hace mucho tiempo). Pero tiene sus diferencias que me llevaron muchas muchas horas a hacer bien!

image_tresholding

Por último pero no menos importante. Es donde ocurre la magia real. El bloque obtiene imágenes desde la cámara OV7670 (impulsada por HREF y VSYNC líneas la cámara juntos indican un inicio + extremo del bastidor (imagen)). Dentro del bloque de la comparación para cada pixel se realiza (en tiempo real!) con las características de la gama de píxeles que buscamos (en este caso brillantes píxeles). SW1 es elegir qué ver en el TFT: imágenes de una cámara normal o las imágenes de tresholded. El bloque de image_treshold también envía las líneas VSYNC y HREF de la cámara al bloque ili9325 que es necesaria para manejar y sincronizar el TFT para mostrar las imágenes.

Así que esto era la descripción básica de los bloques, aquellos que quieren más detalles invito a echar un vistazo en el codefiles VHDL para estos bloques.

Artículos Relacionados

Uso de LEGO® WeDo educación™ kit de robótica con Scratch para pcDuino

Uso de LEGO® WeDo educación™ kit de robótica con Scratch para pcDuino

En este post explicamos cómo aplicar el parche a la versión 2014-07-21 de pcDuino3 imagen para utilizar el kit de robótica LEGO® WeDo educación™ con cero para pcDuino.El controlador se puede descargar desde https://s3.amazonaws.com/pcduino/Images/scr
Conectar las ruedas robóticas a su viejo ordenador portátil

Conectar las ruedas robóticas a su viejo ordenador portátil

¿tienes un portátil antiguo a poner alrededor, mientras utiliza su brillante uno nuevo para jugar WoW y navegar por la interweb? ¿Has pensado "Me gustaría algunas ruedas del perno en esa viejo portátil y llevarlo alrededor"? Tal vez solo desea u
Guía de robótica

Guía de robótica

Tal vez no somos conscientes, pero la robótica es una de las muchas ciencias, que son más importantes en desarrollo del mundo de hoy. Para todo aquel que esté interesado en es muy importante conocer su concepto, historia, términos, etc.. Precios de h
Cómo llegar en robótica, programación, Arduino electrónica

Cómo llegar en robótica, programación, Arduino electrónica

Integrar todos los campos STEM de robótica y hacer siempre cada cabrito loco. Puede ayudar a los niños a obtener experiencia práctica en mecánica, electrónica, Ciencias de sistema y equipo de control.Sin embargo, todos los robots en el mercado parece
Cómo construir una mano robótica con retroalimentación háptica

Cómo construir una mano robótica con retroalimentación háptica

para Feria de Ciencias este año, sentí como algo en vez de hacer un experimento. Todo lo que necesitaba hacer era mirar alrededor Instructables para una idea de proyecto. Me inspiré por mano robótica de njkl44 desde que recuerda mucho de cosas de pel
Adaptador de 90 grados para VexPro VersaPlanetary caja de engranajes para la robótica primera

Adaptador de 90 grados para VexPro VersaPlanetary caja de engranajes para la robótica primera

El equipo de robótica de las abejas asesinas desarrolló esta solución en el 2015 y ahora nos gustaría compartir con todos de la primera comunidad de robótica.El sistema de caja de engranajes de VersaPlanetary VexPro es uno de los componentes más flex
Prótesis/robótica para imprimir como un ensamblado unidad sin soportes manuales

Prótesis/robótica para imprimir como un ensamblado unidad sin soportes manuales

quizás hayas escuchado sobre las manos protésicas impreso en 3D creadas por Richard Van como Ivan Owen para cerca de 100 niños hasta ahora. Es una gran cosa que han estado haciendo. También hay una versión de "Encaje a presión-junto Robohand", h
Emulador de teclado MakeyMakey para robótica primera

Emulador de teclado MakeyMakey para robótica primera

Como mencioné en un anterior Instructable, obtuvimos el MakeyMakey kits para la noche de enero Instructables construir. Mal tiempo obligó la cancelación de nuestros primeros intentos para celebrar una noche de construir y amenazó el tercero. Consegui
Guía completa de Motor para la robótica

Guía completa de Motor para la robótica

Robot es un dispositivo electromecánico que es capaz de reaccionar de alguna manera a su entorno y toma decisiones autónomas o acciones para lograr una tarea específica.Entre desarrolla dispositivos mecánicos provocados por el hombre que puede mover
Barato, fácil de robótica para el programador no

Barato, fácil de robótica para el programador no

Hey robótica-programador-quiere a abejas! ¿Cansado de tratar de hacen varios ambientes sólo para encontrar que hay una curva de aprendizaje entre usted y esos robot fresco trucos a tus amigos geek? ¿Los kits comerciales son demasiado caros? Entonces
CupBots - 3D plataforma robótica impresa para Arduino y frambuesa Pi

CupBots - 3D plataforma robótica impresa para Arduino y frambuesa Pi

Aquí es un proyecto de robótica de gran fin de semana para emprender con amigos o gente en su espacio local del fabricante. Usted necesitará una impresora 3D práctico 3D impresión los archivos STL adjuntan como parte de los pasos a continuación y una
Robots para el cambio: un primer robótica equipo de recaudación de fondos

Robots para el cambio: un primer robótica equipo de recaudación de fondos

He sido realmente afortunado de trabajar con la gente joven impresionante de equipo conducto cinta #2845, primer equipo de la FTC de la robótica de Florida. No sólo son los niños grandes, pero tienen una red impresionante de adultos detrás de ellos.
Una pinza robótica suave para el MeArm

Una pinza robótica suave para el MeArm

Suave robótica es un campo joven de la robótica que hace robots de materiales blandos. Aunque muchos proyectos de robótica suave hacia fuera allí están completamente suaves, suave robótica tendrá su mayor impacto cuando se combinan con robots duros.
Pnuematics para la robótica

Pnuematics para la robótica

Se trata de un Instructable sobre Pnuematics. El medio queutiliza aire comprimido. Como el aire a presión en unneumático de la bicicleta o en coche. Una bomba (compresor de aire) proporciona lapresión de aire para mover un cilindro de aire. Son cilin