Indholdsfortegnelse:
- Trin 1: Udstyr påkrævet
- Trin 2: Blackbox Diagram/Finite State Machine
- Trin 3: BlackBox digitalt ur
- Trin 4: Komponenter sammen og beskrivelse
- Trin 5: Kode
- Trin 6: Fremtidige ændringer
- Trin 7: Konklusion
- Trin 8: Afslutning
Video: Bevægelsessensorlys Basys3: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Til vores sidste projekt inden for digitalt design besluttede vi at simulere bevægelsessensors lys. De aktiveres ikke kun, når et objekt er i nærheden af det, men aktiveres også kun på et bestemt tidspunkt på dagen. Vi er i stand til at modellere dette ved hjælp af FPGA (Basys3 -kort). Mens vi ved hjælp af FPGA tillod en bruger at indtaste et tidspunkt, hvor bevægelsessensorerne kan begynde at aktivere, og derefter sender sensorerne et signal afhængigt af hvilken sensor det er at tænde det specifikke lys i det rum eller område. Vi modellerede dette ved kun at tillade en bevægelsessensor at blive aktiveret på et givet tidspunkt og tænde de givne lys i overensstemmelse hermed. På grund af tidsbegrænsning er vi ikke i stand til at få den tid, som brugeren har lagt ind, til at påvirke aktiveringen af bevægelsessensoren. Grundlaget for vores logik bør dog give nogen mulighed for let at replikere og forbedre den.
### Linket nedenfor viser en video af projektet
drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing
Trin 1: Udstyr påkrævet
Til dette projekt skal du bruge følgende:
-Basys3 Board
-USB til microusb kabel
-8 brødbrætstrøjer
-Brødbræt
-2 diffust LED
Trin 2: Blackbox Diagram/Finite State Machine
Dette sortboksdiagram viser de nødvendige input, der er nødvendige for, at LED -lysene kan tændes. Time -input og Min -input repræsenterer den tid, brugeren indtastede på basys3 -kortet (ved hjælp af switches). Som for sw -indgangen repræsenterer, i hvilken del af rummet brugeren er i (igen ved hjælp af kontakter til at repræsentere det sted, objektet er på).
FSM viser overgangen fra et område til et andet område af et rum, hvor et objekt er placeret på et givet tidspunkt. Der er 4 forskellige sensorer i de forskellige rum, der er repræsenteret som (s1, s2, s3, s4). Som styrer output eller lysene i de forskellige rum for eksempel lys (L1, L2, L3). Den oprindelige tilstand registrerer sensorerne ingen, så alle lysene er slukket. For at flytte til den næste tilstand (tilstand 1) skal s1 registrere en person, s2, s3 og s4 vil være slukket. Dette udsender L1 (tænd lys 1), L2 og L3 er slukket. For at gå til tilstand 2 fra tilstand 1, skal s1, s3 og s4 være slukket, s2 skal være tændt. Dette vil tænde L1 og L2. For at gå til den næste tilstand fra denne tilstand skal s3 være tændt og alle andre sensorer slukket. Dette vil tænde L2 og L3, L1 vil være slukket. For at gå til den endelige tilstand skal S4 være tændt, og alle andre sensorer skal være slukket. Dette vil kun tænde L3, alle andre lys vil være slukket. Hvis en person kommer ind i rummet fra s4 -siden og forlader s1, vil alle trin være i omvendt rækkefølge.
Trin 3: BlackBox digitalt ur
Formålet med det digitale ur, vi skabte, er, så sensorlys ikke aktiveres i løbet af dagen og kun fungerer i den tid, brugeren indtastede. Det digitale ur tager time_in input og mins_in ved hjælp af switches på basys3 board, og for at kunne indlæse det på boardet skal du trykke på (led_btn), så det viser det om bord. Vi tilføjede også nulstillingsknap (rst_b), så du kan uploade et andet tidspunkt igen. Da basys3 har nok plads til at vise 3 forskellige forekomster af information, implementerede vi sekunderne i baggrunden. Til dette formål implementerede vi et sekundskifte, så det kun vil stige i tide, når brugeren beslutter at tænde (e_sec) input på basys3 -kortet. Det interne rammearbejde inde i det digitale ur består af flip-flops, der gemmer indført tid og tællere, der kun øger den tid, brugeren indtastede, når (e_sec) er tændt. Vi tilføjer koden, så du kan se, hvordan den blev implementeret nøjagtigt.
Trin 4: Komponenter sammen og beskrivelse
Ovenstående billeder viser, hvordan komponenterne er forbundet med hinanden. Det starter med først at indtaste input timer og minutter. Signalerne fra disse input sendes til tæller time og tæller minutter, hvor det summerer bits sammen, og tællere output signal bliver sendt til SSEG komponenten, hvor det konverterer bits til bestemte tegn, der vil blive vist på basys3 board. Signalet fra tællerne vil imidlertid ikke blive sendt til SSEG -komponenten, før brugeren har trykket på input (led_btn), dette blev gjort, fordi vi ikke lavede FSM til digitalt ur. Den indlæste tid øges heller ikke, før inputkontakten (e_sec) er tændt, fordi ellers sekundtæller altid ville køre i baggrunden. Når tællersekundet har nået '59', sender det signal til minutterne, så det øger minutter, det samme gøres fra minutter til timer. Der er også bevægelsesfølerindgange, og signalerne sendes til FSM -komponenten, hvor den bestemmer, hvilken tilstand der skal gå til, afhængigt af sensoren. Dens oprindelige tilstand er, når alle sensorer er slukket. Al beskrivelse af FSM blev beskrevet i trin 2.
Trin 5: Kode
Trin 6: Fremtidige ændringer
I fremtiden ville det være en forbedring at tilføje faktiske bevægelsessensorer med kombination af LED'er til projektet, så vi kan øge projektets kompleksitet og se om vi kan oprette en moderne bevægelseslyssensor. Dette ville skabe flere problemer, da du også skal tænke på objektets nærhed, så lysene tændes i overensstemmelse hermed. Desuden er alle andre funktionaliteter forudgående. Også forbedring af funktionaliteten af det digitale ur ved hjælp af et FSM også i stedet for at vente på, at brugeren tænder sekunder (e_sec). FSM'en for et digitalt ur ville ligne bevægelsessensorens.
Trin 7: Konklusion
Samlet set har dette projekt hjulpet os med at få en bedre forståelse af, hvordan endelige statsmaskiner fungerer. Derudover skal du altid med FSM huske på, at du skal vide, hvilken tilstand du befinder dig i, og hvornår du vil skifte til en anden tilstand. Med andre ord skal du vide, hvor du er på et givet tidspunkt, og hvor du vil være senere. Husk på, hvilke faktorer der gør det muligt for dig (input) at skifte til en anden tilstand, og hvad den vil gøre, når den kommer dertil (output). Vi lærte også, hvordan man gemmer information inden for basys3-kortet ved hjælp af flip-flops, som er registre, og hvordan man øger tiden ved hjælp af tællere, der tilføjer binære tal sammen.
Trin 8: Afslutning
Two_sseg.vhdl = universal_sseg_dec.vhd
Ratner, James og Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd
Anbefalede:
DIY VR løbebånd- Basys3 FPGA-Digilent konkurrence: 3 trin
DIY VR løbebånd- Basys3 FPGA-Digilent konkurrence: Vil du bygge en VR løbebånd, hvor du kan køre dine desktop applikationer og spil? Så er du kommet til det rigtige sted! I konventionelle spil bruger du musen og tastaturet til at interagere med miljøet. Derfor skal vi sende
Sådan laver du PIR -bevægelsessensorlys derhjemme: 7 trin
Sådan laver du PIR -bevægelsessensorlys derhjemme: I denne video har jeg vist, hvordan man laver en pir -bevægelsessensor derhjemme. Du kan se min video på youtube. Abonner venligst Hvis du kan lide min video og Hjælp mig med at vokse. Https://youtu.be/is7KYNHBSp8
VHDL Basys3: Connect 4 spil: 5 trin
VHDL Basys3: Connect 4 Game: Introduktion: Dette er et Connect 4 Digital Logic Game designet i VHDL ved hjælp af Vivado -softwaren og programmeret til Basys3 Board. Konstruktionen og designet af dette projekt er mellemliggende, men tilflyttere kan kopiere trinene og opbygge den digitale
Grundlæggende stopur ved hjælp af VHDL og Basys3 Board: 9 trin
Grundlæggende stopur ved hjælp af VHDL og Basys3 Board: Velkommen til instruktionsbogen om, hvordan man bygger et stopur ved hjælp af grundlæggende VHDL og Basys 3 board. Vi glæder os til at dele vores projekt med dig! Dette var et afsluttende projekt for kursus CPE 133 (Digital Design) på Cal Poly, SLO i efteråret 2016. Projektet vi byggede
Lav et enkelt bevægelsessensorlys! (PIR): 13 trin (med billeder)
Lav et enkelt bevægelsessensorlys! (PIR): Lav en lille & Simple Motion Sensing Light med mindre besvær og færre komponenter. En nybegynder kunne også lave dette. En enkel forståelse af, hvordan transistoren fungerer, og kendskab til anode og katode er kun nødvendig, så gør det spændingsfrit