FPGA Robotics visie voor iedereen (4 / 5 stap)

Stap 4: Explenation van de VHDL-code


VHDL wetboek zit niet zoals C-code. VHDL is eigenlijk een beschrijvingstaal, met de taal die u "beschrijven kunt" hoe de FPGA-chip zich dient te gedragen. Is het fundamenteel als een schematische tekening maar nu je het in woorden.

Toplevel

Neem een kijkje op de afbeelding die is gekoppeld aan deze stap, dit heet Toplevel. Op de toplevel alle afzonderlijke codeblokken kunnen worden gezien en zal ik kort beschrijven wat hun functies zijn.

POWER_ON_RESET_CONTROLLER

Dit blok ervoor zorgt dat alle anderen goed wanneer de macht wordt toegepast op het systeem worden gereset. Zij doet dit door een hoeveelheid tijd met behulp van een statusmachine wachten en tijdens het wachten het maakt het NOT_POR_RESET laag heeft output. Dit signaal is aangesloten op alle andere blokken en stelt ze / hen verhindert beginnen totdat dit puls reset is voorbij (gonna op hoog niveau).

Blinkled

Gewoon mijn manier van hello-wereld, ik gebruik deze te laat mijn Raad geven haar leven (door knipperende leds)

clock_divider

De klok worden gedeeld door 2 en voert dit in de OV7670 omdat de OV7670 niet de 50MHz van de fpga-board (te hoog) gebruiken.

datasplitter

Fungeert als een bidirectionele databus buffer met 3state optie. Nog niet echt gebruikt, de TFT is enkel geschreven naar maar het is mogelijk ook lezen uit de TFT-registers.

ili9325_16bitcameradata

Dit blok eerst configureert de TFT is aangesloten (rechts nadat macht op reset is voltooid). Bijvoorbeeld daarin de TFT in RGB565 modus. Na dat het gaat in schrijfmodus en alles wat het doet is voortdurend actualiseren van de TFT weergave (camerabeelden of tresholded beelden. Wanneer dit blok gebeurt signalen configureren het naar het volgende blok dat het zijn configuratie kunt beginnen:

OV7670_sccb_initialisation

Dit blok kostte een hoop werk. De camera van Omnivision wordt (OV7670) moet configureren na het opstarten. We moeten bijvoorbeeld het uitvoer ingesteld op RGB565 modus (wat betekent dat de R-factor van een pixel is 5 bits, G 6 en B 5 weer). Ik koos voor dit zodat het overeenkomt met mijn ILI9325 TFT die dezelfde functie heeft. Sccb is zeer vergelijkbaar met I2C (ik-plein-C, protocol uitgevonden door Philips een lange tijd geleden). Maar er zijn verschillen die kostte me vele vele uren om goed te krijgen!

image_tresholding

Last but not least. Dit is waar de echte magie gebeurt. Het blok krijgt beelden van de camera van de OV7670 (aangestuurd door de camera's HREF en VSYNC lijnen die samen wijzen op een start + einde van frame (afbeelding)). Binnen het blok is de vergelijking voor elke pixel (realtime!) met de kenmerken van het bereik van de pixel dat we zoeken (in dit geval helder pixels) gedaan. SW1 is er om te kiezen wat te zien op de TFT: normale camerabeelden of de beelden van de tresholded. Het image_treshold blok stuurt ook de VSYNC en HREF lijnen van de camera naar het ili9325 blok die vereist is om te rijden en synchroniseren van de TFT om aan te tonen van de beelden.

Dus dit de eenvoudige beschrijving van alle blokken was, wie wil meer details nodig ik uit om eens een kijkje in de VHDL-codefiles voor alle deze blokken.

Gerelateerde Artikelen

Lepel Carving voor iedereen

Lepel Carving voor iedereen

iedereen kan, en een houten lepel moet snijden.  Dit Instructable zal u tonen hoe om te beginnen uw zeer eigen lepel snijwerk en hopelijk antwoord op enkele van de fundamentele vragen over houtsnijwerk, whittling en hoe maak je je eigen houten lepels
"Schweddy" ballen voor iedereen

"Schweddy" ballen voor iedereen

voor degenen die niet vertrouwd Pete Schweddy en zijn Schweddy ballen Klik hier:http://www.Hulu.com/watch/4156/Saturday-Night-Live-nprs-Delicious-Dish-schweddy-BallsMoe van het hebben van een drang voor Schweddy ballen maar niet vinden een open Seaso
Sommige eenvoudige OS X Command Line Tools voor iedereen

Sommige eenvoudige OS X Command Line Tools voor iedereen

Sommige eenvoudige OS X Command Line Tools voor iedereenDeze werden verzameld uit rond het internet en van mijn persoonlijke kennis. Velen zijn de eenvoudige hulpmiddelen die kan men lezen over in de MAN pagina's, een paar zijn shell-items die u kunt
Robotica stage voor studenten van de Tech.

Robotica stage voor studenten van de Tech.

Robotica stage voor studenten van de tech.Uithoudingsvermogen nodigt leerlingen uit om toe te treden onze robotica opstarten voor een stageprogramma (EnduranceRobots.com)We openen alle SelfieBot codebronnen en schema's voor scholen, universiteiten, h
4WD alle terrein Arduino Robot voor iedereen

4WD alle terrein Arduino Robot voor iedereen

Ik heb altijd graag robots die zich in ruw terrein verplaatsen kunnen. Deze keer heb ik besloten dat ik zal gebruik maken van kant en klare chassis enigszins wijzigen en het toevoegen van een paar extra onderdelen. Met behulp van een klaar chassis ko
Robotica Outreach voor basisschool leerlingen

Robotica Outreach voor basisschool leerlingen

Hello, world! Wij zijn een middelbare school robotica team van Madison, NJ. Onze leden variëren in leeftijd van 13 tot en met 18 (rechters, Let op!). We concurreren in de jaarlijkse Eerste technische uitdaging. Elk jaar, houdt onze school een dag of
Robot vis (voor inspectie van de stortbak)

Robot vis (voor inspectie van de stortbak)

In dit project, zal stap voor stap beschreven worden, het proces van het doen een robot vis. Het is niet gemakkelijk voor elektronica te overleven zwemmen. Deze robot heeft sommige fundamentele gedrag, bijvoorbeeld wanneer de neus sensor een botsing
Een beetje of veel Spicy Chicken Soup voor iedereen van het gehemelte

Een beetje of veel Spicy Chicken Soup voor iedereen van het gehemelte

Kruidig en warm voedsel doet geen beroep op iedereen. Sommigen van u graag de pittige smaak zonder de hitte. Sommigen niet bevalt helemaal en dan... er zijn mensen zoals ik, die houden van de x warm en kruidig. Mijn man houdt van kruidige voedingsmid
Hoe zet je hond in een vis voor Halloween

Hoe zet je hond in een vis voor Halloween

Ik ben terug met een andere hond kostuum! Ditmaal heb ik besloten om een vis kostuum voor Jersey. Ik denk dat ze echt om gelukkig te zijn als Halloween voorbij gaat!Ik ben het invoeren van dit kostuum in de Halloween wedstrijd, dus als je dit instruc
MakerYo: een niet-reagerende YoYo voor iedereen!

MakerYo: een niet-reagerende YoYo voor iedereen!

Dit is een niet-reagerende Yoyo genaamd MakerYo, het duurt grootte C invloed en eenmaal afgedrukte moet worden schroefdraad voor de as en de pads reactie krijgen toegevoegd, voeg dan de tekenreeks en uw all instellen! Dit is het eerste ontwerp van de
Hoe te maken van een aas vis voor ongeveer $2 vangen $1 draad afval manden met

Hoe te maken van een aas vis voor ongeveer $2 vangen $1 draad afval manden met

Hallo.  Voor deze DIY die ik u hoe tonen zal te maken een aas vis val met behulp van twee draad afval manden gevonden in dollar winkels.  Ik vond mijn op de boom van de Dollar.U moet:2 draad afval mandendraad knipsels of tin snipsSommige parachord of
WVO basissysteem voor iedereen

WVO basissysteem voor iedereen

My Name is JeffMijn project / idee is om af te ronden van mijn R & D om te produceren een WVO (afval groente olie) systeem dat iedereen kan gebruiken. Montage met gemeenschappelijke uit de componets van de plank, het zou een "Doe" of gekocht
Iot inschakelen voor iedereen

Iot inschakelen voor iedereen

Hallo mensen!Dit was het eerste programma schreef ik een paar jaar geleden. Vanaf toen begonnen ik met het verkennen van de verschillende toepassingsgebieden van programma's en hun bestaan in onze echte leven. Een paar dagen terug één of andere kerel
Het selecteren van de juiste vis voor uw aquarium

Het selecteren van de juiste vis voor uw aquarium

kiezen en selecteren van de juiste vis die kunnen samenleven in harmonie in een aquarium gemeenschap is soms een ingewikkeld proces omdat er veel dingen te overwegen en het gaat in principe om sommige basisonderzoek en werk.De instructable hier is be