Innehållsförteckning:

Rörelsesensorlampor Basys3: 8 steg
Rörelsesensorlampor Basys3: 8 steg

Video: Rörelsesensorlampor Basys3: 8 steg

Video: Rörelsesensorlampor Basys3: 8 steg
Video: Атеросклероз — 3 лучших метода избавления от недуга! 2024, Juli
Anonim
Rörelsesensorlampor Basys3
Rörelsesensorlampor Basys3
Rörelsesensorlampor Basys3
Rörelsesensorlampor Basys3
Rörelsesensorlampor Basys3
Rörelsesensorlampor Basys3

För vårt sista projekt inom digital design, bestämde vi oss för att simulera rörelsesensors ljus. De aktiveras inte bara när ett föremål är nära det, utan aktiveras bara under en viss tid på dagen. Vi kan modellera detta med hjälp av FPGA (Basys3 -kort). Medan vi använde FPGA tillät vi en användare att mata in en tid då rörelsesensorerna kan börja aktivera, och sedan skickar sensorerna en signal beroende på vilken sensor det är att tända det specifika ljuset i rummet eller området. Vi modellerade detta genom att bara tillåta en rörelsesensor att aktiveras vid en given tidpunkt och tända de angivna lamporna därefter. På grund av tidsbegränsning kan vi inte låta den tid som användaren lägger in påverka aktiveringen av rörelsesensorn. Grunden för vår logik bör dock låta någon enkelt replikera och förbättra den.

### Länken nedan visar en video av projektet

drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing

Steg 1: Utrustning behövs

Utrustning som behövs
Utrustning som behövs

För detta projekt behöver du följande:

-Basys3 Board

-USB till microusb -kabel

-8 brödbrädans trådar

-Bakbord

-2 diffus LED

Steg 2: Blackbox Diagram/Finite State Machine

Blackbox Diagram/Finite State Machine
Blackbox Diagram/Finite State Machine
Blackbox Diagram/Finite State Machine
Blackbox Diagram/Finite State Machine

Detta svarta låddiagram visar de ingångar som krävs för att LED -lamporna ska tändas. Hour -ingången och Min -ingången representerar den tid användaren matade in på basys3 -kortet (med hjälp av switchar). Som för sw representerar ingången i vilken del av rummet användaren befinner sig (använder igen omkopplare för att representera platsobjektet).

FSM visar övergången från ett område till ett annat område i ett rum där ett objekt befinner sig vid en given tidpunkt. Det finns 4 olika sensorer i de olika rummen som representeras som (s1, s2, s3, s4). Som styr utgångarna, eller lamporna i de olika rummen till exempel ljus (L1, L2, L3). Det ursprungliga tillståndet detekterar sensorerna ingen, så alla lampor är släckta. För att gå till nästa tillstånd (tillstånd 1) måste s1 upptäcka att någon, s2, s3 och s4 är avstängd. Detta kommer att mata ut L1 (tänd lampa 1), L2 och L3 kommer att vara avstängda. För att gå till tillstånd 2 från tillstånd 1 måste s1, s3 och s4 vara avstängd, s2 måste vara på. Detta kommer att slå på L1 och L2. För att gå till nästa tillstånd från detta tillstånd måste s3 vara på och alla andra sensorer avstängda. Detta kommer att slå på L2 och L3, L1 kommer att vara avstängd. För att gå till slutläget måste S4 vara på och alla andra sensorer måste vara avstängda. Detta kommer bara att slå på L3, alla andra lampor kommer att vara släckta. Om en person kommer in i rummet från s4 -sidan och går ut genom s1 kommer alla steg att vara i omvänd ordning.

Steg 3: BlackBox digital klocka

BlackBox digital klocka
BlackBox digital klocka

Syftet med den digitala klockan vi skapade är så att sensorernas lampor inte skulle aktiveras under dagen och bara fungera under den tid användaren matade in. Den digitala klockan tar in hour_in input och mins_in med switchar på basys3 board, och för att kunna ladda den på kortet måste du trycka på (led_btn) så att den visar den ombord. Vi har också lagt till återställningsknappen (rst_b) så att du kan ladda upp en annan tid igen. Eftersom basys3 har tillräckligt med utrymme för att visa tre olika instanser av information implementerade vi sekunderna i bakgrunden. För detta ändamål implementerade vi en sekundväxel så det kommer bara att öka i tid när användaren bestämmer sig för att slå på (e_sec) ingång på basys3 -kortet. Det interna ramverket inuti den digitala klockan består av flip-flops som lagrar inmatad tid och räknare som ökar den tid som användaren bara matade in när (e_sec) är på. Vi kommer att lägga till koden så att du kan se hur den implementerades exakt.

Steg 4: Komponenter tillsammans och beskrivning

Komponenter tillsammans och beskrivning
Komponenter tillsammans och beskrivning
Komponenter tillsammans och beskrivning
Komponenter tillsammans och beskrivning

Bilderna ovan visar hur komponenterna är sammankopplade. Det börjar med att först ta in inmatningar timmar och minuter. Signalerna från dessa ingångar skickas till räknartimmar och räknarminer där den summerar bitarna tillsammans, och räknarens utsignal skickas till SSEG -komponenten där den omvandlar bitar till specifika tecken som kommer att visas på basys3 -kortet. Signalen från räknarna kommer dock inte att skickas till SSEG -komponenten förrän användaren har tryckt på input (led_btn) detta har gjorts eftersom vi inte skapade FSM för digital klocka. Dessutom kommer den inmatade tiden inte att ökas förrän ingångsbrytaren (e_sec) är på, eftersom annars sekundräknare alltid körs i bakgrunden. När räknarsekunden har nått "59" skickar den signal till minuterna så att den ökar minuter, samma görs från minuter till timmar. Det finns också rörelsesensorinsignaler och signalerna skickas till FSM -komponenten där den avgör vilket tillstånd som ska gå till beroende på sensorn på. Dess ursprungliga tillstånd är när alla sensorer är avstängda. All beskrivning av FSM beskrevs i steg 2.

Steg 5: Kod

Steg 6: Framtida ändringar

I framtiden skulle det vara en förbättring att lägga till faktiska rörelsessensorer med en kombination av lysdioder i projektet, så att vi kan öka projektets komplexitet och se om vi kan skapa en modern rörelselyssensor. Detta skulle skapa fler problem eftersom du måste tänka på föremålets närhet så att lamporna tänds i enlighet därmed. Dessutom har alla andra funktioner tidigare. Också förbättra funktionen för digital klocka med hjälp av en FSM också istället för att vänta på att användaren slår på sekunder (e_sec). FSM för en digital klocka skulle likna den för rörelsesensorn.

Steg 7: Slutsats

Sammantaget har detta projekt hjälpt oss att få en bättre förståelse för hur ändliga statsmaskiner fungerar. Dessutom måste du alltid tänka på att du måste veta i vilket tillstånd du befinner dig och när du vill byta till ett annat tillstånd med FSM. Med andra ord måste du veta var du befinner dig vid en given tidpunkt och var du kommer att vara senare. Tänk på vilka faktorer som gör att du (ingångar) kan byta till ett annat tillstånd och vad det ska göra när det kommer dit (utdata). Vi lärde oss också hur man lagrar information på basys3-kortet med hjälp av flip-flops som är register, och hur man ökar tiden med hjälp av räknare som lägger ihop binära tal.

Steg 8: Citiation

Two_sseg.vhdl = universal_sseg_dec.vhd

Ratner, James och Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd

Rekommenderad: