Cuprins:

CPE 133 metronom: 3 pași
CPE 133 metronom: 3 pași

Video: CPE 133 metronom: 3 pași

Video: CPE 133 metronom: 3 pași
Video: #1 std 6 maths assignment solution | std 6 maths final exam solution | assignment April 2022 2024, Noiembrie
Anonim
CPE 133 metronom
CPE 133 metronom

Pentru proiectul nostru final de la Cal Poly am creat un dispozitiv de menținere a tempo-ului numit metronom, am ales acest proiect datorită interesului muzical și al designului digital. Am folosit laboratoare anterioare în CPE 133 pentru a ne ajuta să ne proiectăm codul și tutorialele online pentru a ajuta la construirea circuitului cu LED-uri de pe panou.

Pasul 1: Arhitectura sistemului

Arhitectura sistemului
Arhitectura sistemului
Arhitectura sistemului
Arhitectura sistemului
Arhitectura sistemului
Arhitectura sistemului

Am implementat acest design folosind o placă FPGA Basys 3, Breadboard, LED-uri, rezistențe și jumperi pentru conectare.

Scopul acestui design este de a crește și de a reduce rata cu care LED-ul luminează intermitent înainte și înapoi. Ritmul în care clipesc se numește tempo. Tempo-ul dorit a fost atins utilizând butoanele de pe placa Basys 3 FPGA pentru a mări sau micșora tempo-ul luminii.

Dacă butonul sus a fost apăsat, luminile au crescut în viteză, dacă butonul jos a fost apăsat, viteza ar scădea.

Pasul 2: Arhitectura circuitului

Arhitectura circuitului
Arhitectura circuitului
Arhitectura circuitului
Arhitectura circuitului

Arhitectura sistemului: Buton De-bounce: Am implementat un buton de-bounce în circuit pentru a ne asigura că atunci când am făcut clic pe un buton pentru a crește tempo-ul cu un interval. Fără deconectare, o singură apăsare a butonului ar crește odată cu frecvența ceasului.

Schimbător de tempo: Schimbătorul de tempo a fost folosit pentru a crește sau micșora valoarea MAX_COUNT folosită de divizorul de ceas pentru a controla ieșirea de ceas care acționează LED-ul.

Înregistrare: s-a folosit un registru pentru a păstra valorile noului nostru MAX_COUNT care au fost scoase din comutatorul de tempo. A fost adăugat un CLR în registru pentru a reseta MAX_COUNT la o valoare corespunzătoare unei frecvențe de ceas de 1 secundă.

Clock Divider: Un divisor de ceas este folosit pentru a încetini impulsurile de ceas ale plăcii BASYS 3, acest lucru se face prin împărțirea frecvenței ceasului la valoarea MAX_COUNT care a fost modificată în comutatorul de tempo.

Shift Register: a fost utilizat un registru de schimbare de 4 biți modificat pentru a transmite o valoare „1” sau mare la circuitul nostru LED de pe placa de panou de pe marginea ascendentă a impulsului de ceas. Cu 4 LED-uri pe panou, am reușit să trimitem doar 1 din cele 4 LED-uri la un moment dat, succesiv, realizând o secvență repetată de 4 bătăi. Registrul de schimbare a fost modificat astfel încât ieșirea pe 4 biți să conțină doar o valoare mare, adică „0001” sau „0100”.

Recomandat: