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, Novembar
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 isključite svako svjetlo odjednom bez ikakve gužve? Kako bismo uštedjeli energiju i vrijeme, odlučili smo stvoriti sistem 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 dugme. Ovaj bi se model mogao primijeniti i na stvarni sustav kućnog osvjetljenja, iako bi zahtijevao složenije ožičenje i izmjene datih 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 kreirati projekt i preuzeti naše izvorne datoteke. Dodajte ih kao izvore svom projektu, ne zaboravite dodati i datoteku ograničenja!

Zatim ćemo objasniti šta svaka od izvornih datoteka radi. Preskočite korake od 2 do 6 ako samo želite prijeći na fizičku konstrukciju uređaja.

Korak 2: Razbijanje gornjeg modula VHDL

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 sa korišćenim hardverom. Kao što vidite, imamo module killSwitch i buzzerControl definirane kao komponente na vrhu.

Donji odjeljak navodi kako su ti moduli povezani. Povezali smo četiri LED diode na ploču i povezali ih sa 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 dugmeta koji smo stvorili u gornjoj definiciji modula, kao i odgovarajuće signale ulaznog prekidača i izlaznog uređaja.

Kontrolni modul zujalice na dnu aktivira zvučni signal kada se pritisne univerzalno dugme za isključivanje. Kao što vidite, upravljačkom modulu zujalice se prosljeđuje signal sata i tipke kao ulaz. Takođe 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 univerzalno je dugme 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, univerzalno dugme za isključivanje i prekidač uređaja. Zauzvrat kontrolira stanje pina uređaja na koji je povezan.

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 izraza. 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šeg memorijskog elementa. Na taj način promjena u bilo kojem od njih okreće LED. To se može vidjeti implementirano u isDevOn signalu. Za LED diodu za memorijski element upravlja naš invertState signal. Ako je LED lampica uključena i dugme je pritisnuto, 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 ljudima s vremenom predstavljalo veliku neugodnost. Uspjeli smo zaobići ovu neugodnost uključivanjem u svoj dizajn "japanke", elementa sklopa sposobnog za pohranu informacija. Sada sistem pamti je li prekidač za svjetlo prethodno bio uključen, pa će se, ako se ponovo okrene, uključiti bez obzira na njegov 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 japanki prepisuje njegov ulaz. Kada je ulaz prepisan, japanka je obrnuta.

Korak 5: Kvar VHDL Piezo modula zujalice

Kvar VHDL Piezo modula zujalice
Kvar VHDL Piezo modula zujalice
Kvar VHDL Piezo modula zujalice
Kvar VHDL Piezo modula zujalice

Ova datoteka je 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 da nećete koristiti Piezo zujalicu, preuzmite ovu datoteku, ali nemojte pričvršćivati zujalicu na Basys 3 ploču.

Zvučni signal Piezo će, nakon što pritisne dugme za onemogućavanje, pustiti dvotonski ton koji će korisniku dati zvučnu povratnu informaciju da je dugme pritisnuto. Ovo smo ponašali u VHDL -u 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 miliona takta) emitujući bilješku A na 440 herca. To se postiže invertiranjem signala piezo zujalice svakih čak i višestrukih 227272 takta sata sa modulom funkcijom. Ovaj broj je rezultat dijeljenja signala takta ploče (100 MHz) sa željenom frekvencijom (400 Hz). Tokom druge polovine sekunde (50 do 100 miliona otkucaja sata) ploča emituje notu F na 349,2 herca na isti način kao i ranije. Nakon jedne sekunde program više ne povećava varijablu sata i prestaje izlaziti bilo što iz piezo zujalice. Ponovnim pritiskom na univerzalno dugme za isključivanje ovaj se broj vraća na 0, čime se ponovo 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đe pruža Vivadu imena koja smo dali uređajima u našem kodu. Vivadu su potrebne ove informacije 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 označena sa V17, V16, W16 i W1 na ploči. Također koristimo univerzalno dugme za isključivanje, označeno sa 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 tako što ćete dekomentirati (ponovo omogućiti) redove koda pridružene pinovima koje želite koristiti, a zatim dodati ime pridružene varijable u gornji modul. Odgovarajuća sintaksa za ovo 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: Konstrukcija baza 3

Konstrukcija baze 3
Konstrukcija baze 3
Konstrukcija baze 3
Konstrukcija baze 3

Morat ćete uključiti svoje LED diode u ispravne I/O portove Basys 3. Slijedite slike na slici kako biste utvrdili koji su to ispravni portovi, jer ako LED diodu priključite na pogrešan port, ona neće zasvijetliti. Ako ste odlučili priključiti piezo zvučni signal, morat ćete ga povezati i na ispravne I/O portove.

Kada je ploča spremna, uključite je u računar putem USB kabla.

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š kod dovršen, konačno možete sastaviti model.

Nakon što postavite svoj projekt u Vivadu, morate kliknuti gumb "Generiraj Bitstream" kako biste kompajlirali kôd prije nego što se učita na ploču. Ako u ovom trenutku primite poruku o grešci, morate dvaput provjeriti da li se vaš kôd potpuno podudara s našim. Kad kažem tačno, mislim čak do tačke i zareza 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: Korištenje Basys 3 ploče

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

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

Svaki od četiri prekidača najudaljenije nadesno kontrolira jednu od LED dioda, njihovim trzanjem će se LED uključiti ili isključiti. Ako se LED lampica ne aktivira, provjerite jeste li priključeni na odgovarajući U/I port i je li vaša LED dioda funkcionalna.

Kada želite onemogućiti sve LED diode odjednom, morate pritisnuti središnje dugme u nizu od pet prikazanih dugmadi.

Korak 10: Pokažite se

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

Preporučuje se: