FPGA solpanel Optimizer (3 / 12 steg)

Steg 3: Finite State Machine




Den första modulen i designen är finite state machine(FSM). Denna modul har fem olika lägen som används för att kontrollera hur och när systemet reagerar. Av de fem staterna är en stat manuell kontroll där servon kan kontrolleras genom inbyggda knapparna. De andra fyra staterna uppstå sekventiellt när du trycker på mittknappen på bordet. Dessa länder kallas kalibrering staterna. Kalibrering, går horisontella servo in horisontellt svep staten, svepande 180 grader. Som det är scanning spänningar, ser det för den horisontella max spänningen. När den går igenom dess full rörelse, övergångar Mikronesien i den horisontella max tillstånd där den kontrollerar servo tillbaka platsen för max spänningen fick. Nästa, Mikronesien går in i den vertikala svepet tillstånd där den kontrollerar vertikala servo att skanna upp och ner 45 grader för den nya max spänningen. Slutligen, Mikronesien går in i den vertikala max staten när den hittar den max spänningen och återgår till den punkten, bara gillar horisontella servo. När kalibreringen är klar, ange servon tillbaka till manuell staten.

Här är enhet beskrivning av våra Mikronesien i VHDL:

FSM har
Port (BTN_L, BTN_R, BTN_U, BTN_D, BTN_C: i STD_LOGIC;---ingång knappar
CNT_L, CNT_RU, CNT_D: I STD_LOGIC; ---servo aktiverar signaler från counter
CLK: I STD_LOGIC; ---klocksignal
HS, VS, MC: Ut STD_LOGIC; ---counter aktiverar signaler
SERVO_L, SERVO_R, SERVO_U, SERVO_D: ut STD_LOGIC; ---servo aktiverar signaler
CNT_RST: Ut STD_LOGIC); ---reset signal för en av räknarna
slutet Mikronesien;

Mikronesien är hjärnan i systemet. Det kontrollerar alla signaler som aktiverar andra komponenter för att reagera på ingång därefter. VHDL arkitektur Beskrivning består av två delar. Först är en synkron process som ändrar nuvarande status (PS) för tillståndsdatorn till nästa tillstånd (NS). Andra är minnen processen som tar alla ingångar och bestämmer staten maskiner nästa tillstånd. Tillsammans, utgör dessa processer Mikronesien.

Här är lite kod från vår arkitektur beskrivning. Den innehåller synkron processen och de två första staterna från våra minnen process:

typ är (man, hor_sweep, hor_max, vert_sweep, vert_max); ---definiera våra stater
signalera PS: Ange,
signalera NS: Ange,

sync_proc: process (CLK, NS)---synkron process
börja
om rising_edge(CLK) sedan
PS < = NS;
slutet om;
avsluta processen sync_proc;

comb_proc: process (PS, BTN_L, BTN_R, BTN_U, BTN_D, BTN_C, CNT_L, CNT_RU, CNT_D)
börja
SERVO_L < = "0"; SERVO_R < = "0"; SERVO_U < = "0"; SERVO_D < = "0";
fall PS är
När mannen = >
om (BTN_C = '1') sedan
NS < = hor_sweep; ---gå i första kalibrering om trycker på mittknappen
CNT_RST < = "0";
HS < = '1'; VS < = "0"; MC < = "0"; ---berätta horisontella räknaren ska börja räkna
annat
om (BTN_L = '1') sedan SERVO_L < = '1'; SERVO_R < = "0"; ---från dessa kan du se hur vi
annat SERVO_L < = "0"; ---förvaltas servon i manuell tillstånd
slutet om;

om (BTN_R = '1') sedan SERVO_R < = '1'; SERVO_L < = "0";
annat SERVO_R < = "0";
slutet om;
om (BTN_U = '1') sedan SERVO_U < = '1'; SERVO_D < = "0";
annat SERVO_U < = "0";
slutet om;
om (BTN_D = '1') sedan SERVO_D < = '1'; SERVO_U < = "0";
annat SERVO_D < = "0";
slutet om;
NS < = man; ---bo i manuell tillstånd
CNT_RST < = '1'; ---hålla max counter reset
HS < = "0"; VS < = "0"; MC < = "0"; ---aktivera någon av räknarna inte
slutet om;
När hor_sweep = >
SERVO_U < = "0"; SERVO_D < = "0";
CNT_RST < = "0";
om (CNT_L = '1') sedan
SERVO_L < = '1'; SERVO_R < = "0";
HS < = '1'; VS < = "0"; MC < = "0";
NS < = hor_sweep;
annat
SERVO_L < = "0"; SERVO_R < = "0";
HS < = "0"; VS < = "0"; MC < = '1';
NS < = hor_max;
slutet om;

De andra tre staterna maximerar horisontell spänning, svepande vertikala servo och sedan maximera den vertikala spänningen. När det är gjort kalibrering, det går tillbaka till manuell staten. När det gäller variabler är HS, VS och MC alla aktiverar signaler som går till räknare. CNT_L, CNT_RU och CNT_D är signaler som kommer från räknare och talar Mikronesien enheten motsvarande servo. Alla knappar är mappade till insatsen i Mikronesien. Dessa kontrollen första flytten i kalibrering staten samt flytta servon i manuell staten.

Se Steg
Relaterade Ämnen

Bop med FPGA ombord

Välkommen till Bop det med FPGA styrelsen Instructable,Projektet arbetar med CPE 133 på Cal Poly, San Luis Obispo. Detta projekt skapades av Ian Nielsen och Omri Nissan. Utanför koder var inblandade på olika platser och nämns i den slutliga rapporten...

BitRunner FPGA spelet

Skapa och spela upp egna bitars Runner spel. Ingen konsol eller biffiga dator krävs! Tryck på knappen dodge att undvika inkommande hinder för att uppnå högsta poäng! Detta projekt är hyggligt hårt, en utmaning för nybörjare men inte för experter.Dett...

BLOCK RESOURCE OPTIMIZER

BAKGRUND:California står inför en allvarlig torka, nu inne på sitt fjärde år. Vattenreserverna krymper snabbt. Klimatförändringar och El Nino effekt har upprört regn och snöfall mönster att minska påfyllnad av naturliga reservoarer. Kombinera detta m...

Genom att kombinera mina små solpaneler och vindkraftgenerator.

Ive ' parallell fast de kombinerade solpanelerna och vindkraftgenerator.Jag har en blockerande diod till vind generator infogad mellan det och solpaneler.12 volts kontakt från rännil laddaren har en blockerande diod och en LED som blinkar när det fin...

DIY solpaneler för RV eller off grid

detta instructable är om ett par solpaneler jag gjorde medan man reser i våra RV. Jag beställde 72 solceller från ebay. Det var ett kit som kom med celler, flux penna och platt buss tråd. Glaset kom från en Återanvänd butik för 5 spänn. Jag fick epox...

Anpassa en klocka idag! Billiga trackers öka solpanel och solar cooker prestanda.

Solens bana över himlen har varit känt och har varit förutsägbar under mycket lång tid. Personer med solpaneler och Solköken har antingen en high-tech inställning till sol spårning (ljus upptäcka elektronik, etc eller de manuellt justera spis eller p...

FPGA Robotics Vision för någon

Är du som mig intresserad av teknik och ville alltid att använda en av de tunga marker kallas FPGA'S? Är du intresserad av vision och robotics?Mitt mål var att ta FPGA vision till folket, tillgänglig för alla. Jag bestämde mig att bygga min egen grun...

90 w bärbar solpanel

I detta instructable kommer jag visa hur jag byggde en 90Wp (watt peak) "bärbara" solpanel. Den väger 14kg, den har en distribuerad storlek på runt 900mmx900mm (3'x 3') och veck på mitten för transport. Den har portar att driva eller ladda USB-e...

Lägga till en Harbor Freight 45 Watt solpanel till min lagring byggnad

Tidigare i år köpte vi en lagring byggnad 10' X 20" och hade det levereras till bakgården. Lagring är bra - jag sakta flyttar saker från mitt garage till byggnaden, jag gör detta långsamt eftersom jag inte vill allt kastat i byggnaden i slutet av dag...

Luftpumpen bevattning med solpanel

Principen om luftpumpen bevattningSolpanelen levererar energi till Luftpumpen. Sedan sprutar pumpen tryckluft vid korsningen. Den komprimerade luften blandas med vattnet orsakar luft-vatten blandningen vara mindre tät än resten av vattnet runt det oc...

Bifoga en brun hund solpanel till din portfölj

Välkommen till en annan Instructable från Omaha Maker grupp! Som en del av vårt deltagande i Instructables mars bygga natten med Brun hund prylaravsåg vi att tänka ut ett sätt att ta ut "på språng". Läs på!Steg 1: Komma igång Det var vår önskan...

Bygga en 60 Watt solpanel

flera år sedan jag köpte några avlägsna fastighet i Arizona. Jag är astronom och ville ha en plats att öva min hobby långt bort från den fruktansvärda ljusföroreningar Funna nära städerna av någon verklig storlek. Jag hittade en stor bit av egendom....

Bygga en solpanel från celler

ett mål till mig är att ha en konstant, pålitlig, fri, ren, källa av brandfarlig gas på mitt hus. Detta har visat sig vara en utmaning. Jag har varit banbrytande vatten till väte och syre ganska länge, så det är väg jag valde.I detta Instructable kom...

Bygga en solpanel, EVA filmen stil.

Bygga en solpanel, EVA filmen stil. Detta är en fortsättning på min andra instructable "Hur löda solceller ihop". Bilden ovan är på panelen ifyllda. Denna panel sattes upp juli 2013, om producerar en genomsnittlig topp 40 watt. Den är inställd i...

Bygga en billig, Väderskyddad solpanel för kul

Disclaimer: Jag är inte ansvarig om din solpanel bryter, misslyckas eller vad som helst. Detta är ett experiment för skojs skull. Följ på egen risk.Efter många timmars googla ville jag bygga en billig panel för att passa mina krav. Jag kräver inte et...

Bygga en solpanel, 2 glas fönster stil.

I detta instructable kommer jag förklara hur jag byggde en solpanel med 2 rutor av glas. Jag är inte den första personen att göra detta, det finns andra instructables och youtube videor som visar hur detta görs också, men detta är hur jag gjorde det....

Ladda elektrisk cykel batteri med solpanel

"Åh nej! Inte en annan sol laddare av Arduino!" Jag hör dig säga.Huden djup, det är sant. Men om du var som mig, hittade en awesome affär för lågspänning solpanel på nätet (kanske andra hand), och vill ta ut batteriet e-Bike direkt med denna sol...

Ansluta flera solpaneler

Ansluta flera solpanelerAvhandlingar är dioderna som jag använder, de är desamma som används när man bygger panelerna. Hitta dem här.Det finns 3 sätt att ansluta solpaneler; parallella, serie, och en kombination av parallell och serie. Det första sät...

DIY 30W bärbara solpaneler under $50

jag ville göra min egen solpaneler på länge. Denna vecka fick jag äntligen chansen. Jag lärde mig mycket från youtube-videor och instructables webbplats, men de flesta paneler var gjorda av glas, trä och epoxihartser. Jag insåg att det var alltför st...