Inhoudsopgave:
- Stap 1: Benodigde apparatuur
- Stap 2: Blackbox-diagram/eindige-toestandsmachine
- Stap 3: BlackBox digitale klok
- Stap 4: Componenten samen en beschrijving
- Stap 5: Coderen
- Stap 6: Toekomstige wijzigingen
- Stap 7: Conclusie
- Stap 8: Citaat
Video: Bewegingssensorlichten Basys3 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Voor ons afstudeerproject in digitaal ontwerp hebben we besloten om bewegingssensorlampen te simuleren. Ze worden niet alleen geactiveerd wanneer er een object in de buurt is, maar worden ook alleen geactiveerd op een bepaald tijdstip van de dag. We kunnen dit modelleren door FPGA (Basys3-bord) te gebruiken. Tijdens het gebruik van de FPGA hebben we een gebruiker toegestaan om een tijd in te voeren waarop de bewegingssensoren kunnen beginnen te activeren, en dan sturen de sensoren een signaal, afhankelijk van welke sensor het is is om dat specifieke licht in die kamer of ruimte aan te zetten. We hebben dit gemodelleerd door slechts één bewegingssensor op een bepaald moment te laten activeren en dienovereenkomstig de gegeven lichten aan te zetten. Vanwege tijdsbeperking zijn we niet in staat om de door de gebruiker ingevoerde tijd de activering van de bewegingssensor te laten beïnvloeden. De basis van onze logica moet iemand echter in staat stellen deze gemakkelijk te repliceren en te verbeteren.
### Link hieronder toont een video van het Project
drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing
Stap 1: Benodigde apparatuur
Voor dit project heb je het volgende nodig:
-Basys3-bord
-USB naar microusb-kabel
-8 breadboard jumperdraden
-Broodplank
-2 diffuse LED
Stap 2: Blackbox-diagram/eindige-toestandsmachine
Dit black box-diagram toont de vereiste ingangen die nodig zijn om de led-verlichting in te schakelen. De uren- en min-ingangen vertegenwoordigen de tijd die de gebruiker heeft ingevoerd op het basys3-bord (met behulp van schakelaars). Zoals, voor de sw-invoer geeft aan in welk deel van de kamer de gebruiker zich bevindt (opnieuw met behulp van schakelaars om het locatieobject weer te geven).
De FSM toont de overgang van het ene gebied naar het andere gebied van een ruimte waar een object zich op een bepaald moment bevindt. Er zijn 4 verschillende sensoren in de verschillende kamers die worden weergegeven als (s1, s2, s3, s4). Die de uitgangen aansturen, of de verlichting in de verschillende kamers bijvoorbeeld licht (L1, L2, L3). In de begintoestand detecteren de sensoren niemand, dus alle lichten zijn uit. Om naar de volgende status (status 1) te gaan, moet s1 iemand detecteren, s2, s3 en s4 zijn uitgeschakeld. Hierdoor wordt L1 uitgevoerd (licht aan 1), L2 en L3 zijn uit. Om vanuit status 1 naar status 2 te gaan, moeten s1, s3 en s4 uit zijn, en s2 moet aan zijn. Hierdoor worden L1 en L2 ingeschakeld. Om vanuit deze status naar de volgende status te gaan, moet s3 aan zijn en alle andere sensoren uit. Hierdoor worden L2 en L3 ingeschakeld, L1 is uitgeschakeld. Om naar de eindtoestand te gaan, moet S4 aan staan en alle andere sensoren uit. Hierdoor wordt alleen L3 ingeschakeld, alle andere lampjes zijn uit. Als een persoon de kamer betreedt vanaf de s4-zijde en verlaat via s1 zijn alle stappen in omgekeerde volgorde.
Stap 3: BlackBox digitale klok
Het doel van de digitale klok die we hebben gemaakt, is dat de lampjes van sensoren overdag niet worden geactiveerd en alleen werken gedurende de tijd die de gebruiker heeft ingevoerd. De digitale klok neemt de input hour_in en mins_in in met behulp van schakelaars op het basys3-bord, en om het op het bord te kunnen laden, moet je op (led_btn) drukken zodat het het aan boord weergeeft. We hebben ook een reset-knop (rst_b) toegevoegd, zodat je op een ander tijdstip opnieuw kunt uploaden. Omdat de basys3 voldoende ruimte heeft om 3 verschillende informatiebronnen weer te geven, hebben we de seconden op de achtergrond geïmplementeerd. Voor dit doel hebben we een secondenschakelaar geïmplementeerd, zodat deze alleen in de tijd zal toenemen wanneer de gebruiker besluit om (e_sec)invoer op het basys3-bord in te schakelen. Het interne framewerk in de digitale klok bestaat uit flip-flops die de ingevoerde tijd opslaan en tellers die de tijd die de gebruiker heeft ingevoerd alleen verhogen wanneer (e_sec) is ingeschakeld. We zullen de code toevoegen, zodat u kunt zien hoe deze precies is geïmplementeerd.
Stap 4: Componenten samen en beschrijving
De bovenstaande afbeeldingen laten zien hoe de componenten met elkaar zijn verbonden. Het begint met het invoeren van uren en minuten. De signalen van die ingangen worden naar de teller uren en minuten gestuurd, waar het de bits bij elkaar optelt, en het uitgangssignaal van de tellers wordt naar de SSEG-component gestuurd, waar het bits converteert naar specifieke tekens die op het basys3-bord worden weergegeven. Het signaal van de tellers wordt echter pas naar de SSEG-component gestuurd als de gebruiker op input (led_btn) heeft gedrukt. Dit is gedaan omdat we geen FSM voor digitale klok hebben gemaakt. Ook zal de ingevoerde tijd niet toenemen totdat de invoerschakelaar (e_sec) is ingeschakeld, omdat anders de secondenteller altijd op de achtergrond zou lopen. Zodra de teller sec '59' heeft bereikt, stuurt het een signaal naar de mins zodat het mins verhoogt, hetzelfde wordt gedaan van mins naar uren. Er zijn ook bewegingssensoringangen en de signalen worden naar de FSM-component gestuurd, waar deze bepaalt naar welke status het moet gaan, afhankelijk van de sensor. De beginstatus is wanneer alle sensoren zijn uitgeschakeld. Alle beschrijvingen van FSM werden beschreven in stap 2.
Stap 5: Coderen
Stap 6: Toekomstige wijzigingen
In de toekomst zou het een verbetering zijn om daadwerkelijke bewegingssensoren met combinatie van LED's aan het project toe te voegen. Zodat we de complexiteit van het project kunnen vergroten en om te zien of we een moderne bewegingslichtsensor kunnen maken. Dit zou voor meer problemen zorgen, omdat je ook aan de nabijheid van het object moet denken, zodat de lichten dienovereenkomstig aan gaan. Daarnaast gaan alle overige functionaliteiten vooraf. Ook het verbeteren van de functionaliteit van de digitale klok met behulp van een FSM in plaats van te wachten tot de gebruiker seconden inschakelt (e_sec). De FSM voor een digitale klok zou vergelijkbaar zijn met die van de bewegingssensor.
Stap 7: Conclusie
Over het algemeen heeft dit project ons geholpen een beter begrip te krijgen van hoe eindige-toestandsmachines werken. Daarnaast moet je er bij FSM altijd rekening mee houden dat je moet weten in welke staat je je bevindt, en wanneer je naar een andere staat wilt overstappen. Met andere woorden, u moet weten waar u zich op een bepaald moment bevindt en waar u later zult zijn. Houd in gedachten met welke factoren u (invoer) naar een andere staat kunt gaan en wat het gaat doen als het daar aankomt (uitvoer). We hebben ook geleerd hoe we informatie op het basys3-bord kunnen opslaan met behulp van flip-flops die registers zijn, en hoe we de tijd kunnen verhogen met tellers die binaire getallen bij elkaar optellen.
Stap 8: Citaat
De two_sseg.vhdl = universal_sseg_dec.vhd
Ratner, James en Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd