CPE 133 Metronomi: 3 vaihetta
CPE 133 Metronomi: 3 vaihetta

Video: CPE 133 Metronomi: 3 vaihetta

Video: CPE 133 Metronomi: 3 vaihetta
Video: CPE 133 Project: Square Muse Sequencer 2025, Tammikuu
Anonim
CPE 133 Metronomi
CPE 133 Metronomi

Viimeisessä Cal Poly -projektissamme loimme metronomiksi kutsutun tempoa pitävän laitteen, valitsimme tämän projektin musiikin ja digitaalisen suunnittelun vuoksi. Olemme käyttäneet CPE 133: n aiempia laboratorioita koodimme suunnittelussa ja online -opetusohjelmia leipälevyn LED -piirin rakentamisessa.

Vaihe 1: Järjestelmäarkkitehtuuri

Järjestelmäarkkitehtuuri
Järjestelmäarkkitehtuuri
Järjestelmäarkkitehtuuri
Järjestelmäarkkitehtuuri
Järjestelmäarkkitehtuuri
Järjestelmäarkkitehtuuri

Toteutimme tämän suunnittelun käyttämällä Basys 3 FPGA -korttia, leipälevyä, LED -valoja, vastuksia ja hyppyjohtimia.

Tämän suunnittelun tarkoituksena on lisätä ja vähentää nopeutta, jolla LED -valot vilkkuvat edestakaisin. Vauhtia, jolla ne vilkkuvat, kutsutaan tempoksi. Haluttu tempo saavutettiin käyttämällä Basys 3 FPGA -kortin painikkeita valon nopeuden lisäämiseen tai vähentämiseen.

Jos ylös -painiketta painettiin, valojen nopeus lisääntyi, ja alas -painiketta painettaessa nopeus pieneni.

Vaihe 2: Piiriarkkitehtuuri

Piiriarkkitehtuuri
Piiriarkkitehtuuri
Piiriarkkitehtuuri
Piiriarkkitehtuuri

Järjestelmäarkkitehtuuri: Painikkeiden poistuminen käytöstä: otimme käyttöön painikkeen poistamisen piirissä varmistaaksemme, että kun napsautimme painiketta lisätäksesi tempoa yhdellä aikavälillä. Ilman poistumista ei yksi painikkeen painallus kasvaisi kellon taajuuden mukaan.

Tempo -vaihtaja: Tempo -vaihtajaa käytettiin lisäämään tai vähentämään MAX_COUNT -arvoa, jota kellonjakaja käytti ohjaamaan LED -lähtöä.

Rekisteri: Rekisteriä käytettiin uuden MAX_COUNT -arvon säilyttämiseen, joka lähetettiin tempo -vaihtajasta. Rekisteriin lisättiin CLR palauttaaksesi MAX_COUNT arvoon, joka vastaa 1 sekunnin kellotaajuutta.

Kellojakaja: Kellojakajaa käytetään hidastamaan BASYS 3 -kortin kellopulsseja. Tämä tehdään jakamalla kellotaajuus MAX_COUNT -arvolla, joka on muutettu tempo -vaihtajassa.

Siirtorekisteri: muokattua 4-bittistä siirtorekisteriä käytettiin `` 1 '' tai suuren arvon tuottamiseen LED-piirillemme kellopulssin nousevan reunan leipälevyllä. Kun leipälaudalla oli 4 LEDiä, pystyimme tuottamaan peräkkäin vain yhdelle neljästä LEDistä kerrallaan, jolloin toistuva 4-tahtijakso. Siirtorekisteriä muutettiin siten, että 4-bittinen lähtö sisälsi vain yhden korkean arvon, eli "0001" tai "0100".