Inhaltsverzeichnis:
- Schritt 1: Benötigte Ausrüstung
- Schritt 2: Blackbox-Diagramm/Finite State Machine
- Schritt 3: BlackBox-Digitaluhr
- Schritt 4: Komponenten zusammen und Beschreibung
- Schritt 5: Code
- Schritt 6: Zukünftige Änderungen
- Schritt 7: Fazit
- Schritt 8: Zitat
Video: Bewegungsmelder beleuchtet Basys3 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Für unser letztes Projekt im digitalen Design haben wir uns für die Simulation von Bewegungssensoren entschieden. Sie werden nicht nur aktiviert, wenn sich ein Objekt in der Nähe befindet, sondern auch nur zu einer bestimmten Tageszeit. Wir können dies mithilfe von FPGA (Basys3-Platine) modellieren. Bei der Verwendung des FPGA haben wir einem Benutzer erlaubt, eine Zeit einzugeben, in der die Bewegungssensoren aktiviert werden können, und dann senden die Sensoren ein Signal, je nachdem, welcher Sensor es ist besteht darin, dieses spezielle Licht in diesem Raum oder Bereich einzuschalten. Wir haben dies modelliert, indem wir zu einem bestimmten Zeitpunkt nur einen Bewegungssensor aktivieren und die entsprechenden Lichter entsprechend einschalten. Aus Zeitgründen ist es uns nicht möglich, dass die vom Benutzer eingegebene Zeit die Aktivierung des Bewegungssensors beeinflusst. Die Grundlage unserer Logik sollte es jedoch jemandem ermöglichen, sie leicht zu replizieren und zu verbessern.
### Link unten zeigt ein Video des Projekts
drive.google.com/file/d/1FnDwKFfFFDo8mg25j1sW61lUyEqdavQG/view?usp=sharing
Schritt 1: Benötigte Ausrüstung
Für dieses Projekt benötigen Sie Folgendes:
-Basys3-Board
-USB-zu-Micro-USB-Kabel
-8 Steckbrett-Überbrückungsdrähte
-Breadboard
-2 diffuse LED
Schritt 2: Blackbox-Diagramm/Finite State Machine
Dieses Blackbox-Diagramm zeigt die erforderlichen Eingänge, die zum Einschalten der LED-Leuchten erforderlich sind. Die Stunden- und Min-Eingänge stellen die Zeit dar, die der Benutzer auf der basys3-Platine (mithilfe von Schaltern) eingegeben hat. Denn die SW-Eingabe stellt dar, in welchem Teil des Raums sich der Benutzer befindet (wiederum mit Schaltern, um den Standort des Objekts darzustellen, an dem sich befindet).
Die FSM zeigt den Übergang von einem Bereich zu einem anderen Bereich eines Raumes, in dem sich zu einem bestimmten Zeitpunkt ein Objekt befindet. Es gibt 4 verschiedene Sensoren in den verschiedenen Räumen, die als (s1, s2, s3, s4) dargestellt werden. Welche steuern die Ausgänge oder die Lichter in den verschiedenen Räumen zum Beispiel Licht (L1, L2, L3). Im Ausgangszustand erkennen die Sensoren niemanden, daher sind alle Lichter aus. Um zum nächsten Zustand (Zustand 1) zu gelangen, muss s1 jemanden erkennen, s2, s3 und s4 sind ausgeschaltet. Dadurch wird L1 ausgegeben (Licht 1 einschalten), L2 und L3 sind aus. Um von Zustand 1 in Zustand 2 zu wechseln, müssen s1, s3 und s4 ausgeschaltet sein, s2 muss eingeschaltet sein. Dadurch werden L1 und L2 eingeschaltet. Um aus diesem Zustand in den nächsten Zustand zu wechseln, muss s3 eingeschaltet und alle anderen Sensoren ausgeschaltet sein. Dadurch werden L2 und L3 eingeschaltet, L1 wird ausgeschaltet. Um in den Endzustand zu gelangen, muss S4 eingeschaltet sein und alle anderen Sensoren müssen ausgeschaltet sein. Dadurch wird nur L3 eingeschaltet, alle anderen Lichter sind aus. Wenn eine Person den Raum von der Seite s4 her betritt und durch s1 wieder verlässt, erfolgen alle Schritte in umgekehrter Reihenfolge.
Schritt 3: BlackBox-Digitaluhr
Der Zweck der von uns entwickelten Digitaluhr besteht darin, dass die Lichter der Sensoren tagsüber nicht aktiviert werden und nur während der vom Benutzer eingegebenen Zeit funktionieren. Die Digitaluhr nimmt den Eingang hour_in und mins_in mit den Schaltern auf der basys3-Platine auf. Um sie auf die Platine laden zu können, müssen Sie die Taste (led_btn) drücken, damit sie an Bord angezeigt wird. Wir haben auch die Schaltfläche zum Zurücksetzen (rst_b) hinzugefügt, damit Sie zu einer anderen Zeit erneut hochladen können. Da das basys3 genügend Platz bietet, um 3 verschiedene Instanzen von Informationen anzuzeigen, haben wir die Sekunden im Hintergrund implementiert. Zu diesem Zweck haben wir einen Sekundenschalter implementiert, der nur dann inkrementiert wird, wenn der Benutzer entscheidet, den (e_sec)-Eingang auf dem basys3-Board einzuschalten. Der interne Rahmen innerhalb der digitalen Uhr besteht aus Flip-Flops, die die eingegebene Zeit speichern, und Zählern, die die vom Benutzer eingegebene Zeit nur dann erhöhen, wenn (e_sec) eingeschaltet ist. Wir werden den Code hinzufügen, damit Sie sehen können, wie er genau implementiert wurde.
Schritt 4: Komponenten zusammen und Beschreibung
Die obigen Bilder zeigen, wie die Komponenten miteinander verbunden sind. Es beginnt damit, dass zuerst die Eingaben Stunden und Minuten erfasst werden. Die Signale von diesen Eingängen werden an Counter Hour und Counter Mins gesendet, wo die Bits addiert werden, und das Zählerausgangssignal wird an die SSEG-Komponente gesendet, wo sie Bits in bestimmte Zeichen umwandelt, die auf der basys3-Platine angezeigt werden. Das Signal von den Zählern wird jedoch erst an die SSEG-Komponente gesendet, wenn der Benutzer die Eingabetaste (led_btn) gedrückt hat. Dies wurde getan, weil wir kein FSM für die digitale Uhr erstellt haben. Außerdem wird die eingegebene Zeit nicht erhöht, bis der Eingabeschalter (e_sec) eingeschaltet ist, da sonst der Sekundenzähler immer im Hintergrund laufen würde. Sobald der Zähler Sek. „59“erreicht hat, sendet er ein Signal an die Minuten, so dass er die Minuten erhöht, genauso wie von Minuten auf Stunden. Außerdem gibt es Bewegungssensoreingänge, und die Signale werden an die FSM-Komponente gesendet, wo sie bestimmt, in welchen Zustand je nach Sensor gewechselt werden soll. Sein Ausgangszustand ist, wenn alle Sensoren ausgeschaltet sind. Die gesamte Beschreibung von FSM wurde in Schritt 2 beschrieben.
Schritt 5: Code
Schritt 6: Zukünftige Änderungen
In Zukunft wäre es besser, dem Projekt echte Bewegungssensoren mit einer Kombination von LEDs hinzuzufügen. Damit wir die Komplexität des Projekts erhöhen und sehen können, ob wir einen modernen Bewegungslichtsensor entwickeln können. Dies würde zu weiteren Problemen führen, da Sie auch an die Nähe des Objekts denken müssen, damit die Lichter entsprechend eingeschaltet werden. Darüber hinaus sind alle anderen Funktionalitäten vor. Außerdem wird die Funktionalität der Digitaluhr mit einem FSM verbessert, anstatt darauf zu warten, dass der Benutzer Sekunden (e_sec) einschaltet. Die FSM für eine Digitaluhr wäre ähnlich der des Bewegungssensors.
Schritt 7: Fazit
Insgesamt hat uns dieses Projekt geholfen, besser zu verstehen, wie endliche Automaten funktionieren. Außerdem müssen Sie bei FSM immer im Hinterkopf behalten, dass Sie wissen müssen, in welchem Zustand Sie sich befinden und wann Sie in einen anderen Zustand wechseln möchten. Mit anderen Worten, Sie müssen wissen, wo Sie sich zu einem bestimmten Zeitpunkt befinden und wo Sie später sein werden. Denken Sie daran, welche Faktoren es Ihnen (Eingaben) ermöglichen, in einen anderen Zustand zu wechseln, und was es tun wird, wenn es dort ankommt (Ausgabe). Wir haben auch gelernt, wie man Informationen innerhalb des basys3-Boards mit Flip-Flops speichert, die Register sind, und wie man die Zeit mit Zählern erhöht, die Binärzahlen addieren.
Schritt 8: Zitat
Die two_sseg.vhdl = universal_sseg_dec.vhd
Ratner, James und Cheng Samuel.. Ratface Engineering.universal_sseg_dec.vhd