Obsah:

Základy 3 Budík: 9 kroků
Základy 3 Budík: 9 kroků

Video: Základy 3 Budík: 9 kroků

Video: Základy 3 Budík: 9 kroků
Video: Apple Watch - Tipy a triky (nejen) pro začátečníky /1. díl/ 2024, Říjen
Anonim
Basys 3 Budík
Basys 3 Budík

Náš projekt vytváří budík pomocí desky Basys 3 FPGA, Arduina a desky reproduktorů. Uživatel je schopen zadat aktuální čas na desku pomocí 11 vstupních přepínačů na základnách 3 a uzamknout hodnotu pomocí středního tlačítka na desce. Uživatel pak může zadat čas buzení pomocí stejných přepínačů, ale stisknutím levého tlačítka čas alarmu uzamkne. Pokud je zadán špatný čas, lze stisknout tlačítko pro reset (horní tlačítko) a aktuální čas a budík se nastaví na 00:00. Uživatel pak může spustit hodiny pomocí spínače úplně vlevo a zapnout alarm pomocí dalšího přepínače. Když je budík zapnutý, budík vydá zvuk, když se shoduje čas a nastavený čas budíku.

Krok 1: Schéma černé skříňky

Schéma černé skříňky
Schéma černé skříňky
Schéma černé skříňky
Schéma černé skříňky

Náš projekt jsme zahájili nakreslením diagramu černé skříňky pro vizualizaci vstupů a výstupů potřebných v našem programu. Následující vstupy pro náš program, jako je 5bitový vstup (hodina_in), byly inicializovány tak, aby určovaly 24hodinový čas, 6bitový (min_in) vstup pro zobrazení až 60 minut, tlačítko reset (Rst_b), které uživateli umožňuje změnit svůj časový vstup, 1bitový vstup (alm_en), který načte poplachový vstup, 1bitový vstup (alarm_sw) pro vypnutí budíku, když je aktivován, 1bitový vstup (e_sec), který ovládá, kdy je počítadlo sekund poběží, 1bitový vstup (Led_btn), který nastavuje aktuální čas, a nakonec 1bitový vstup (clk), který řídí čas zobrazovaný na desce Basys 3. Výstupy jsou (alm_on), které posílají signál do Arduina, sseg výstup, který zobrazuje vstupní čas na Basys 3, a anodový výstup, který řídí, kde jsou zobrazeny vstupy na displeji sedmi segmentů.

Krok 2: Pomalé hodiny

Pomalé hodiny
Pomalé hodiny

Pomalé hodiny nebo soubor clock_div2 vytvářejí hodiny, jejichž frekvence je 2 hz. Pokud tyto hodiny vložíme do počítadla sekund, hodnota sekund se zvýší o jednu každou sekundu. Pomalé hodiny se používají k vytvoření spolehlivého hodinového signálu, který se mění z nízkých na vysoké jednou za sekundu.

Krok 3: Počitadlo

Čelit
Čelit
Čelit
Čelit

Počítadlo komponent (minuty a sekundy):

Základní funkcí minut a sekund je, že jsou čítače. Počitadlo minut převezme vstup (Vin), což je signál ze vstupů (Min_in), a poté se počítá, dokud nedosáhne zadaného požadovaného vstupu. Sekundy přebírají pouze vstup přepínače (e_Sec), protože jej nelze zobrazit na sedmém segmentu, a počítají na pozadí, jakmile je přepínač vysoký '1'. Oba tam vypisují hodnotu do (Qout) a poté jsou uloženy v (datech), která je posílají do SSEG, což se provádí v propojovacím souboru. Když minuty a sekundy dosáhnou hodnoty 59, resetují se a jejich výstup je „1“, aby se zvýšily minuty/hodiny. Lze je také mapovat resetem (rst_b) na jejich vstupy.

Krok 4: Počítadlo hodin

Počítadlo hodin
Počítadlo hodin
Počítadlo hodin
Počítadlo hodin

Hodina čítače komponent

Podobně jako u čítače komponent minut a sekund hodinová složka přebírá vstup s, jako je (Vin), což je signál z propojení vstupního souboru (Hour_in), a má výstupy, které jsou stejným způsobem propojeny v minutách a sekundách. Když počítaná hodnota hodiny dosáhne 24 00, resetuje se na 00 00.

Krok 5: Alarm

Poplach
Poplach
Poplach
Poplach
Poplach
Poplach
Poplach
Poplach

Soubor alarmu.vhd se skládá z d-flip-flopů, což jsou paměťová zařízení, která mohou ukládat digitální data. Soubor alarmu slouží k uložení času, kdy bude alarm aktivován. Abychom uložili data hodin (5bitový vstup) a minut (6bitový vstup), musíme v našem souboru alarmů vyrazit 11 d-flip-flopů. K tomu musíme nejprve importovat logiku řídící činnost d-flip-flop a mapovat komponenty. Každý z 11 d-flip-flopů bude ukládat jeden bit dat ze vstupů a umožní mapování dat na výstupy souboru alarmu. Protože d-flip-flops ukládají data, jsme schopni je použít i později, i když byly změněny vstupní přepínače.

Krok 6: Universal Seven Segment Display Driver

Univerzální sedmisegmentový ovladač displeje
Univerzální sedmisegmentový ovladač displeje
Univerzální sedmisegmentový ovladač displeje
Univerzální sedmisegmentový ovladač displeje
Univerzální sedmisegmentový ovladač displeje
Univerzální sedmisegmentový ovladač displeje

Univerzální sedmisegmentový ovladač displeje přijímá vstupy ze sady hodin a hodin a je schopen je vyvést na sedmisegmentový displej na desce. Řidič je schopen vyvést na desku dva samostatné počty najednou. Tuto funkci jsme použili k zobrazení času a minut zvlášť. Sedmisegmentový displej je schopen aktivovat pouze jedno číslo najednou, takže soubor sseg musí používat multiplexování k zobrazení všech čísel času současně. Hodinový signál desek je přiváděn do sseg, aby byl zachován správný čas pro multiplexování. K převodu vstupů do souboru do podoby, kterou lze vyvést na sedmisegmentový displej, je nezbytný binární až binárně kódovaný desítkový kodér. Konečný výstup souboru sseg je namapován na sedmisegmentový displej a na displeji je zobrazen správný čas.

Krok 7: Propojit soubor

Soubor odkazu
Soubor odkazu
Soubor odkazu
Soubor odkazu
Soubor odkazu
Soubor odkazu

Soubor odkazu spojuje všechny ostatní aspekty programu a mapuje signály na jejich správné umístění. Každá součást je vložena a vytvořena v rámci souboru. Signály se používají k přenosu dat z jedné komponenty do druhé. Mapování portů se bude řídit výše uvedeným diagramem černé skříňky. Soubor odkazu také obsahuje logiku, která určuje, kdy je alarm aktivován. V tomto bodě již bude většina projektu dokončena. Zbývající práce je směrování každého signálu na příslušné místo.

Krok 8: Arduino

Arduino
Arduino
Arduino
Arduino

Arduino se používá k aktivaci reproduktoru a ovládání tónu a trvání noty přehrávané reproduktorem. Arduino čte digitální signál z desky Basys 3. Když je tento signál vysoký, arduino vydá signál PWM ovládající tón a dobu trvání alarmu. Výstupní signál z arduina se připojuje ke vstupnímu signálu desky ovladače reproduktoru, což zvyšuje hlasitost reproduktoru. Arduino dělá tento proces velmi rychle a opakuje se mnohokrát za sekundu.

Krok 9: Vedení kabelu

Směrování kabelů
Směrování kabelů

Deska arduino a Basys 3 musí být fyzicky připojena k přenosu signálů mezi deskami. První kabel k drátu bude od zemnicího kolíku JA PMOD základen 3 po zemnící kolík arduina. Dále připojte vodič z pinu 1 JA PMOD základen 3 k digitálnímu pinu 7 arduina. Dále připojte dva zemnící kolíky z arduina k uzemňovacím kolíkům reproduktoru. Dále připojte výstup 3,3 V arduina ke kolíku Vcc ovladače reproduktoru. Dále připojte digitální kolík 9 arduina ke kolíku In ovladače reproduktoru.

Doporučuje: