Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
For vårt siste prosjekt innen digital design bestemte vi oss for å simulere lys fra bevegelsessensorer. De aktiveres ikke bare når et objekt er i nærheten av det, men aktiveres også bare på en bestemt tid på dagen. Vi er i stand til å modellere dette ved å bruke FPGA (Basys3 -kort). Mens vi brukte FPGA tillot vi en bruker å skrive inn et tidspunkt hvor bevegelsessensorene kan begynne å aktivere, og deretter sender sensorene et signal avhengig av hvilken sensor det har er å slå på det spesifikke lyset i det rommet eller området. Vi modellerte dette ved å tillate bare en bevegelsessensor å bli aktivert på et gitt tidspunkt, og slå på de gitte lysene deretter. På grunn av tidsbegrensning kan vi ikke få tiden som er lagt inn av brukeren til å påvirke aktiveringen av bevegelsessensoren. Imidlertid bør grunnlaget for vår logikk tillate noen å enkelt replikere og forbedre den.
### Lenken nedenfor viser en video av prosjektet
drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing
Trinn 1: Nødvendig utstyr
For dette prosjektet trenger du følgende:
-Basys3 Board
-USB til mikrousb -kabel
-8 jumperledninger til brødbrett
-Brødbrett
-2 diffust LED
Trinn 2: Blackbox Diagram/Finite State Machine
Dette svartboksdiagrammet viser nødvendige innganger som er nødvendige for at LED -lysene skal slås på. Hour -inngangen og Min -inngangene representerer tiden brukeren skrev inn på basys3 -kortet (ved hjelp av brytere). Som for sw representerer inndata i hvilken del av rommet brukeren er i (igjen bruker brytere for å representere plasseringsobjektet er på).
FSM viser overgangen fra ett område til et annet område i et rom der et objekt befinner seg på et gitt tidspunkt. Det er 4 forskjellige sensorer i de forskjellige rommene som er representert som (s1, s2, s3, s4). Som styrer utgangene, eller lysene i de forskjellige rommene for eksempel lys (L1, L2, L3). Den første tilstanden sensorene ikke oppdager noen, så alle lysene er slukket. For å gå til neste tilstand (tilstand 1) må s1 oppdage at noen, s2, s3 og s4 vil være av. Dette vil sende L1 (slå på lys 1), L2 og L3 vil være av. For å gå til tilstand 2 fra tilstand 1, må s1, s3 og s4 være av, s2 må være på. Dette vil slå på L1 og L2. For å gå til neste tilstand fra denne tilstanden må s3 være på og alle andre sensorer slått av. Dette vil slå på L2 og L3, L1 vil være av. For å gå til sluttilstand må S4 være på og alle andre sensorer må være av. Dette vil bare slå på L3, alle andre lys vil være av. Hvis en person kommer inn i rommet fra s4 -siden og går ut gjennom s1, vil alle trinnene være i motsatt rekkefølge.
Trinn 3: BlackBox digital klokke
Formålet med den digitale klokken vi opprettet er slik at sensorlys ikke skulle aktiveres i løpet av dagen, og bare fungere i den tiden brukeren la inn. Den digitale klokken tar inn time_in input og mins_in ved å bruke brytere på basys3 board, og for å kunne laste den inn på boardet må du trykke på (led_btn) slik at den viser den om bord. Vi har også lagt til tilbakestillingsknapp (rst_b) slik at du kan laste opp et annet tidspunkt på nytt. Siden basys3 har nok plass til å vise 3 forskjellige forekomster av informasjon, implementerte vi sekundene i bakgrunnen. For dette formålet implementerte vi en sekundærbryter, så det vil bare øke i tide når brukeren bestemmer seg for å slå på (e_sec) inngang på basys3 -kortet. Det interne rammearbeidet inne i den digitale klokken består av flip-flops som lagrer innlagt tid og tellere som øker tiden brukeren bare legger inn når (e_sec) er på. Vi legger til koden slik at du kan se hvordan den ble implementert nøyaktig.
Trinn 4: Komponenter sammen og beskrivelse
Bildene ovenfor viser hvordan komponentene er koblet sammen. Det starter med først å ta inn input timer og minutter. Signalene fra disse inngangene blir sendt til teller time og teller minutter hvor det summerer bitene sammen, og tellere utgangssignal blir sendt til SSEG komponenten der det konverterer biter til spesifikke tegn som vil bli vist på basys3 bord. Imidlertid vil signalet fra tellerne ikke bli sendt til SSEG -komponenten før brukeren har trykket på input (led_btn). Dette er gjort fordi vi ikke opprettet FSM for digital klokke. Tiden som skrives inn, øker heller ikke før inndatabryteren (e_sec) er på fordi ellers ville sekundtelleren alltid kjøre i bakgrunnen. Når telleren sek har nådd ‘59’ sender den signal til minuttene slik at det øker minutter det samme gjøres fra minutter til timer. Det er også innganger for bevegelsessensorer, og signalene sendes til FSM -komponenten der den bestemmer hvilken tilstand den skal gå til, avhengig av sensoren. Den opprinnelige tilstanden er når alle sensorer er slått av. All beskrivelse av FSM ble beskrevet i trinn 2.
Trinn 5: Kode
Trinn 6: Fremtidige modifikasjoner
I fremtiden vil det være en forbedring å legge til faktiske bevegelsessensorer med kombinasjon av lysdioder i prosjektet, slik at vi kan øke kompleksiteten i prosjektet og se om vi kan lage en moderne bevegelseslyssensor. Dette vil skape flere problemer, ettersom du må tenke på nærheten av objektet også, slik at lysene tennes deretter. I tillegg har alle andre funksjoner tidligere. Også forbedre funksjonaliteten til digital klokke ved hjelp av en FSM også i stedet for å vente på at brukeren slår på sekunder (e_sec). FSM for en digital klokke vil være lik den for bevegelsessensoren.
Trinn 7: Konklusjon
Totalt sett har dette prosjektet hjulpet oss med å få en bedre forståelse av hvordan endelige statsmaskiner fungerer. I tillegg må du alltid med FSM huske på at du må vite hvilken tilstand du er i, og når du vil bytte til en annen tilstand. Med andre ord må du vite hvor du er på et gitt tidspunkt, og hvor du vil være senere. Husk hvilke faktorer som vil tillate deg (innganger) å bytte til en annen tilstand, og hva den skal gjøre når den kommer dit (utgang). Vi lærte også hvordan vi lagrer informasjon på basys3-kortet ved å bruke flip-flops som er registre, og hvordan vi kan øke tiden ved å bruke tellere som legger binære tall sammen.
Trinn 8: Fengsel
Two_sseg.vhdl = universal_sseg_dec.vhd
Ratner, James og Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd
Anbefalt:
DIY VR tredemølle- Basys3 FPGA-Digilent-konkurranse: 3 trinn
DIY VR tredemølle- Basys3 FPGA-Digilent-konkurranse: Vil du bygge en VR tredemølle som du kan kjøre skrivebordsprogrammer og spill på? Da har du kommet til rett sted! I konvensjonelle spill bruker du musen og tastaturet til å samhandle med miljøet. Derfor må vi sende
Grunnleggende stoppeklokke ved bruk av VHDL og Basys3 Board: 9 trinn
Grunnleggende stoppeklokke ved bruk av VHDL og Basys3 -kort: Velkommen til instruksjonene om hvordan du bygger en stoppeklokke ved hjelp av grunnleggende VHDL- og Basys 3 -kort. Vi gleder oss til å dele prosjektet vårt med deg! Dette var et avsluttende prosjekt for kurs CPE 133 (Digital Design) på Cal Poly, SLO høsten 2016. Prosjektet vi bygde
Lag et enkelt bevegelsessensorlys! (PIR): 13 trinn (med bilder)
Lag et enkelt bevegelsessensorlys! (PIR): Lag en liten & Simple Motion Sensing Light med mindre stress og færre komponenter. En nybegynner kan også gjøre dette. En enkel forståelse av hvordan transistoren fungerer og kunnskap om anode og katode er bare nødvendig, så gjør den spenningsfri
Basys3 FPGA Digital Audio Synthesizer: 5 trinn
Basys3 FPGA Digital Audio Synthesizer: Denne digitale sinusbølge -tastaturet synthesizer tar brukerinnganger via en serie øyeblikksbrytere lagt ut som et tastatur og sender ut en lydbølge gjennom en høyttaler. Basert på brukerinnganger, vil enheten generere sinusbølger med forskjellige frekvenser
Bevegelseskontrollert uttak - Fra et bevegelsessensorlys: 6 trinn
Motion Controlled Outlet - From a Motion Sensing Light: Tenk deg at du er en lureri som går til det mest skumle huset på blokken. Etter å ha gått forbi alle ghoulene, spøkelsene og kirkegårdene kommer du endelig til den siste stien. Du kan se godteriet i en bolle foran deg! Men så plutselig en gho