Orodha ya maudhui:

Mfano wa Zima ya Kuzima Ulimwenguni: Hatua 10
Mfano wa Zima ya Kuzima Ulimwenguni: Hatua 10

Video: Mfano wa Zima ya Kuzima Ulimwenguni: Hatua 10

Video: Mfano wa Zima ya Kuzima Ulimwenguni: Hatua 10
Video: 10 убеждений, от которых НЕОБХОДИМО отказаться 2024, Novemba
Anonim
Mfano wa Zima ya Kuzima Ulimwenguni
Mfano wa Zima ya Kuzima Ulimwenguni

Je! Umechoka kuangalia ikiwa taa zote ndani ya nyumba yako zimezimwa kabla ya kwenda kulala? Je! Unatamani ungeweza kuzima kila taa mara moja bila ubishi wowote? Ili kuokoa nguvu na wakati, tuliamua kuunda mfumo ambao kwa nadharia unaweza kufunga nyumba nzima mara moja.

Tulibadilisha uthibitisho wa dhana hii kwa kutumia taa kadhaa za mwangaza za LED na basys 3, na tukaunda muundo ambao utazima taa zote za LED kwa kushinikiza kitufe. Mfano huu unaweza kutumika kwa mfumo halisi wa taa za nyumbani pia, ingawa itahitaji wiring ngumu zaidi na marekebisho kwa faili zilizopewa za VHDL.

Hatua ya 1: Ingiza faili za VHDL zilizopewa

Ili mtindo wetu ufanye kazi kwa usahihi utahitaji kupakua programu ambayo inapeana Bodi ya 3 maagizo yake.

Kwanza utahitaji kupakua zana ya usanisi wa kutekeleza faili za vhdl kwenye vifaa. Ikiwa unataka kuwa na hakika kwamba nambari yote itaiga muundo wetu bila hitaji la marekebisho yoyote, tunapendekeza utumie Vivado 2016.2. Baada ya kusanikisha Vivado unaweza kuunda mradi na kupakua faili zetu za chanzo. Waongeze kama vyanzo vya mradi wako, usisahau kuongeza faili ya vizuizi pia!

Ifuatayo tutaelezea kila faili ya chanzo inafanya nini. Ruka hatua 2 hadi 6 ikiwa unataka tu kufika kwenye ujenzi wa kifaa.

Hatua ya 2: Kuvunjika kwa Moduli ya Juu ya VHDL

Kuvunjika kwa Moduli ya Juu ya VHDL
Kuvunjika kwa Moduli ya Juu ya VHDL
Kuvunjika kwa Moduli ya Juu ya VHDL
Kuvunjika kwa Moduli ya Juu ya VHDL

Moduli ya juu ya mradi ndio inayounganisha moduli zote za sehemu ya kibinafsi na vifaa vilivyotumika. Kama unavyoona tuna moduli za killSwitch na buzzerControl zilizoelezewa kama vifaa juu.

Sehemu ya chini inabainisha jinsi moduli hizi zimeunganishwa pamoja. Tumeunganisha LED nne kwa bodi na kuziunganisha na moduli za killSwitch dev0 kupitia dev3. Tunazo moduli nne za kuua zilizofafanuliwa kwa sababu tunahitaji moja kusimamia hali ya kila LED iliyounganishwa. Kila moja ya moduli hizi hutumia ishara ya saa na kitufe ambayo tumeunda katika ufafanuzi wa moduli ya juu na vile vile kubadili kwao pembejeo na ishara za kifaa cha pato.

Moduli ya kudhibiti buzzer chini huamsha buzzer wakati kitufe cha zima kinabanwa. Kama unaweza kuona moduli ya kudhibiti buzzer hupitishwa saa na ishara ya pembejeo kama pembejeo. Pia hupitishwa kwa pini ya pato la buzzer ili kuidhibiti ipasavyo.

Hatua ya 3: Kuvunjika kwa Moduli ya Kubadilisha VHDL

Kuvunjika kwa Moduli ya Kubadilisha VHDL
Kuvunjika kwa Moduli ya Kubadilisha VHDL
Kuvunjika kwa Moduli ya Kubadilisha VHDL
Kuvunjika kwa Moduli ya Kubadilisha VHDL

Kitufe cha Kuua ni kitufe cha zima, na moduli inajishughulisha haswa na kuiunganisha na vitu vingine vya mzunguko ili inapobanwa taa zote zizime.

Wakati moduli ya juu inashughulikia kuunganisha vifaa vya mwili na programu, moduli ya killSwitch inashughulikia mantiki kuu ya kila kifaa. Moduli inachukua pembejeo kwa ishara ya saa, kitufe cha zima, na kifaa kugeuza swichi. Kwa kurudi inadhibiti hali ya pini ya kifaa iliyounganishwa nayo.

Katika sehemu ya usanifu wa nambari tunaona kuwa ina utegemezi kwenye moduli ya dFlipFlop kuhifadhi kumbukumbu. Unaweza pia kuona kwamba tumetangaza ishara nne ambazo zitatumika kuunganisha flip flop na pia kutekeleza taarifa zetu za mantiki. Ndani ya sehemu ya tabia ya nambari tumeunda mfano wa moduli ya dFlipFlop na kutoa ishara zetu za I / O kwa bandari.

Kutoka hapa sehemu kuu ya mantiki yetu iko katika maadili ya ishara ya invertState na isDevOn. Msingi wetu wa kimantiki wa kifaa ni kama ifuatavyo: "Wakati wowote swichi inapotupwa taa itabadilisha hali ya kuwasha / kuzima. Wakati wowote kitufe kinapobanwa, na LED imewashwa sasa, LED itabadilisha hali yake kuzima. " Kutoka kwa taarifa hizi mbili tunaweza kuongeza kuwa hali ya LED inapaswa kuwa XOR ya swichi na kipengee cha kumbukumbu yetu. Kwa njia hiyo mabadiliko katika inverts LED. Hii inaweza kuonekana kutekelezwa katika ishara ya isDevOn. LED kwa hali ya kipengee cha kumbukumbu inashughulikiwa na ishara yetu ya invertState. Ikiwa LED imewashwa na kifungo kimeshinikizwa, kipengee chetu cha kumbukumbu kitasasisha na kubadilisha hali yake. Hii basi inverts hali ya LED pia.

Hatua ya 4: Kuvunjika kwa Moduli ya Flop Flop ya VHDL

Kuvunjika kwa Moduli ya Flop Flop ya VHDL
Kuvunjika kwa Moduli ya Flop Flop ya VHDL

Shida moja na muundo wetu ilikuwa ukweli kwamba baada ya kutumia kitufe cha kuzima, taa ambazo hapo awali ziliwashwa zinaweza kuhitaji kupeperushwa mara mbili ili kurudi kwenye nafasi. Hii itakuwa usumbufu kabisa kwa watu kwa muda. Tuliweza kukwepa usumbufu huu kwa kujumuisha "Flip Flop," kifaa cha mzunguko kinachoweza kuhifadhi habari, katika muundo wetu. Sasa, mfumo unakumbuka ikiwa taa ya taa ilikuwa imewashwa hapo awali ili ikiwa itabadilishwa tena itawasha bila kujali nafasi yake ya awali.

Nambari ya VHDL hutumia ikiwa na taarifa nyingine ili kuunda Flip Flop kama sehemu ya muundo wa mzunguko. Inahakikisha kwamba wakati ishara ya saa inabadilika kutoka chini kwenda hali ya juu, wakati taa ya taa inawashwa, na wakati kitufe cha kuzima kinasukumwa, pato la flip linapunguza maandishi yake. Wakati pembejeo imechapishwa flip flop imegeuzwa.

Hatua ya 5: Kuvunjika kwa Moduli ya VHDL Piezo Buzzer

Kuvunjika kwa Moduli ya VHDL Piezo Buzzer
Kuvunjika kwa Moduli ya VHDL Piezo Buzzer
Kuvunjika kwa Moduli ya VHDL Piezo Buzzer
Kuvunjika kwa Moduli ya VHDL Piezo Buzzer

Faili hii ni kidogo sana kwa muundo wa vifaa, lakini ni muhimu ili kufanya moduli ya juu na faili za vizuizi ziende vizuri. Ikiwa unachagua kutotumia buzzer ya Piezo, pakua faili hii, lakini usiambatanishe buzzer na bodi ya Basys 3.

Buzzer ya Piezo, ikibonyeza kitufe cha kulemaza, itacheza toni mbili ambayo itampa mtumiaji maoni ya ukaguzi ambayo kifungo kimesukumwa. Tulitekeleza tabia hii katika VHDL kupitia safu ya taarifa ikiwa katika muundo wa mchakato. Tulianza kwa kuunda nambari kamili kufuata wimbo wa mabadiliko ya saa ngapi yaliyotokea. Mchakato unapoanza programu hutumia nusu ya kwanza ya sekunde (0 hadi milioni 50 kupe kupe) kutoa noti kwa 440 hertz. Hii inafanikiwa kwa kugeuza ishara ya buzzer ya piezo kila mara nyingi ya kupe kupe 227272 na kazi ya modulo. Nambari hii ni matokeo ya kugawanya ishara ya saa ya bodi (100 MHz) na masafa yanayotakiwa (400 Hz). Wakati wa nusu ya pili sekunde (milioni 50 hadi 100 tiki za saa) bodi hutoa alama ya F kwa hertz 349.2 kupitia njia ile ile kama hapo awali. Baada ya sekunde moja mpango hauongezei ubadilishaji wa saa zaidi na huacha kutoa chochote kutoka kwa buzzer ya piezo. Kubonyeza kitufe cha zima tena inabadilisha nambari hii kuwa 0, na kuanza tena mzunguko wa kelele.

Hatua ya 6: Kuvunjika kwa faili ya VHDL

Faili ya vizuizi inamwambia Vivado ni vifaa gani kwenye bodi ya Basys 3 tunayotumia. Pia hutoa Vivado na majina ambayo tumewapa vifaa kwenye nambari yetu. Vivado inahitaji habari hii ili ijue jinsi ya kuunganisha vitu vyetu vya mantiki na vifaa vya mwili. Faili ya vizuizi inajumuisha idadi kubwa ya nambari ya maoni (isiyotumika). Mistari hii ya nambari hurejelea vifaa kwenye ubao ambavyo hatutumii.

Vifaa tunavyotumia ni pamoja na swichi nne za kuingiza zilizoandikwa V17, V16, W16, na W1 ubaoni. Tunatumia pia kitufe cha zima, kilichoitwa U18. Pini za pato kwa LED zetu nne zilizounganishwa ni JB4, JB10, JC4, na JC10. Kwa buzzer yetu ya piezzo tunatumia pini ya pato JA9.

Kama tulivyosema katika kuvunjika kwa moduli ya juu, ikiwa unataka kuongeza taa za ziada za LED au vifaa vingine kwenye bodi unahitaji kuongeza wigo wa ishara za sw na dev, ongeza moduli zaidi za killSwitch, na uziunganishe pamoja. Kisha unahitaji kuunganisha majina hayo yanayobadilika na vifaa vya kifaa kupitia faili ya vizuizi. Hii inaweza kufanywa kwa kukomesha (kuwezesha tena) mistari ya nambari inayohusiana na pini unayotaka kutumia kisha kuongeza jina la utofautishaji unaohusishwa kwenye moduli ya juu. Syntax sahihi ya hii inaweza kunakiliwa kutoka kwa vifaa tunavyotumia. Ili kujua majina ya pini unayotaka kutumia kwenye ubao rejea mwongozo wa rejea wa Baasys 3 hapa.

Hatua ya 7: Kuunda Misingi 3

Kuunda Misingi 3
Kuunda Misingi 3
Kuunda Misingi 3
Kuunda Misingi 3

Utahitaji kuziba LED zako kwenye bandari sahihi za I / O za Basys 3. Fuata picha zilizotolewa ili kubaini bandari sahihi ni nini, kwa sababu ukiziba LED kwenye bandari isiyo sahihi haitawaka. Ikiwa umechagua kushikamana na buzzer ya piezo, utahitaji pia kuiunganisha kwenye bandari sahihi za I / O.

Wakati bodi iko tayari, ingiza kwenye kompyuta yako kupitia kebo ya USB.

Hatua ya 8: Utekelezaji wa faili za VHDL kwa Basys 3

Utekelezaji wa faili za VHDL kwa Basys 3
Utekelezaji wa faili za VHDL kwa Basys 3
Utekelezaji wa faili za VHDL kwa Basys 3
Utekelezaji wa faili za VHDL kwa Basys 3

Sasa kwa kuwa bodi yako iko tayari na nambari yako ya simu imekamilika, mwishowe unaweza kuweka mfano pamoja.

Mara tu mradi wako umewekwa katika Vivado, lazima ubonyeze kitufe cha "Tengeneza Bitstream" ili ujumuishe nambari kabla haijapakiwa kwenye bodi. Ukipokea ujumbe wa makosa kwa wakati huu, lazima uangalie mara mbili kuwa nambari yako inalingana na yetu haswa. Wakati ninasema haswa, ninamaanisha hata semicoloni au aina za mabano ambazo zinatumika. Mara tu kijito chako kimeandikwa kwa mafanikio, nenda kwa msimamizi wa vifaa ndani ya Vivado na bonyeza kitufe cha "Fungua Lengo", kisha bonyeza "Kifaa cha Programu" mara baada ya hapo. Bodi yako ya Basys 3 sasa inapaswa kufanya kazi kikamilifu.

Hatua ya 9: Kutumia Bodi ya Basys 3

Kutumia Bodi ya Basys 3
Kutumia Bodi ya Basys 3

Sasa kwa kuwa Bodi ya Basys 3 inafanya kazi na imepangiwa kuwakilisha mfano wetu, lazima ujue jinsi ya kuitumia.

Kila moja ya swichi nne zaidi kwa udhibiti wa kulia moja ya taa za LED, kuzipiga kutasababisha LED kuwasha au kuzima. Ikiwa LED haifanyi kazi, angalia ili uone kuwa umeingizwa kwenye bandari sahihi ya I / O, na kwamba LED yako inafanya kazi mahali pa kwanza.

Unapotaka kuzima LED zote kwa wakati mmoja, lazima ubonyeze kitufe cha kituo katika seti ya vifungo vitano vilivyoonyeshwa hapo juu.

Hatua ya 10: Onyesha

Mfano hutumika kama riwaya safi nadhifu ambayo unaweza kuonyesha mbele ya marafiki na familia yako. Kinadharia inaweza pia kutumika kutekeleza swichi ya zima kwenye mfumo wa umeme wa nyumbani, ikiwa utabadilisha taa za LED na waya zinazoongoza kwenye taa zako. Ingawa inawezekana, bado tunapaswa kushauri dhidi yake. Kuna uwezekano wa kujidhuru sana wewe mwenyewe au nyumba yako ikiwa utajaribu kurekebisha bila msaada wa fundi umeme.

Ilipendekeza: