Përmbajtje:

Modeli i një çelësi universal të fikur: 10 hapa
Modeli i një çelësi universal të fikur: 10 hapa

Video: Modeli i një çelësi universal të fikur: 10 hapa

Video: Modeli i një çelësi universal të fikur: 10 hapa
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Korrik
Anonim
Modeli i një çelësi universal të fikur
Modeli i një çelësi universal të fikur

A jeni lodhur duke kontrolluar që të gjitha dritat në shtëpinë tuaj janë fikur para se të shkoni për të fjetur? A dëshironi që ju të mund të fikni çdo dritë menjëherë pa ndonjë zhurmë? Për të kursyer energji dhe kohë, ne vendosëm të krijonim një sistem që teorikisht mund të mbyllte një shtëpi të tërë menjëherë.

Ne modeluam një dëshmi të këtij koncepti duke përdorur disa tabela LED dhe një bazë 3, dhe krijuam një dizajn që do të çaktivizonte të gjitha LED me shtypjen e një butoni. Ky model mund të aplikohet edhe për një sistem aktual të ndriçimit të shtëpisë, edhe pse do të kërkonte instalime elektrike më të komplikuara dhe modifikime në skedarët e dhënë VHDL.

Hapi 1: Importoni skedarët e dhënë VHDL

Në mënyrë që modeli ynë të funksionojë si duhet do të duhet të shkarkoni softuerin që i jep udhëzimet bordit të Basys 3.

Së pari do t'ju duhet të shkarkoni një mjet sinteze për zbatimin e skedarëve vhdl në harduer. Nëse dëshironi të jeni të sigurt se i gjithë kodi do të përsërisë plotësisht modelin tonë pa pasur nevojë për ndonjë modifikim, ju rekomandojmë që të përdorni Vivado 2016.2. Pasi të keni instaluar Vivado, mund të krijoni një projekt dhe të shkarkoni skedarët tanë burim. Shtojini ato si burime në projektin tuaj, mos harroni të shtoni edhe skedarin e kufizimeve!

Tjetra ne do të shpjegojmë se çfarë bën secila prej skedarëve burim. Kaloni hapat 2 deri në 6 nëse thjesht doni të arrini në ndërtimin fizik të pajisjes.

Hapi 2: Ndarja e modulit të lartë VHDL

Ndarja e modulit të lartë VHDL
Ndarja e modulit të lartë VHDL
Ndarja e modulit të lartë VHDL
Ndarja e modulit të lartë VHDL

Moduli kryesor i projektit është ai që lidh të gjitha modulet e përbërësve individualë me harduerin e përdorur. Siç mund ta shihni ne kemi modulet killSwitch dhe buzzerControl të përcaktuar si përbërës në krye.

Seksioni i poshtëm specifikon se si këto module janë të lidhura së bashku. Ne kemi lidhur katër LED në tabelë dhe i kemi lidhur me modulet killSwitch dev0 përmes dev3. Ne kemi katër module killSwitch të përcaktuara sepse na duhet një për të menaxhuar gjendjen e secilës LED të lidhur. Secili prej këtyre moduleve përdor sinjalin e orës dhe butonit që kemi krijuar në përkufizimin e modulit të lartë, si dhe sinjalet e tyre përkatëse të kalimit dhe daljes së pajisjes.

Moduli i kontrollit të ziles në pjesën e poshtme aktivizon zilen kur shtypet butoni universal i fikjes. Siç mund ta shihni moduli i kontrollit të zileve kalon sinjalin e orës dhe butonit si hyrje. Isshtë kaluar gjithashtu kunja e daljes fizike të ziles për ta kontrolluar atë në përputhje me rrethanat.

Hapi 3: Ndarja e modulit VHDL Kill Switch

Ndarja e modulit VHDL Kill Switch
Ndarja e modulit VHDL Kill Switch
Ndarja e modulit VHDL Kill Switch
Ndarja e modulit VHDL Kill Switch

Çelësi i vrasjes është butoni universal i fikjes dhe moduli ka të bëjë kryesisht me lidhjen e tij me elementët e tjerë të qarkut, në mënyrë që kur të shtypet të gjitha dritat të fiken.

Ndërsa moduli i lartë trajton lidhjen e harduerit fizik me softuerin, moduli killSwitch trajton logjikën kryesore të secilës pajisje. Moduli merr hyrje për sinjalin e orës, butonin e fikjes universale dhe çelësin e ndërrimit të pajisjes. Në kthim kontrollon gjendjen e pinit të pajisjes me të cilën është lidhur.

Në pjesën e arkitekturës së kodit shohim se ai ka një varësi nga moduli dFlipFlop për të ruajtur kujtesën. Ju gjithashtu mund të shihni që ne kemi deklaruar katër sinjale që do të përdoren për të lidhur flip -flop -in, si dhe për të zbatuar deklaratat tona logjike. Brenda pjesës së sjelljes së kodit ne kemi krijuar një shembull të modulit dFlipFlop dhe i kemi caktuar sinjalet tona I/O në porte.

Nga këtu pjesa kryesore e logjikës sonë qëndron në vlerat e sinjalit për invertState dhe isDevOn. Baza jonë logjike për pajisjen është si më poshtë: "Sa herë që hidhet çelësi drita do të përmbysë gjendjen e ndezjes/fikjes. Sa herë që shtypet butoni dhe LED është aktualisht i ndezur, LED do të kthejë gjendjen e tij në fikur. " Nga këto dy pohime ne mund të ekstrapolojmë që gjendja e LED duhet të jetë XOR e çelësit dhe elementi ynë i kujtesës. Në këtë mënyrë një ndryshim në secilën përmbys LED. Kjo mund të shihet e zbatuar në sinjalin isDevOn. LED me kusht për elementin e kujtesës trajtohet nga sinjali ynë invertState. Nëse LED është ndezur dhe butoni shtypet, elementi ynë i kujtesës do të përditësohet dhe përmbys gjendjen e tij. Kjo pastaj përmbys gjendjen e LED gjithashtu.

Hapi 4: Ndarja e modulit VHDL Flip Flop

Ndarja e modulit VHDL Flip Flop
Ndarja e modulit VHDL Flip Flop

Një problem me modelin tonë ishte fakti se pas përdorimit të çelësit të fikjes, dritat që ishin ndezur më parë mund të kenë nevojë të fiken dy herë për t'u kthyer në pozicionin e ndezur. Kjo do të ishte një shqetësim i madh për njerëzit me kalimin e kohës. Ne arritëm ta anashkalojmë këtë shqetësim duke përfshirë një "Flip Flop", një element qark i aftë për të ruajtur informacionin, në modelin tonë. Tani, sistemi kujton nëse çelësi i dritave ishte më parë i ndezur në mënyrë që nëse ndizet përsëri të ndizet pavarësisht nga pozicioni i tij fillestar.

Kodi VHDL përdor deklaratat if dhe else në mënyrë që të krijojë Flip Flop si një komponent brenda modelit tonë të qarkut. Siguron që kur sinjali i orës kalon nga një gjendje e ulët në një të lartë, kur llamba është e ndezur dhe kur shtyhet çelësi i fikjes, dalja e flip -flops mbishkruan hyrjen e saj. Kur hyrja mbishkruhet, flip -flop përmbyset.

Hapi 5: Ndarja e modulit VHDL Piezo Buzzer

Ndarja e modulit VHDL Piezo Buzzer
Ndarja e modulit VHDL Piezo Buzzer
Ndarja e modulit VHDL Piezo Buzzer
Ndarja e modulit VHDL Piezo Buzzer

Ky skedar është pak i tepërt përsa i përket dizajnit të harduerit, por është thelbësor në mënyrë që skedarët e modulit të lartë dhe kufizimeve të funksionojnë pa probleme. Nëse zgjidhni të mos përdorni zilen Piezo, shkarkoni këtë skedar, por mos e bashkoni zilen në tabelën Basys 3.

Zilja Piezo, me shtypjen e butonit të çaktivizimit, do të luajë një ton me dy shënime që do t'i sigurojë përdoruesit reagime dëgjimore se butoni është shtypur. Ne e zbatuam këtë me sjellje në VHDL përmes një serie deklaratash nëse në një strukturë procesi. Ne filluam duke krijuar një vlerë të plotë për të mbajtur parasysh sa ndryshime të orës kanë ndodhur. Sapo të fillojë procesi, programi kalon gjysmën e parë të një sekonde (0 deri në 50 milionë rriqra të orës) duke nxjerrë një shënim A në 440 herc. Kjo arrihet duke përmbysur sinjalin piezo bumzer çdo shumëfish të 227272 tikteve të orës me një funksion modulo. Ky numër është rezultat i pjesëtimit të sinjalit të orës së tabelës (100 MHz) me frekuencën e dëshiruar (400 Hz). Gjatë gjysmës së dytë një sekondë (50 deri në 100 milion tik -takë) tabela nxjerr një shënim F në 349.2 herc me të njëjtën metodë si më parë. Pas një sekonde, programi nuk e ndryshon më ndryshoren e orës dhe ndalon daljen e ndonjë gjëje nga zileja piezo. Shtypja përsëri e butonit universal të fikjes e rivendos këtë numër në 0, duke rifilluar ciklin e zhurmës.

Hapi 6: Ndarja e Skedarit të Kufizimeve të VHDL

Skedari i kufizimeve i tregon Vivado se cilat pajisje në tabelën Basys 3 po përdorim. Gjithashtu i siguron Vivado emrat që i kemi dhënë pajisjeve në kodin tonë. Vivado ka nevojë për këtë informacion, kështu që di të lidhë elementët tanë logjikë me pajisjet fizike. Skedari i kufizimeve përfshin një sasi të madhe të kodit të komentuar (të papërdorur). Këto rreshta kodesh i referohen pajisjeve në tabelë që nuk po i përdorim.

Pajisjet që po përdorim përfshijnë katër ndërprerës hyrës të etiketuar V17, V16, W16 dhe W1 në tabelë. Ne po përdorim gjithashtu butonin universal të fikjes, të etiketuar U18. Kunjat e daljes për katër LED -të tanë të lidhur janë JB4, JB10, JC4 dhe JC10. Për zilen tonë piezzo ne po përdorim pinin dalës JA9.

Siç kemi thënë në ndarjen e modulit të lartë, nëse doni të shtoni LED shtesë ose pajisje të tjera në tabelë, duhet të rrisni fushën e sinjaleve sw dhe dev, të shtoni më shumë module killSwitch dhe t'i lidhni ato së bashku. Atëherë ju duhet t'i lidhni ato emra të ndryshueshëm me pajisjen e pajisjes përmes skedarit të kufizimeve. Kjo mund të bëhet duke mos komentuar (riaktivizuar) linjat e kodit të lidhura me kunjat që dëshironi të përdorni, pastaj duke shtuar emrin e ndryshores së saj të lidhur në modulin e lartë. Sintaksa e duhur për këtë mund të kopjohet nga pajisjet që ne po përdorim. Për të gjetur emrat e kunjave që dëshironi të përdorni në tabelë referojuni udhëzuesit të referencës Baasys 3 këtu.

Hapi 7: Ndërtimi i bazave 3

Ndërtimi i Bazës 3
Ndërtimi i Bazës 3
Ndërtimi i Bazës 3
Ndërtimi i Bazës 3

Ju do të keni nevojë të lidhni LED -të tuaj në portat e sakta I/O të Basys 3. Ndiqni fotot e dhëna për të përcaktuar se cilat janë portat e sakta, sepse nëse lidhni një LED në portën e gabuar nuk do të ndizet. Nëse keni zgjedhur të lidhni zilen piezo, do t'ju duhet gjithashtu ta lidhni atë me portat e sakta I/O.

Kur bordi të jetë gati, lidheni atë në kompjuterin tuaj përmes kabllit USB.

Hapi 8: Zbatimi i skedarëve VHDL në Basys 3

Zbatimi i skedarëve VHDL në Basys 3
Zbatimi i skedarëve VHDL në Basys 3
Zbatimi i skedarëve VHDL në Basys 3
Zbatimi i skedarëve VHDL në Basys 3

Tani që bordi juaj është gati dhe kodi juaj ka përfunduar, më në fund mund ta vendosni modelin së bashku.

Pasi të keni krijuar projektin tuaj në Vivado, duhet të klikoni butonin "Gjeneroni Bitstream" në mënyrë që të përpiloni kodin para se të ngarkohet në tabelë. Nëse merrni një mesazh gabimi në këtë kohë, duhet të kontrolloni dy herë që kodi juaj përputhet saktësisht me kodin tonë. Kur them saktësisht, kam parasysh deri në pikëpresjet ose llojet e kllapave që po përdoren. Pasi bitstream juaj të jetë shkruar me sukses, shkoni te menaxheri i harduerit brenda Vivado dhe klikoni në butonin "Open Target", pastaj klikoni në "Program Device" menjëherë më pas. Tabela juaj Basys 3 tani duhet të jetë plotësisht funksionale.

Hapi 9: Përdorimi i Bordit Basys 3

Përdorimi i Bordit Basys 3
Përdorimi i Bordit Basys 3

Tani që Bordi Basys 3 është funksional dhe është programuar për të përfaqësuar modelin tonë, ju duhet të dini si ta përdorni atë.

Secili nga katër çelsat më të largët në të djathtë kontrollon njërën nga LED -të, goditja e tyre do të bëjë që LED të ndizet ose fiket. Nëse LED nuk aktivizohet, kontrolloni që të jeni të kyçur në portën e saktë I/O dhe se LED juaj është funksional në radhë të parë.

Kur doni të çaktivizoni të gjitha LED -të menjëherë, duhet të shtypni butonin qendror në grupin e pesë butonave të shfaqur më sipër.

Hapi 10: Trego veten

Modeli shërben si një risi e vogël që mund ta demonstroni para miqve dhe familjes tuaj. Teorikisht mund të përdoret gjithashtu për të zbatuar çelësin universal të fikjes në sistemin elektrik të shtëpisë tuaj, nëse zëvendësoni LED -të me tela që çojnë në dritat tuaja. Ndërsa është e mundur, ne ende duhet të këshillojmë kundër tij. Ka mundësi të bëni dëm serioz për veten ose shtëpinë tuaj nëse përpiqeni të rindërtoni pa ndihmën e një elektricisti.

Recommended: