Indholdsfortegnelse:

Bevægelsessensorlys Basys3: 8 trin
Bevægelsessensorlys Basys3: 8 trin

Video: Bevægelsessensorlys Basys3: 8 trin

Video: Bevægelsessensorlys Basys3: 8 trin
Video: Программирование FPGA с помощью Verilog: Full Adder BASYS3 2024, Juli
Anonim
Bevægelsessensorlys Basys3
Bevægelsessensorlys Basys3
Bevægelsessensorlys Basys3
Bevægelsessensorlys Basys3
Bevægelsessensorlys Basys3
Bevægelsessensorlys Basys3

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

Udstyr påkrævet
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

Blackbox Diagram/Finite State Machine
Blackbox Diagram/Finite State Machine
Blackbox Diagram/Finite State Machine
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

BlackBox digitalt ur
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

Komponenter sammen og beskrivelse
Komponenter sammen og beskrivelse
Komponenter sammen og beskrivelse
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: