Orodha ya maudhui:
- Hatua ya 1: Mchoro wa Sanduku Nyeusi
- Hatua ya 2: Mashine za Serikali
- Hatua ya 3: Meza za Ukweli za Mashine ya Serikali, Mlinganyo wa Kusisimua, na Usawa wa Pato
- Hatua ya 4: Wrapper, Submodules, & Vizuizi
- Hatua ya 5: Bandari za I / O za LED
Video: L I G H T S: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Madhumuni ya mradi huu wa mwisho ilikuwa kuunda kitu ambacho kingezingatia uendelevu na kutekeleza dhana za muundo wa dijiti, na kwa kufanya hivyo, niliamua kubuni mfumo wa kuokoa nguvu unaoweza kutumika kwa kutumia vhdl na iliyoundwa kwa Bodi ya Basys 3 (safu ya Artix-7 35T). Inaweza kuharibika kwa sababu idadi yoyote ya sensorer inaweza kuwekwa kwenye chumba na idadi yoyote ya mifumo hii inaweza kuwekwa kuzunguka jengo au nyumba. Kile ambacho mfumo huu ungefanya, ni kinadharia kuokoa maelfu ya dola katika jengo la kibiashara na kupunguza asilimia kubwa ya matumizi ya nishati katika jamii ndogo za makazi kwa kutekeleza mfumo uliounganishwa wa taa zinazodhibitiwa kikamilifu na zinazotumiwa, vitambuzi vya mwendo, vipima muda vilivyoonyeshwa kwenye maonyesho ya sehemu saba, na kudhibiti swichi. Mfano huu unashughulika na mfumo mmoja na vitambuzi vya mwendo vitatu, ubadilishaji mkuu, ubadilishaji wa mwongozo / kawaida, maonyesho manne ya sehemu saba, na taa moja mfumo unadhibiti.
Kwa mfano, katika chumba kilichochaguliwa, vitambuzi kadhaa vya mwendo vingewekwa karibu (muundo huu una tatu), na kila mmoja atatuma ishara (1) ikiwa inagundua harakati, na (0) ikiwa haifanyi hivyo. Ikiwa angalau kigunduzi kimoja cha mwendo kinachunguza mwendo, taa zinawashwa ikiwa bado hazijawashwa na kubaki ikiwa tayari imewashwa. Wakati wowote wachunguzi wote wa mwendo hawapati chochote, kipima muda huanza kuhesabu kwa muda uliowekwa (nambari inayoweza kubadilishwa), na taa hukaa juu wakati timer inahesabu chini. Wakati kipima kinamaliza kuhesabu chini, kipima muda kinasimama, na taa huzima. Ikiwa angalau kigunduzi kimoja cha mwendo kinachunguza harakati wakati kipima muda kinahesabu, kipima kinasimama na kuweka upya. Na ikiwa kigunduzi kimoja cha mwendo kinachunguza mwendo wakati taa zimezimwa, taa zinawashwa mara moja.
Mfumo huu una njia mbili, moja na kipima muda kama ilivyoelezwa hapo juu, na ya pili ambapo kuna swichi inayodhibiti taa kwa mikono (kupuuza sensorer). Kuna swichi kuu inayoruhusu mtumiaji kuchagua njia gani wanayotaka kutumia kulingana na yoyote ambayo wanahisi itaokoa nguvu zaidi kwa jumla. Kut. Chumba kama barabara ya ukumbi inaweza kufaidika na hali ya saa-watumiaji hawana uhakika ni lini watu watapita, lakini kuwasha na kuzima taa kila wakati wanaingia na kutoka itakuwa usumbufu, wakati chumba kama hicho kama chumba cha kulala na mtumiaji mmoja itakuwa bora kuendeshwa kwa mikono. Na ubadilishaji mkuu ungesaidia katika hali kama vile ikiwa mtu anayeishi kwenye chumba cha kulala angeondoka kwa muda mrefu, basi swichi kuu inaweza kuzimwa, na hali ya muda itafanya kazi kuokoa nishati kwa ufanisi zaidi.
Kwa hivyo katika mfumo huu, kuna mashine mbili za serikali, moja ni mashine kuu ya serikali, na nyingine kwa saa ya kuhesabu. Mashine kuu ya serikali ina majimbo matano yaliyofafanuliwa kama vile: imegunduliwa "(id = 010), 4." imewashwa kwa mikono "(id = 011), na 5." imezimwa kwa mikono "(id = 100). Mashine kuu ya serikali ina pembejeo nne: swichi kuu (ms), mwongozo / swichi ya kawaida (ns), ishara iliyo juu wakati angalau swichi moja inagundua harakati, na iko chini vinginevyo (orx), na ishara ambayo ni juu mara tu timer imefanywa, na iko chini vinginevyo (td). Mashine kuu ya serikali ina matokeo mawili: taa (taa) na ishara inayoonyesha wakati wa kuwasha kipima muda (saa) au (t) (zote hutumiwa kwa kubadilishana).
Mashine ya serikali ya pili, kipima muda, ina majimbo 12: 10 kati yao yana vitambulisho vinavyohusiana na nambari ambayo sehemu saba inaonyesha- “seg 10” (id = 1010), “seg 9” (id = 1001), […], "Seg 2" (id = 0010), "seg 1" (id = 0001), na majimbo mengine mawili yote yanaonyesha sifuri, inayowakilisha kipima saa kikiwa mbali - kwa hivyo kuna tupu ya kwanza "tupu 1" (id = 1111)) na tupu ya pili "tupu 2" (id = 0000). Timer ya kuhesabu ina pembejeo moja: timer (t), na matokeo matatu: nambari iliyoonyeshwa kwa binary na bits nne (bin) na ishara inayoonyesha timer imefanywa (td).
Hatua ya 1: Mchoro wa Sanduku Nyeusi
Hii ni muhtasari wa jinsi mfumo mzima unatakiwa kufanya kazi, na inaelezewa na mchoro wa sanduku jeusi.
- Saa hiyo hutumiwa kutia mashine kuu ya serikali na dekoda ya sehemu saba; saa polepole inahitajika kwa kaunta ya chini, kwa hivyo kuna moduli ya kitenganishi cha saa ambayo inachukua uingizaji wa saa na kutoa saa polepole kwa kaunta ya chini.
- Variable ya kati (orx) kwenye kanga imefungwa kwa sensorer za mwendo na itakuwa juu ikiwa angalau sensorer moja itagundua kitu, na chini vinginevyo; equation ya boolean kwa hiyo ni orx = s (2) au s (1) au s (0).
-
Udhibiti kuu wa fsm ambao kwa jumla unasema mfumo uko ndani, kulingana na pembejeo (orx, ms, ns, td) na matokeo ya hali ya sasa iliyo kwenye (sm) iliyoonyeshwa iliyorahisishwa na ishara mbili zilizotumiwa (timer na taa).
- (timer) ni ishara ya kufunika ambayo hutumwa kwa fsm ya chini kama pembejeo yake na inadhibitiwa na hali kuu ya fsm ya sasa. Inaonyesha wakati wa kuwasha kipima muda.
- (taa) ni ishara ya kufunika inayotumiwa kudhibiti inayoongozwa na inadhibitiwa na hali kuu ya sasa ya fsm.
-
Fsm ya chini inadhibiti kile sehemu saba zinaonyesha kulingana na pembejeo (kipima muda) na matokeo ya hali ya sasa iliyo kwenye (sd) iliyoonyeshwa rahisi na ishara mbili zilizotumika kwa (td na bin).
- (td) ni ishara ya kufunika ambayo hutumwa kwa fsm kuu kama pembejeo yake na inadhibitiwa na hali ya sasa ya counter counter fsm. Inafanya kazi kama ishara ya maoni ambayo inaonyesha wakati wa timer umefanywa.
- (bin) ni ishara nne ya kufunika ambayo imeunganishwa na bits nne za sifuri ("0000" & bin) na bits nane zilizochanganywa zinatumwa kwa (q), ishara nane ya kufunika, ambayo pia hutumwa kwa saba sekunde ya sehemu chini ya (ALU_VAL).
-
Moduli ya sehemu saba ni sawa na ile ya Polylearn; pembejeo zake kuu huchukua nambari 8 (bin) hadi (ALU_VAL) kuonyesha kwenye maonyesho manne tofauti ya sehemu saba kwa kutumia matokeo (SEGMENTS) kufunika ishara (seg) na (DISP_EN) kufunika (disp_en).
- Kwa kuwa maonyesho mawili au zaidi ya sehemu saba hayawezi kuonyesha tarakimu tofauti kwa wakati mmoja, saa inahitajika kuzunguka kwa ssegs nne, kuonyesha nambari inayofaa kwa wakati kwa kila sseg kuwashwa moja kwa moja, na baiskeli haraka ya kutosha hufanya ssegs inaonekana kuwa juu ya wote kwa wakati mmoja.
- (saini na halali) ni za kila wakati katika mpango huu, kwa hivyo (ishara) imewekwa chini kabisa na (halali) imewekwa juu kabisa.
- (ALU_VAL) inachukua ishara ya kufunika (q) kama pembejeo, ambayo inawakilisha nambari itakayoonyeshwa kwenye onyesho la sehemu saba kwa binary.
- Pato (SEGMENTS) hupelekwa kwa ishara ya kufunika (se) na (DISP_EN) kwa ishara ya kufunika nne (disp_en).
-
Kuna pia moduli ya D flip flop ambayo haijaonyeshwa wazi kwenye mchoro lakini inahitajika kwa mashine mbili za serikali kama vijidudu na inasaidia majimbo kupatana sawasawa.
- (3) ya hizi zinahitajika kwa fsm kuu tangu 2 ^ (3) = 8> majimbo 5 ya usimbuaji
- (4) kati ya hizi zinahitajika kwa kaunta ya chini fsm tangu 2 ^ 4 = 16> 12 inasema kwa usimbuaji
Hatua ya 2: Mashine za Serikali
Ili kubuni vizuri mashine mbili za serikali, serikali za kibinafsi zinahitaji kufafanuliwa wazi, na matokeo yake na hali inabadilika kulingana na pembejeo tofauti zinazowezekana.
Fsm kuu inasema:
"Taa imewashwa, harakati imegunduliwa" (id = 000)
Taa imewashwa, angalau kigunduzi kimoja cha mwendo kinachunguza harakati, kwa hivyo orx lazima iwe juu na ms imewashwa.
- Matokeo: taa = 1 na kipima muda = 0
- Inakaa kama hali hii wakati ms = 1 na orx = 1.
- Huenda kusema "taa imewashwa, hakuna harakati inayogunduliwa" ikiwa ms = 1 na orx = 0.
- Huenda kusema "imewashwa kwa mikono" ikiwa ms = 0 na ns = 1.
- Inakwenda kusema "imezimwa kwa mikono" ikiwa ms = 0 na ns = 0.
"Taa imewashwa, hakuna harakati yoyote iliyogunduliwa" (id = 001)
Taa imewashwa, hakuna harakati inayogunduliwa kutoka kwa kigunduzi chochote cha mwendo, kwa hivyo orx lazima iwe chini na ms imewashwa. Pia mwanzoni mwa jimbo hili kipima muda kinachowekwa juu huiambia hesabu fsm kuanza kuhesabu chini, inaendelea kuhesabu, na inaacha kuhesabu mara tu fsm ya kuhesabu itakapoiambia fsm hii kwamba imefanya kuhesabu.
- Matokeo: taa = 1 na kipima muda = 1.
- Inakaa kama hali hii wakati ms = 1 na orx = 0 na td (timer imefanywa) = 0.
- Inakwenda kusema "taa imewashwa, harakati imegunduliwa" ikiwa ms = 1 na orx = 1.
- Inakwenda kusema "taa imezimwa, hakuna harakati inayopatikana" ikiwa ms = 1 na orx = 0 na td = 1.
- Huenda kusema "imewashwa kwa mikono" ikiwa ms = 0 na ns = 1.
- Inakwenda kusema "imezimwa kwa mikono" ikiwa ms = 0 na ns = 0.
"Taa imezimwa, hakuna harakati yoyote iliyogunduliwa" (id = 010)
Taa zimezimwa, hakuna harakati inayopatikana kutoka kwa sensorer yoyote ya mwendo na kipima muda kumaliza kuhesabu chini, kwa hivyo orx lazima iwe chini, ms imewashwa, na td imezimwa.
- Matokeo: taa = 0 na kipima muda = 0.
- Inakaa kama hali hii wakati ms = 1 na orx = 0.
- Inakwenda kusema "taa imewashwa, harakati imegunduliwa" ikiwa ms = 1 na orx = 1.
- Huenda kusema "imewashwa kwa mikono" ikiwa ms = 0 na ns = 1.
- Inakwenda kusema "imezimwa kwa mikono" ikiwa ms = 0 na ns = 0.
"Imewashwa kwa mikono" (id = 011)
Taa imewashwa, vitambuzi vya mwendo havina umuhimu, kwa hivyo ms imezimwa, na ns imewashwa.
- Matokeo: taa = 1 na kipima muda = 0.
- Inakaa kama hali hii wakati ms = 0 na ns = 1.
- Inakwenda kusema "imezimwa kwa mikono" ikiwa ms = 0 na ns = 0.
- Inakwenda kusema "taa imezimwa, hakuna harakati inayogunduliwa ikiwa ms = 1.
"Imezimwa kwa mikono" (id = 100)
Taa zimezimwa, detectors za mwendo hazina umuhimu, kwa hivyo ms imezimwa, na ns imezimwa.
- Matokeo: taa = 0 na kipima muda = 0.
- Inakaa kama hali hii wakati ms = 0 na ns = 0.
- Huenda kusema "imewashwa kwa mikono" ikiwa ms = 0 na ns = 1.
- Inakwenda kusema "taa imezimwa, hakuna harakati inayogunduliwa ikiwa ms = 1.
Kaunta inasema:
"Seg 10" (id = 1010)
Uonyesho wa sehemu saba unaonyesha 10.
- Matokeo: bin = "1010" na td = 0.
- Huenda kusema "seg 9" ikiwa timer = 1.
- Inakwenda kusema "tupu 2" ikiwa timer = 0.
"Seg 9" (id = 1001)
Onyesho la sehemu saba linaonyesha 9.
- Matokeo: bin = "1001" na td = 0.
- Huenda kusema "seg 8" ikiwa timer = 1.
- Inakwenda kusema "tupu 2" ikiwa timer = 0.
(Mataifa "Seg 8" hadi "Seg 2" yameachwa kwa sababu yanafuata muundo sawa na "Seg 10" na "Seg 9" na sio lazima kwa ufafanuzi)
"Seg 1" (id = 0001)
Onyesho la sehemu saba linaonyesha 1.
- Matokeo: bin = "0001" na td = 0.
- Huenda kusema "tupu 2" kwenye kingo inayofuata ya saa (hakuna mchango unaohitajika).
"Blank 2" (id = 1111)
Onyesho la sehemu saba linaonyesha 0. Kusudi la hali ya pili tupu ni kwamba kuna hali tofauti kwa wakati td = 1 kwa usalama.
- Matokeo: bin = "1111" na td = 1.
- Huenda kusema "tupu 1" kwenye kingo inayofuata ya saa (hakuna mchango unaohitajika).
"Blank 1" (id = 0000)
Onyesho la sehemu saba linaonyesha 0. Hii ndio hali ambayo mfumo unakaa wakati mashine kuu ya serikali iko "inazima, hakuna harakati inayogunduliwa".
- Matokeo: bin = "0000" na td = 0.
- Huenda kusema "seg 10" ikiwa timer = 1.
Hatua ya 3: Meza za Ukweli za Mashine ya Serikali, Mlinganyo wa Kusisimua, na Usawa wa Pato
Hatua inayofuata ni kuunda meza za ukweli kwa mashine mbili za serikali na hesabu za uchochezi na hesabu za pato kwa kila fsm. Kwa kila mlingano wa uchochezi wa fsm, kuna haja ya kuwa na hesabu kwa kila hali ijayo iliyosimbwa kwa hali ya sasa na ishara zake za pembejeo. Kwa kila equation ya pato la fsm, kuna haja ya kuwa na hesabu kwa kila ishara ya pato kulingana na hali ya sasa. Seti zote nne za equations zinaweza kutolewa kutoka kwenye meza za ukweli zilizoonyeshwa. (qn ni hali inayofuata iliyosimbwa kwa kila mashine ya serikali, na q ni hali ya sasa)
(000) sawa na q (2) 'q (1)' q (0) ', na (0000) sawa na q (3)' q (2) 'q (1)' q (0) '
(mfano. (0101) ni q (3) 'q (2) q (1)' q (0) na (110) ni q (2) q (1) q (0) ')
Usawa wa kusisimua kwa fsm kuu:
- qn (2) = (ms) '(ns)
- qn (1) = (ms) '(ns)' + (ms) (orx) '[(td) (001) + (010)] + (ms) [(011) + (100)]
- qn (0) = (ms) '(ns)' + (ms) (orx) '[(000) + (td)' (001)]
Usawa wa pato kwa fsm kuu:
- taa = (000) + (001) + (100)
- kipima muda = (001)
Usawa wa kusisimua kwa fsm ya chini ya kaunta:
- qn (3) = t [(0000) + (1010) + (1001) + (0001)]
- qn (2) = t [(1000) + (0111) + (0110) + (0101) + (0001)]
- qn (1) = t [(0000) + (1000) + (0111) + (0100) + (0011) + (0001)]
- qn (0) = t [(1010) + (1000) + (0110) + (0100) + (0010) + (0001)]
Pato la hesabu ya fsm ya chini:
- td = (1111)
- bin (3) = (1010) + (1001) + (1000) + (1111) + (0000)
- bin (2) = (0111) + (0110) + (0101) + (0100) + (1111) + (0000)
- bin (1) = (1010) + (0111) + (0110) + (0011) + (0010) + (1111) + (0000)
- bin (0) = (1001) + (0111) + (0101) + (0011) + (0001) + (1111) + (0000)
Hatua ya 4: Wrapper, Submodules, & Vizuizi
Kama ilivyoelezwa tayari katika Hatua ya 1, moduli hizi zinahitajika kwa mradi huu na zote zimeunganishwa pamoja na moduli ya kufunika iliyopewa jina la "final_proj.vhd". Faili ya kizuizi inayoitwa "Basys3_Master.xdc" hutumiwa kuunganisha pembejeo na matokeo yote kwa swichi, sehemu saba, na bandari za I / O kwenye bodi ya Basys 3. Kitufe kikuu kinapaswa kuwa swichi kwenye ubao ulio karibu zaidi na upande wa waya, swichi ya kawaida / mwongozo ni ya pili karibu zaidi, na swichi tatu zinazowakilisha sensorer tatu za mwendo ni swichi tatu mara moja karibu na swichi ya kawaida / mwongozo. Nambari zote (hesabu za boolean, matamko ya moduli, nk) tayari zimeandikwa kwenye faili, kwa hivyo sio lazima uandike kitu kingine chochote kufanya kazi hii.
Hatua ya 5: Bandari za I / O za LED
Hatua ya mwisho ya mradi huu ni kutumia iliyoongozwa kuonyesha ikiwa taa au taa huwasha au kuzima. Wiring imeonyeshwa kwenye picha mbili. Hakikisha kuna kipingaji mfululizo na iliyoongozwa (angalau 330 ohms) ili isichome moto iliyoongozwa na uhakikishe kuwa pini ndefu iliyoongozwa imeunganishwa na kichwa kimoja cha kike kwenye ubao wa basys kama waya nyekundu inavyoonyeshwa (juu kulia kabisa) na pini fupi imeunganishwa ardhini, kichwa cha kike sawa na waya nyeusi iliyoonyeshwa (juu, pili kutoka kushoto).
Ilipendekeza:
Mfumo wa Tahadhari ya Kuegesha Magari ya Arduino - Hatua kwa Hatua: 4 Hatua
Mfumo wa Tahadhari ya Kuegesha Magari ya Arduino | Hatua kwa Hatua: Katika mradi huu, nitatengeneza Mzunguko rahisi wa Sura ya Maegesho ya Arduino kwa kutumia Arduino UNO na Sense ya Ultrasonic ya HC-SR04. Mfumo wa tahadhari ya Gari ya Arduino ya msingi inaweza kutumika kwa Urambazaji wa Kujitegemea, Kuanzia Robot na anuwai zingine
Hatua kwa hatua Ujenzi wa PC: Hatua 9
Hatua kwa hatua Jengo la PC: Ugavi: Vifaa: MotherboardCPU & Baridi ya CPU
Mizunguko mitatu ya kipaza sauti -- Mafunzo ya hatua kwa hatua: Hatua 3
Mizunguko mitatu ya kipaza sauti || Mafunzo ya hatua kwa hatua: Mzunguko wa kipaza sauti huimarisha ishara za sauti zinazopokelewa kutoka kwa mazingira kwenda kwenye MIC na kuipeleka kwa Spika kutoka mahali ambapo sauti ya sauti imetengenezwa. Hapa, nitakuonyesha njia tatu tofauti za kutengeneza Mzunguko wa Spika kwa kutumia:
Hatua kwa hatua Elimu katika Roboti na Kit: 6 Hatua
Hatua kwa hatua Elimu katika Roboti na Kit: Baada ya miezi kadhaa ya kujenga roboti yangu mwenyewe (tafadhali rejelea hizi zote), na baada ya sehemu mbili kushindwa, niliamua kurudi nyuma na kufikiria tena mkakati na mwelekeo.Uzoefu wa miezi kadhaa wakati mwingine ulikuwa wa kufurahisha sana, na
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa Hatua (hatua 8): Hatua 8
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa hatua (hatua-8): transducers za sauti za ultrasonic L298N Dc umeme wa umeme wa adapta na pini ya kiume ya dc Arduino UNOBreadboard Jinsi hii inavyofanya kazi: Kwanza, unapakia nambari kwa Arduino Uno (ni mdhibiti mdogo aliye na dijiti na bandari za analog kubadilisha msimbo (C ++)