Innehållsförteckning:
- Steg 1: Utrustning behövs
- Steg 2: Blackbox Diagram/Finite State Machine
- Steg 3: BlackBox digital klocka
- Steg 4: Komponenter tillsammans och beskrivning
- Steg 5: Kod
- Steg 6: Framtida ändringar
- Steg 7: Slutsats
- Steg 8: Citiation
Video: Rörelsesensorlampor Basys3: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
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
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
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
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
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:
DIY VR-löpband- Basys3 FPGA-Digilent-tävling: 3 steg
DIY VR-löpband- Basys3 FPGA-Digilent-tävling: Vill du bygga en VR-löpband som du kan köra dina stationära applikationer och spel på? Då har du kommit till rätt ställe! I konventionella spel använder du musen och tangentbordet för att interagera med miljön. Därför måste vi skicka
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
VHDL Basys3: Connect 4 Game: 5 Steg
VHDL Basys3: Connect 4 Game: Introduktion: Detta är ett Connect 4 Digital Logic Game designat i VHDL med Vivado -programvaran och programmerat till Basys3 Board. Konstruktionen och designen av detta projekt är mellanliggande, men nykomlingar kan kopiera stegen och bygga den digitala
Grundläggande stoppur med VHDL och Basys3 Board: 9 steg
Grundläggande stoppur med VHDL- och Basys3 -kort: Välkommen till instruktionen om hur man bygger ett stoppur med grundläggande VHDL- och Basys 3 -kort. Vi är glada att kunna dela vårt projekt med dig! Detta var ett slutprojekt för kurs CPE 133 (Digital Design) på Cal Poly, SLO hösten 2016. Projektet vi byggde
Basys3 FPGA Digital Audio Synthesizer: 5 steg
Basys3 FPGA Digital Audio Synthesizer: Denna digitala sinusvågs tangentbordssynthesizer tar användaringångar via en serie tillfälliga switchar som läggs ut som ett tangentbord och matar ut en ljudvåg genom en högtalare. Baserat på användarinmatningar kommer enheten att generera sinusvågor med olika frekvenser