Sadržaj:

Model univerzalnog prekidača za isključivanje: 10 koraka
Model univerzalnog prekidača za isključivanje: 10 koraka

Video: Model univerzalnog prekidača za isključivanje: 10 koraka

Video: Model univerzalnog prekidača za isključivanje: 10 koraka
Video: Лучший из ЛУЧШИХ???. Радиоприемник TECSUN PL680 ПОЛНЫЙ ОБЗОР!!! #tecsun 2024, Srpanj
Anonim
Model univerzalnog prekidača za isključivanje
Model univerzalnog prekidača za isključivanje

Jeste li umorni od provjeravanja da li su sva svjetla u vašoj kući isključena prije nego što odete na spavanje? Želite li da možete isključiti svako svjetlo odjednom bez ikakve buke? Kako bismo uštedjeli energiju i vrijeme, odlučili smo stvoriti sustav koji bi teoretski mogao zatvoriti cijelu kuću odjednom.

Modelirali smo dokaz ovog koncepta koristeći nekoliko LED dioda i osnovnu ploču 3 i stvorili dizajn koji bi deaktivirao sve LED diode pritiskom na gumb. Ovaj bi se model mogao primijeniti i na stvarni sustav kućne rasvjete, iako bi zahtijevao složenije ožičenje i izmjene danih VHDL datoteka.

Korak 1: Uvezite date VHDL datoteke

Da bi naš model ispravno radio, morat ćete preuzeti softver koji daje uputama Basys 3 ploči.

Prvo ćete morati preuzeti alat za sintezu za implementaciju vhdl datoteka na hardver. Ako želite biti sigurni da će sav kôd u potpunosti ponoviti naš dizajn bez potrebe za bilo kakvim izmjenama, preporučujemo vam da koristite Vivado 2016.2. Nakon što instalirate Vivado, možete stvoriti projekt i preuzeti naše izvorne datoteke. Dodajte ih kao izvore svom projektu, ne zaboravite dodati i datoteku ograničenja!

Zatim ćemo objasniti što svaka od izvornih datoteka radi. Preskočite korake od 2 do 6 ako samo želite doći do fizičke konstrukcije uređaja.

Korak 2: Kvar gornjeg modula VHDL -a

Kvar VHDL gornjeg modula
Kvar VHDL gornjeg modula
Kvar VHDL gornjeg modula
Kvar VHDL gornjeg modula

Gornji modul projekta je ono što povezuje sve module pojedinačnih komponenti s korištenim hardverom. Kao što vidite imamo module killSwitch i buzzerControl definirane kao komponente na vrhu.

Donji odjeljak navodi kako su ti moduli međusobno povezani. Povezali smo četiri LED diode na ploču i povezali ih s killSwitch modulima od dev0 do dev3. Imamo definirana četiri killSwitch modula jer nam je potreban jedan za upravljanje stanjem svake spojene LED diode. Svaki od ovih modula koristi signal sata i gumba koji smo stvorili u gornjoj definiciji modula, kao i odgovarajuće signale ulaznih sklopki i izlaznih uređaja.

Upravljački modul zujalice na dnu aktivira zujalicu kada se pritisne univerzalni gumb za isključivanje. Kao što vidite, upravljačkom modulu zujalice signal sata i tipke prosljeđuju se kao ulazi. Također se prosljeđuje izlazni pin fizičkog zujalice radi odgovarajuće kontrole.

Korak 3: Kvar VHDL Kill Switch modula

Kvar VHDL Kill Switch Modula
Kvar VHDL Kill Switch Modula
Kvar VHDL Kill Switch Modula
Kvar VHDL Kill Switch Modula

Kill Switch univerzalni je gumb za isključivanje, a modul se prvenstveno bavi povezivanjem s drugim elementima kruga tako da će se sva svjetla ugasiti kad se pritisne.

Dok gornji modul upravlja povezivanjem fizičkog hardvera sa softverom, modul killSwitch upravlja glavnom logikom svakog uređaja. Modul prima ulaze za signal sata, univerzalni gumb za isključivanje i prekidač uređaja. Zauzvrat kontrolira stanje pina uređaja na koji je spojen.

U odjeljku arhitekture koda vidimo da on ovisi o modulu dFlipFlop za pohranu memorije. Također možete vidjeti da smo deklarirali četiri signala koji će se koristiti za povezivanje japanke, kao i za implementaciju naših logičkih izjava. Unutar bihevioralnog odjeljka koda stvorili smo instancu dFlipFlop modula i dodijelili naše I/O signale portovima.

Odavde glavni dio naše logike leži u vrijednostima signala za invertState i isDevOn. Naša logička osnova za uređaj je sljedeća: "Svaki put kada je prekidač pritisnut, svjetlo će promijeniti stanje uključenosti/isključenosti. Svaki put kada se pritisne tipka, a LED je trenutno uključena, LED će promijeniti stanje u isključeno. " Iz ove dvije izjave možemo ekstrapolirati da bi stanje LED -a trebalo biti XOR prekidača i naš memorijski element. Na taj način promjena u bilo kojem od njih okreće LED. To se može vidjeti implementirano u isDevOn signalu. LED dioda za memorijski element upravlja našim invertState signalom. Ako LED svijetli i gumb je pritisnut, naš memorijski element će se ažurirati i promijeniti stanje. Time se također mijenja stanje LED diode.

Korak 4: Kvar VHDL Flip Flop modula

Kvar VHDL Flip Flop modula
Kvar VHDL Flip Flop modula

Jedan problem s našim dizajnom bila je činjenica da je nakon korištenja prekidača za isključenje možda trebalo dvaput uključiti svjetla koja su bila uključena kako bi se vratila u položaj za uključivanje. To bi s vremenom ljudima bilo prilično neugodno. Uspjeli smo zaobići ovu neugodnost uključivanjem u svoj dizajn "japanke", elementa sklopa sposobnog za pohranu informacija. Sada sustav pamti je li prekidač za svjetlo prethodno bio uključen, pa će se, ako se ponovno okrene, uključiti bez obzira na početni položaj.

VHDL kôd koristi naredbe if i else za stvaranje flip flopa kao komponente unutar našeg dizajna kola. On osigurava da kada signal sata pređe iz niskog u visoko stanje, kada je žarulja uključena i kada je prekidač za isključivanje pritisnut, izlaz na japankama prepisuje njegov ulaz. Kad je ulaz prepisan, japanka je obrnuta.

Korak 5: Kvar VHDL modula Piezo zujalica

Kvar VHDL modula Piezo zujalica
Kvar VHDL modula Piezo zujalica
Kvar VHDL modula Piezo zujalica
Kvar VHDL modula Piezo zujalica

Ova je datoteka pomalo suvišna što se tiče dizajna hardvera, ali je neophodna kako bi se datoteke gornjeg modula i ograničenja nesmetano izvodile. Ako odlučite ne koristiti Piezo zujalicu, preuzmite ovu datoteku, ali ne pričvršćujte zujalicu na Basys 3 ploču.

Zvučni signal Piezo će, nakon što pritisne gumb za onemogućavanje, reproducirati dvotonski ton koji će korisniku dati zvučnu povratnu informaciju da je gumb pritisnut. To smo ponašanje implementirali u VHDL kroz niz if naredbi u strukturi procesa. Počeli smo stvaranjem cjelobrojne vrijednosti za praćenje koliko je promjena sata došlo. Nakon što proces započne, program troši prvih pola sekunde (0 do 50 milijuna takta) emitirajući bilješku A na 440 herca. To se postiže invertiranjem signala piezo zujalice svakih čak i višekratnika od 227272 takta sata sa modulom. Taj je broj rezultat dijeljenja signala takta ploče (100 MHz) sa željenom frekvencijom (400 Hz). Tijekom druge polovice sekunde (50 do 100 milijuna takta) ploča emitira notu F na 349,2 herca na isti način kao i prije. Nakon jedne sekunde program više ne povećava varijablu sata i prestaje izlaziti bilo što iz piezo zujalice. Ponovnim pritiskom na univerzalni gumb za isključivanje ovaj se broj vraća na 0, čime se ponovno pokreće ciklus šuma.

Korak 6: Analiza datoteke ograničenja VHDL -a

Datoteka ograničenja govori Vivadu koje uređaje na Basys 3 ploči koristimo. On također nudi Vivadu nazive koje smo dali uređajima u našem kodu. Vivadu su ove informacije potrebne kako bi znao povezati naše logičke elemente s fizičkim hardverom. Datoteka ograničenja uključuje veliku količinu komentiranog (nekorištenog) koda. Ovi redovi koda upućuju na uređaje na ploči koje ne koristimo.

Uređaji koje koristimo uključuju četiri ulazna prekidača s oznakom V17, V16, W16 i W1 na ploči. Također koristimo univerzalni gumb za isključivanje s oznakom U18. Izlazni pinovi za naše četiri spojene LED diode su JB4, JB10, JC4 i JC10. Za naš piezzo zujalica koristimo izlazni pin JA9.

Kao što smo naveli u gornjoj analizi modula, ako želite dodati dodatne LED ili druge uređaje na ploču, morate povećati opseg SW i dev signala, dodati još killSwitch modula i povezati ih zajedno. Zatim morate povezati te varijable s hardverom uređaja putem datoteke ograničenja. To se može učiniti dekomentiranjem (ponovnim omogućavanjem) redaka koda povezanih s pinovima koje želite koristiti, a zatim dodavanjem imena pridružene varijable u gornji modul. Odgovarajuća sintaksa za to može se kopirati s uređaja koje koristimo. Da biste saznali nazive pinova koje želite koristiti na ploči, pogledajte referentni vodič Baasys 3 ovdje.

Korak 7: Izgradnja podloga 3

Izgradnja podloga 3
Izgradnja podloga 3
Izgradnja podloga 3
Izgradnja podloga 3

Morat ćete priključiti svoje LED diode u ispravne I/O priključke utičnice 3. Slijedite priložene slike da biste utvrdili koji su to ispravni priključci, jer ako LED diodu priključite u pogrešan priključak, ona neće zasvijetliti. Ako ste odlučili priključiti piezo zujalicu, to ćete također morati spojiti na ispravne I/O portove.

Kad je ploča spremna, priključite je u računalo putem USB kabela.

Korak 8: Implementacija VHDL datoteka u baze 3

Implementacija VHDL datoteka u baze 3
Implementacija VHDL datoteka u baze 3
Implementacija VHDL datoteka u baze 3
Implementacija VHDL datoteka u baze 3

Sada kada je vaša ploča spremna i vaš kôd dovršen, konačno možete sastaviti model.

Nakon što postavite svoj projekt u Vivadu, morate kliknuti gumb "Generiraj Bitstream" kako biste sastavili kôd prije nego što se učita na ploču. Ako u ovom trenutku primite poruku o pogrešci, morate dvaput provjeriti odgovara li vaš kôd točno našem. Kad kažem točno, mislim čak do točke sa zarezom ili vrste zagrada koje se koriste. Nakon što je vaš bitstream uspješno napisan, idite do upravitelja hardvera u Vivadu i kliknite gumb "Otvori cilj", a zatim odmah kliknite "Programiraj uređaj". Vaša ploča Basys 3 sada bi trebala biti potpuno funkcionalna.

Korak 9: Upotreba ploče Basys 3

Korištenje ploče Basys 3
Korištenje ploče Basys 3

Sada kada je ploča Basys 3 operativna i programirana da predstavlja naš model, morate je znati koristiti.

Svaki od četiri prekidača najudaljenije nadesno kontrolira jednu od LED dioda. Njihovim trzanjem LED će se uključiti ili isključiti. Ako se LED ne aktivira, provjerite jeste li priključeni na ispravan I/O priključak i je li vaša LED dioda uopće funkcionalna.

Kada želite onemogućiti sve LED diode odjednom, morate pritisnuti središnji gumb u nizu od pet prikazanih gumba prikazanih gore.

Korak 10: Pokažite se

Model služi kao zgodna mala novost koju možete demonstrirati pred prijateljima i obitelji. Teoretski se također može koristiti za implementaciju univerzalnog prekidača za isključivanje u kućni električni sustav, ako LED diode zamijenite žicama koje vode do vaših svjetala. Iako je moguće, ipak bismo se morali savjetovati protiv toga. Ako pokušate ponovno ožičenje bez pomoći električara, možete nanijeti ozbiljnu štetu sebi ili svom domu.

Preporučeni: