Innholdsfortegnelse:

CPE 133 metronom: 3 trinn
CPE 133 metronom: 3 trinn

Video: CPE 133 metronom: 3 trinn

Video: CPE 133 metronom: 3 trinn
Video: 130 BPM 3/4 Wood Metronome HD 2024, November
Anonim
CPE 133 metronom
CPE 133 metronom

For vårt siste prosjekt på Cal Poly opprettet vi en tempoholdende enhet kalt en metronom, vi valgte dette prosjektet på grunn av interesse for musikk og digital design. Vi brukte tidligere laboratorier i CPE 133 for å hjelpe til med å designe koden vår og online opplæringsprogrammer for å hjelpe til med å bygge LED -kretsen på brødbrettet.

Trinn 1: Systemarkitektur

system arkitektur
system arkitektur
system arkitektur
system arkitektur
system arkitektur
system arkitektur

Vi implementerte dette designet ved å bruke et Basys 3 FPGA -bord, brødbrett, LED -er, motstander og hoppere for tilkobling.

Formålet med denne designen er å øke og redusere hastigheten som LED -lampene blinker frem og tilbake. Tempoet de blinker kalles et tempo. Ønsket tempo ble oppnådd ved å bruke knappene på Basys 3 FPGA -brettet for å øke eller redusere lysets tempo.

Hvis du trykket på opp -knappen, økte lysene i hastighet, hvis ned -knappen ble trykket, ville hastigheten reduseres.

Trinn 2: Kretsarkitektur

Kretsarkitektur
Kretsarkitektur
Kretsarkitektur
Kretsarkitektur

Systemarkitektur: Button De-bounce: Vi implementerte en knapp de-bounce i kretsen for å sikre at når vi klikket på en knapp for å øke tempoet med ett intervall. Uten de-bounce ville et enkelt trykk på knappen øke med frekvensen på klokken.

Tempo -veksler: Tempo -veksler ble brukt til å øke eller redusere MAX_COUNT -verdien som klokkeskilleren brukte for å kontrollere klokkeutgangen som driver LED -en.

Register: Et register ble brukt til å holde verdiene til det nye MAX_COUNT vårt som ble sendt ut fra tempoveksleren. En CLR ble lagt til i registeret for å tilbakestille MAX_COUNT til en verdi som tilsvarer en 1-sekunders klokkefrekvens.

Clock Divider: En klokkedeler brukes til å bremse klokkeimpulsene til BASYS 3 -kortet, dette gjøres ved å dele klokkefrekvensen med MAX_COUNT -verdien som er endret i tempoveksleren.

Skiftregister: et modifisert 4-bits skiftregister ble brukt til å sende ut en '1' eller høy verdi til LED-kretsen på brødbrettet på den stigende kanten av klokkepulsen. Med 4 lysdioder på brødbrettet, klarte vi å sende ut til bare 1 av de 4 lysdiodene om gangen, etter hverandre, og lage en repeterende 4-takts sekvens. Skiftregisteret ble modifisert slik at 4-bits utdata bare inneholdt 1 høy verdi, dvs. "0001" eller "0100."

Anbefalt: