Inhaltsverzeichnis:

CPE 133 Metronom - Gunook
CPE 133 Metronom - Gunook

Video: CPE 133 Metronom - Gunook

Video: CPE 133 Metronom - Gunook
Video: CPE 133 Project: Square Muse Sequencer 2024, November
Anonim
CPE 133 Metronom
CPE 133 Metronom

Für unser letztes Projekt bei Cal Poly haben wir ein Tempo haltendes Gerät namens Metronom entwickelt. Wir haben dieses Projekt aufgrund eines Interesses an Musik und digitalem Design ausgewählt. Wir haben frühere Labs in CPE 133 verwendet, um unseren Code zu entwerfen, und Online-Tutorials, die beim Aufbau der LED-Schaltung auf dem Steckbrett helfen.

Schritt 1: Systemarchitektur

Systemarchitektur
Systemarchitektur
Systemarchitektur
Systemarchitektur
Systemarchitektur
Systemarchitektur

Wir haben dieses Design mit einem Basys 3 FPGA-Board, einem Breadboard, LEDs, Widerständen und Jumpern für die Verbindung implementiert.

Der Zweck dieses Designs besteht darin, die Geschwindigkeit zu erhöhen und zu verringern, mit der die LEDs hin und her blinken. Das Tempo, mit dem sie blinken, wird als Tempo bezeichnet. Das gewünschte Tempo wurde erreicht, indem die Tasten auf der Basys 3 FPGA-Platine verwendet wurden, um das Tempo des Lichts zu erhöhen oder zu verringern.

Wenn die Aufwärtstaste gedrückt wurde, erhöht sich die Geschwindigkeit der Lichter, wenn die Abwärtstaste gedrückt wurde, verringerte sich die Geschwindigkeit.

Schritt 2: Schaltungsarchitektur

Schaltungsarchitektur
Schaltungsarchitektur
Schaltungsarchitektur
Schaltungsarchitektur

Systemarchitektur: Button De-Bounce: Wir haben einen Button De-Bounce in die Schaltung implementiert, um sicherzustellen, dass, wenn wir auf einen Button geklickt haben, das Tempo um ein Intervall erhöht wird. Ohne die Entprellung würde ein einzelner Tastendruck mit der Taktfrequenz steigen.

Tempo Changer: Der Tempo Changer wurde verwendet, um den MAX_COUNT-Wert zu erhöhen oder zu verringern, der vom Taktteiler verwendet wird, um den Taktausgang zu steuern, der die LED antreibt.

Register: Ein Register wurde verwendet, um die Werte unseres neuen MAX_COUNT, das vom Tempowechsler ausgegeben wurde, zu halten. Ein CLR wurde dem Register hinzugefügt, um MAX_COUNT auf einen Wert zurückzusetzen, der einer 1-Sekunden-Taktfrequenz entspricht.

Clock Divider: Ein Clock-Divider wird verwendet, um die Taktimpulse des BASYS 3-Boards zu verlangsamen, dies geschieht durch Teilen der Clock-Frequenz durch den MAX_COUNT-Wert, der im Tempo Changer geändert wurde.

Schieberegister: Ein modifiziertes 4-Bit-Schieberegister wurde verwendet, um bei der steigenden Flanke des Taktimpulses eine '1' oder einen hohen Wert an unsere LED-Schaltung auf dem Steckbrett auszugeben. Mit 4 LEDs auf dem Steckbrett konnten wir jeweils nur 1 der 4 LEDs nacheinander ausgeben, wodurch eine sich wiederholende 4-Beat-Sequenz entsteht. Das Schieberegister wurde so modifiziert, dass die 4-Bit-Ausgabe nur 1 High-Wert enthielt, d. h. "0001" oder "0100".

Empfohlen: