Inhoudsopgave:

CPE 133 metronoom: 3 stappen
CPE 133 metronoom: 3 stappen

Video: CPE 133 metronoom: 3 stappen

Video: CPE 133 metronoom: 3 stappen
Video: CPE 133 Project: Square Muse Sequencer 2024, November
Anonim
CPE 133 metronoom
CPE 133 metronoom

Voor ons afstudeerproject bij Cal Poly hebben we een apparaat voor het bijhouden van tempo gemaakt, een metronoom genaamd, we kozen dit project vanwege een interesse in muziek en digitaal ontwerp. We hebben eerdere labs in CPE 133 gebruikt om onze code te ontwerpen en online tutorials om te helpen bij het bouwen van het LED-circuit op het breadboard.

Stap 1: Systeemarchitectuur

Systeem Architectuur
Systeem Architectuur
Systeem Architectuur
Systeem Architectuur
Systeem Architectuur
Systeem Architectuur

We hebben dit ontwerp geïmplementeerd met behulp van een Basys 3 FPGA-bord, Breadboard, LED's, weerstanden en jumpers voor verbinding.

Het doel van dit ontwerp is om de snelheid waarmee de LED's heen en weer knipperen te verhogen en te verlagen. Het tempo waarmee ze knipperen, wordt een tempo genoemd. Het gewenste tempo werd bereikt door de knoppen op het Basys 3 FPGA-bord te gebruiken om het tempo van het licht te verhogen of te verlagen.

Als de omhoog-knop werd ingedrukt, namen de lichten toe in snelheid, als de neer-knop werd ingedrukt, zou de snelheid afnemen.

Stap 2: Circuitarchitectuur

Circuitarchitectuur
Circuitarchitectuur
Circuitarchitectuur
Circuitarchitectuur

Systeemarchitectuur: Knop de-bounce: we hebben een knop-de-bounce in het circuit geïmplementeerd om ervoor te zorgen dat wanneer we op een knop klikken het tempo met één interval wordt verhoogd. Zonder de de-bounce zou een enkele druk op de knop toenemen met de frequentie van de klok.

Tempo-wisselaar: Tempo-wisselaar werd gebruikt om de MAX_COUNT-waarde die door de klokverdeler wordt gebruikt te verhogen of te verlagen om de klokuitvoer die de LED aanstuurt te regelen.

Register: Er werd een register gebruikt om de waarden van onze nieuwe MAX_COUNT vast te houden die werd uitgevoerd door de tempowisselaar. Er is een CLR aan het register toegevoegd om de MAX_COUNT opnieuw in te stellen op een waarde die overeenkomt met een klokfrequentie van 1 seconde.

Clock Divider: Een klokdeler wordt gebruikt om de klokpulsen van het BASYS 3-bord te vertragen, dit wordt gedaan door de klokfrequentie te delen door de MAX_COUNT waarde die is gewijzigd in de tempowisselaar.

Shift Register: een aangepast 4-bits schuifregister werd gebruikt om een '1' of hoge waarde uit te voeren naar ons LED-circuit op het breadboard op de stijgende flank van de klokpuls. Met 4 LED's op het breadboard waren we in staat om slechts 1 van de 4 LED's tegelijk uit te voeren, achtereenvolgens, waardoor een zich herhalende reeks van 4 beats ontstond. Het schuifregister werd zodanig aangepast dat de 4-bits uitvoer slechts 1 hoge waarde bevatte, namelijk "0001" of "0100".

Aanbevolen: