Obsah:
- Krok 1: Importujte dané soubory VHDL
- Krok 2: Rozdělení špičkového modulu VHDL
- Krok 3: Rozdělení modulu VHDL Kill Switch
- Krok 4: Rozdělení modulu VHDL Flip Flop
- Krok 5: Rozdělení modulu VHDL Piezo Buzzer
- Krok 6: Rozdělení souboru omezení VHDL
- Krok 7: Sestavení základen 3
- Krok 8: Implementace souborů VHDL do základen 3
- Krok 9: Použití desky Basys 3
- Krok 10: Ukažte se
Video: Model univerzálního vypínače: 10 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Už vás nebaví kontrolovat, zda ve vašem domě zhasla všechna světla, než jdete spát? Přejete si, abyste mohli bez jakýchkoli potíží vypnout každé světlo najednou? Abychom ušetřili energii a čas, rozhodli jsme se vytvořit systém, který by teoreticky mohl zavřít celý dům najednou.
Pomocí několika LED diod a základní desky 3 jsme vymodelovali důkaz tohoto konceptu a vytvořili jsme design, který by deaktivoval všechny LED diody pouhým stisknutím tlačítka. Tento model by mohl být aplikován také na skutečný systém domácího osvětlení, i když by to vyžadovalo složitější zapojení a úpravy daných souborů VHDL.
Krok 1: Importujte dané soubory VHDL
Aby náš model fungoval správně, budete si muset stáhnout software, který dává desce Basys 3 pokyny.
Nejprve si budete muset stáhnout syntetizační nástroj pro implementaci souborů vhdl na hardware. Pokud si chcete být jisti, že celý kód bude plně replikovat náš design bez nutnosti jakýchkoli úprav, doporučujeme použít Vivado 2016.2. Poté, co si nainstalujete Vivado, můžete vytvořit projekt a stáhnout naše zdrojové soubory. Přidejte je jako zdroje do svého projektu, nezapomeňte přidat také soubor omezení!
Dále vysvětlíme, co každý ze zdrojových souborů dělá. Pokud se chcete dostat pouze k fyzické konstrukci zařízení, přeskočte kroky 2 až 6.
Krok 2: Rozdělení špičkového modulu VHDL
Nejvyšší modul projektu spojuje všechny jednotlivé moduly komponent s použitým hardwarem. Jak vidíte, moduly killSwitch a buzzerControl jsou definovány jako komponenty nahoře.
V dolní části je uvedeno, jak jsou tyto moduly propojeny. Na desku jsme připojili čtyři LED diody a spojili je s moduly killSwitch dev0 až dev3. Máme definovány čtyři moduly killSwitch, protože jeden potřebujeme ke správě stavu každé připojené LED. Každý z těchto modulů využívá hodinový a tlačítkový signál, který jsme vytvořili v definici nejvyššího modulu, a také jejich příslušné signály vstupních spínačů a výstupních zařízení.
Modul ovládání bzučáku ve spodní části aktivuje bzučák stisknutím univerzálního tlačítka pro vypnutí. Jak vidíte, modulu ovládání bzučáku je předáván signál hodin a tlačítek jako vstupy. Je také předán výstupnímu kolíku fyzického bzučáku, aby se odpovídajícím způsobem ovládal.
Krok 3: Rozdělení modulu VHDL Kill Switch
Kill Switch je univerzální vypínací tlačítko a modul se zabývá především jeho propojením s dalšími prvky obvodu, takže když je stisknuto, všechna světla zhasnou.
Zatímco horní modul zpracovává připojení fyzického hardwaru k softwaru, modul killSwitch zpracovává hlavní logiku každého zařízení. Modul přijímá vstupy pro hodinový signál, univerzální vypínací tlačítko a přepínač zařízení. Na oplátku kontroluje stav pinu zařízení, ke kterému je připojen.
V části architektury kódu vidíme, že má pro ukládání paměti závislost na modulu dFlipFlop. Můžete také vidět, že jsme deklarovali čtyři signály, které budou použity k připojení klopného obvodu a také k implementaci našich logických příkazů. V behaviorální části kódu jsme vytvořili instanci modulu dFlipFlop a portům přiřadili naše I/O signály.
Odtud hlavní část naší logiky spočívá v hodnotách signálu pro invertState a isDevOn. Náš logický základ pro zařízení je následující: „Při každém stisknutí spínače se světlo změní na stav zapnutí/vypnutí. Kdykoli stisknete tlačítko a dioda LED právě svítí, dioda LED změní svůj stav na vypnutý. Z těchto dvou příkazů můžeme extrapolovat, že stav LED by měl být XOR přepínače a našeho paměťového prvku. Tímto způsobem změna buď převrátí LED. To lze vidět implementované v signálu isDevOn. Stav LED pro paměťový prvek je zpracován naším signálem invertState. Pokud LED dioda svítí a tlačítko je stisknuto, náš paměťový prvek se aktualizuje a obrátí svůj stav. Tím se také invertuje stav LED.
Krok 4: Rozdělení modulu VHDL Flip Flop
Jedním z problémů našeho návrhu byla skutečnost, že po použití vypínače bude možná nutné dvakrát zapnout světla, aby se vrátila do zapnuté polohy. To by pro lidi v průběhu času bylo docela nepříjemné. Tuto nepříjemnost se nám podařilo obejít začleněním „Flip Flop“, obvodového prvku schopného ukládat informace, do našeho návrhu. Nyní si systém pamatuje, zda byl předtím zapnutý světelný spínač, takže pokud jej znovu otočíte, rozsvítí se bez ohledu na jeho počáteční polohu.
Kód VHDL používá příkazy if a else, aby vytvořil Flip Flop jako součást našeho návrhu obvodu. Zajišťuje, že když hodinový signál přechází z nízkého do vysokého stavu, když je žárovka zapnutá a když je stisknutý vypínač, přepne výstup žabky jeho vstup. Když je vstup přepsán, klopný obvod se převrátí.
Krok 5: Rozdělení modulu VHDL Piezo Buzzer
Tento soubor je trochu nadbytečný, pokud jde o hardwarový design, ale je nezbytný pro bezproblémový běh horního modulu a souborů omezení. Pokud se rozhodnete nepoužívat bzučák Piezo, stáhněte si tento soubor, ale nepřipojujte bzučák k desce Basys 3.
Piezo bzučák po stisknutí tlačítka pro deaktivaci přehraje tón se dvěma notami, který uživateli poskytne zvukovou zpětnou vazbu o tom, že bylo tlačítko stisknuto. Implementovali jsme to behaviorálně ve VHDL prostřednictvím řady příkazů if ve struktuře procesu. Začali jsme vytvořením celočíselné hodnoty, abychom měli přehled o tom, kolik hodinových změn došlo. Jakmile proces začne, program stráví první půl sekundy (0 až 50 milionů hodin) vydáním poznámky A při 440 hertzech. Toho je dosaženo převrácením signálu piezo bzučáku každých párkrát 227272 hodin tiků s funkcí modulo. Toto číslo je výsledkem vydělení hodinového signálu desky (100 MHz) požadovanou frekvencí (400 Hz). Během druhé půl sekundy (50 až 100 milionů hodin tiká) deska vydá notu F na 349,2 hertzů stejným způsobem jako dříve. Po jedné sekundě program dále nezvýší proměnnou hodin a zastaví výstup čehokoli z piezo bzučáku. Opětovným stisknutím tlačítka univerzálního vypnutí resetujete toto číslo na 0 a restartujete cyklus šumu.
Krok 6: Rozdělení souboru omezení VHDL
Soubor omezení říká Vivadovi, jaká zařízení na desce Basys 3 používáme. Také poskytuje Vivado názvy, které jsme dali zařízením v našem kódu. Vivado tyto informace potřebuje, aby věděl, jak propojit naše logické prvky s fyzickým hardwarem. Soubor omezení obsahuje velké množství komentovaného (nepoužitého) kódu. Tyto řádky kódu odkazují na zařízení na desce, která nepoužíváme.
Zařízení, která používáme, obsahují na desce čtyři vstupní přepínače označené V17, V16, W16 a W1. Používáme také univerzální vypínací tlačítko s označením U18. Výstupními piny pro naše čtyři připojené LED jsou JB4, JB10, JC4 a JC10. Pro náš piezzo bzučák používáme výstupní pin JA9.
Jak jsme uvedli v členění horního modulu, pokud chcete na desku přidat další diody LED nebo jiná zařízení, musíte zvýšit rozsah signálů sw a dev, přidat další moduly killSwitch a spojit je dohromady. Poté musíte tyto názvy proměnných propojit s hardwarem zařízení prostřednictvím souboru omezení. To lze provést odkomentováním (opětovným povolením) řádků kódu přidružených k pinům, které chcete použít, a poté přidáním názvu přidružené proměnné do horního modulu. Správnou syntaxi lze kopírovat ze zařízení, která používáme. Názvy pinů, které chcete použít na desce, najdete v referenční příručce Baasys 3 zde.
Krok 7: Sestavení základen 3
Budete muset zapojit své LED diody do správných I/O portů základen 3. Podle uvedených obrázků určete, jaké jsou správné porty, protože pokud zapojíte LED do nesprávného portu, nerozsvítí se. Pokud jste se rozhodli připojit piezo bzučák, budete jej také muset připojit ke správným I/O portům.
Když je deska připravena, připojte ji k počítači pomocí kabelu USB.
Krok 8: Implementace souborů VHDL do základen 3
Nyní, když je vaše deska připravena a váš kód je hotový, můžete konečně sestavit model.
Jakmile budete mít svůj projekt ve Vivado nastavený, musíte kliknout na tlačítko „Generovat bitstream“, abyste mohli kód zkompilovat, než bude nahrán na desku. Pokud se vám v tuto chvíli zobrazí chybová zpráva, musíte znovu zkontrolovat, zda se váš kód přesně shoduje s naším. Když říkám přesně, mám na mysli dokonce i středníky nebo typy závorek, které se používají. Jakmile bude váš bitstream úspěšně zapsán, přejděte do správce hardwaru ve Vivado a klikněte na tlačítko „Otevřít cíl“, poté hned poté klikněte na „Programovat zařízení“. Vaše deska Basys 3 by nyní měla být plně funkční.
Krok 9: Použití desky Basys 3
Nyní, když je deska Basys 3 v provozu a byla naprogramována tak, aby reprezentovala náš model, musíte vědět, jak ji používat.
Každý ze čtyř spínačů, které jsou nejvíce vpravo, ovládá jednu z LED diod, jejich přepnutí způsobí zapnutí nebo vypnutí LED. Pokud se kontrolka LED neaktivuje, zkontrolujte, zda jste zapojeni do správného I/O portu a zda je vaše LED dioda především funkční.
Pokud chcete vypnout všechny LED diody najednou, musíte stisknout prostřední tlačítko v sadě pěti tlačítek zobrazených výše.
Krok 10: Ukažte se
Tento model slouží jako úhledná malá novinka, kterou můžete předvést před svými přáteli a rodinou. Může být teoreticky také použit k implementaci univerzálního vypínače do vašeho domácího elektrického systému, pokud vyměníte LED za vodiče vedoucí k vašim světlům. I když je to možné, stále bychom proti tomu museli radit. Pokud se pokusíte znovu zapojit bez pomoci elektrikáře, existuje potenciál vážně poškodit vás nebo váš domov.
Doporučuje:
Dodatečná montáž světel s dálkovým ovládáním - stávající nástěnné vypínače fungují: 8 kroků
Dodatečná montáž světel s dálkovým ovládáním - stávající nástěnné vypínače fungují: Aktualizace 4. října 2017 - Viz dálkově ovládaný spínač světel - dovybavení. Přepínač světel stále funguje, žádné další psaní pro vylepšenou verzi Bluetooth s nízkou spotřebou energie (BLE). Aktualizace 8. listopadu 2016 - Aktualizováno o změny provedené v projektu Dodatečně namontované časovače ventilátoru
Jak vytvořit obvod drátového vypínače pomocí Z44N MOSFET: 7 kroků
Jak vyrobit obvod Wire Tripper pomocí Z44N MOSFET: Hii příteli, dnes udělám jednoduchý obvod Wire Tripper. Pokud někdo přeruší drát, pak bude znít bzučák. Dnes tento projekt udělám pomocí IRFZ44N MOSFET. Začněme
Vytvoření univerzálního dálkového ovladače s NodeMCU: 7 kroků
Vytvoření univerzálního dálkového ovladače s NodeMCU: V tomto projektu postavíme univerzální dálkové ovládání schopné klonování a odesílání infračervených signálů. K řízení celého tohoto procesu bude použito webové rozhraní. NodeMCU ve spojení s infračerveným fotoreceptorem bude zodpovědný za klonování
Integrovaná deska univerzálního rozhraní - ovládání USB/Bluetooth/WIFI: 6 kroků
Integrovaná deska univerzálního rozhraní - ovládání USB/Bluetooth/WIFI: Často zjišťuji, že vytvářím knihovny pro nové integrované moduly úplně od začátku na základě datového listu zařízení. Při generování knihovny zjišťuji, že se zaseknu v cyklu kódu, kompilace, programování a testování, když zajišťuji, aby věci fungovaly a byly bez chyb. Komunikace často
Hackování vašeho univerzálního napájecího adaptéru IGo: 4 kroky
Hackování vašeho univerzálního napájecího adaptéru IGo: iGo je univerzální napájecí adaptér pro napájení věcí, jako jsou notebooky, displeje a mobilní zařízení. Nabízejí širokou škálu zaměnitelných tipů pro připojení konkrétního zařízení. Na místním trhu jsem & našel LCD monitor Apple Studio Display