Talaan ng mga Nilalaman:

Modelo ng isang Universal Off Switch: 10 Hakbang
Modelo ng isang Universal Off Switch: 10 Hakbang

Video: Modelo ng isang Universal Off Switch: 10 Hakbang

Video: Modelo ng isang Universal Off Switch: 10 Hakbang
Video: Диагностика гбо 4 поколения своими руками 2024, Nobyembre
Anonim
Modelo ng isang Universal Off Switch
Modelo ng isang Universal Off Switch

Sawa ka na bang suriin na ang lahat ng ilaw sa iyong bahay ay patay bago ka matulog? Nais mo bang maaari mong patayin ang bawat ilaw nang sabay-sabay nang walang abala? Upang makatipid ng lakas at oras, nagpasya kaming lumikha ng isang system na maaaring teoretikal na isara ang isang buong bahay nang sabay-sabay.

Nag-modelo kami ng isang patunay ng konseptong ito gamit ang isang pares ng LED's at isang basys 3 circuit board, at lumikha ng isang disenyo na magpapawalang-bisa sa lahat ng mga LED na may isang pindot ng isang pindutan. Ang modelong ito ay maaaring mailapat patungo sa isang aktwal na sistema ng pag-iilaw din sa bahay, kahit na mangangailangan ito ng mas kumplikadong mga kable at pagbabago sa ibinigay na mga file ng VHDL.

Hakbang 1: I-import ang Naibigay na Mga VHDL File

Upang gumana nang tama ang aming modelo kakailanganin mong i-download ang software na nagbibigay sa board ng Basys 3 ng mga tagubilin nito.

Una kakailanganin mong mag-download ng isang tool sa pagbubuo para sa pagpapatupad ng mga vhdl file sa hardware. Kung nais mong tiyakin na ang lahat ng code ay ganap na magtiklop ng aming disenyo nang hindi nangangailangan ng anumang mga pagbabago, inirerekumenda namin na gamitin mo ang Vivado 2016.2. Matapos mong mai-install ang Vivado maaari kang lumikha ng isang proyekto at i-download ang aming mga source file. Idagdag ang mga ito bilang mga mapagkukunan sa iyong proyekto, huwag kalimutang idagdag ang mga hadlang na file din!

Susunod na ipapaliwanag namin kung ano ang ginagawa ng bawat isa sa mga pinagmulang file. Laktawan ang mga hakbang 2 hanggang 6 kung nais mo lamang makarating sa pisikal na konstruksyon ng aparato.

Hakbang 2: Pagkasira ng Nangungunang Modyul ng VHDL

Pagkasira ng Nangungunang Modyul ng VHDL
Pagkasira ng Nangungunang Modyul ng VHDL
Pagkasira ng Nangungunang Modyul ng VHDL
Pagkasira ng Nangungunang Modyul ng VHDL

Ang nangungunang module ng proyekto ay kung ano ang nag-uugnay sa lahat ng mga indibidwal na mga module ng sangkap sa ginamit na hardware. Tulad ng nakikita mong mayroon kaming mga module ng killSwitch at buzzerControl na tinukoy bilang mga bahagi sa itaas.

Tinutukoy ng mas mababang seksyon kung paano magkonekta ang mga modyul na ito. Nakakonekta namin ang apat na LED sa board at iniugnay ang mga ito sa mga killSwitch module na dev0 sa pamamagitan ng dev3. Mayroon kaming apat na mga module ng killSwitch na tinukoy dahil kailangan namin ng isa upang pamahalaan ang estado ng bawat konektadong LED. Ang bawat isa sa mga modyul na ito ay gumagamit ng signal ng orasan at pindutan na nilikha namin sa tuktok na kahulugan ng module pati na rin ang kani-kanilang switch ng input at signal ng aparato ng output.

Ang module ng control ng buzzer sa ibaba ay nagpapagana ng buzzer kapag pinindot ang universal off button. Tulad ng nakikita mo ang module ng control ng buzzer ay naipasa ang signal ng orasan at pindutan bilang mga input. Naipasa rin ang pisikal na buzzer output pin upang makontrol ito nang naaayon.

Hakbang 3: Pagkasira ng VHDL Kill Switch Module

Pagkasira ng VHDL Kill Switch Module
Pagkasira ng VHDL Kill Switch Module
Pagkasira ng VHDL Kill Switch Module
Pagkasira ng VHDL Kill Switch Module

Ang Kill Switch ay ang unibersal na pindutan na off, at ang module ay nababahala lalo na sa pagkonekta nito sa iba pang mga elemento ng circuit upang kapag pinindot ang lahat ng mga ilaw ay papatayin.

Habang pinangangasiwaan ng tuktok na module ang pagkonekta ng pisikal na hardware sa software, hinahawakan ng module ng killSwitch ang pangunahing lohika ng bawat aparato. Ang module ay tumatagal ng mga input para sa signal ng orasan, pangkalahatang off button, at ang switch ng toggle ng aparato. Bilang kapalit kinokontrol nito ang estado ng aparato na pin na konektado ito.

Sa seksyon ng arkitektura ng code nakikita namin na ito ay may isang pagpapakandili sa dFlipFlop module upang mag-imbak ng memorya. Maaari mo ring makita na idineklara namin ang apat na signal na gagamitin upang ikonekta ang flip flop pati na rin ipatupad ang aming mga pahayag sa lohika. Sa loob ng seksyon ng pag-uugali ng code lumikha kami ng isang halimbawa ng module na dFlipFlop at itinalaga ang aming mga signal ng I / O sa mga port.

Mula dito ang pangunahing bahagi ng aming lohika ay nakasalalay sa mga halaga ng signal para sa invertState at isDevOn. Ang aming lohikal na batayan para sa aparato ay ang mga sumusunod: "Anumang oras na itinapon ang switch ang ilaw ay babaliktad ito ay nakabukas / nakabukas ang estado. Anumang oras na ang pindutan ay pinindot, at ang LED ay kasalukuyang nakabukas, ibabaligtad ng LED ang estado nito upang patayin. " Mula sa dalawang pahayag na ito maaari nating i-extrapolate na ang estado ng LED ay dapat na XOR ng switch at ang aming elemento ng memorya. Sa ganoong paraan ang isang pagbabago sa alinman ay ibabaligtad ang LED. Makikita itong ipinatupad sa signal ng isDevOn. Ang LED na kundisyon para sa elemento ng memorya ay pinangangasiwaan ng aming signal na invertState. Kung ang LED ay nakabukas at ang pindutan ay pinindot, ang aming elemento ng memorya ay maa-update at baligtarin ang estado nito. Pagkatapos ay babaligtarin din nito ang estado ng LED.

Hakbang 4: Pagkasira ng VHDL Flip Flop Module

Pagkasira ng VHDL Flip Flop Module
Pagkasira ng VHDL Flip Flop Module

Ang isang problema sa aming disenyo ay ang katotohanang pagkatapos magamit ang off switch, ang mga ilaw na dati ay nakabukas ay maaaring kailanganin na i-flip nang dalawang beses upang bumalik sa nakabukas na posisyon. Ito ay magiging lubos na abala para sa mga tao sa paglipas ng panahon. Nagawa naming maiwasan ang abala sa pamamagitan ng pagsasama ng isang "Flip Flop," isang elemento ng circuit na may kakayahang itago ang impormasyon, sa aming disenyo. Ngayon, naaalala ng system kung ang isang switch ng ilaw ay dati nang nakabukas upang kung ito ay muling napaliko ay bubuksan ito anuman ang paunang posisyon nito.

Gumagamit ang VHDL code kung at iba pang mga pahayag upang malikha ang Flip Flop bilang isang sangkap sa loob ng aming disenyo ng circuit. Tinitiyak nito na kapag lumipat ang signal ng orasan mula sa isang mababang patungo sa isang mataas na estado, kapag ang ilaw ng bombilya, at kapag naitulak ang off switch, ang output ng flip flops ay nagpapapatong sa pag-input nito. Kapag ang pag-input ay napapatungan ang flip flop ay baligtad.

Hakbang 5: Pagkasira ng VHDL Piezo Buzzer Module

Pagkasira ng VHDL Piezo Buzzer Module
Pagkasira ng VHDL Piezo Buzzer Module
Pagkasira ng VHDL Piezo Buzzer Module
Pagkasira ng VHDL Piezo Buzzer Module

Ang file na ito ay medyo kalabisan hanggang sa disenyo ng hardware, ngunit mahalaga ito upang maisagawa nang maayos ang tuktok na module at ang mga hadlang na file. Kung pipiliin mong hindi gamitin ang Piezo buzzer, i-download ang file na ito, ngunit huwag ilakip ang buzzer sa board ng Basys 3.

Ang Piezo buzzer ay, sa pagpindot sa pindutan na hindi paganahin, maglaro ng isang tono ng dalawang tala na magbibigay sa gumagamit ng feedback sa pandinig na ang pindutan ay naitulak. Naipatupad namin ito sa pag-uugali sa VHDL sa pamamagitan ng isang serye ng kung mga pahayag sa isang istraktura ng proseso. Nagsimula kami sa pamamagitan ng paglikha ng isang halaga ng integer upang subaybayan kung gaano karaming mga pagbabago sa orasan ang naganap. Kapag nagsimula ang proseso gumugol ang programa ng unang kalahating segundo (0 hanggang 50 milyong mga tick ng orasan) na naglalabas ng isang tala sa 440 hertz. Natapos ito sa pamamagitan ng pag-invert ng signal ng piezo buzzer bawat kahit maraming 227272 na mga ticks ng orasan na may modulo function. Ang bilang na ito ay ang resulta ng paghati ng signal ng orasan ng board (100 MHz) sa nais na dalas (400 Hz). Sa panahon ng pangalawang kalahating segundo (50 hanggang 100 milyong mga ticks ng orasan) ang board ay naglalabas ng isang F note na 349.2 hertz sa pamamagitan ng parehong pamamaraan tulad ng dati. Pagkatapos ng isang segundo ang programa ay hindi dagdagan ang variable ng orasan ng anumang karagdagang at hihinto sa pag-output ng anumang bagay mula sa piezo buzzer. Ang pagpindot sa pindutan ng unibersal na off ay muling i-reset ang bilang na ito sa 0, muling pag-restart ang cycle ng ingay.

Hakbang 6: Pagwawasak ng VHDL Constraints File

Sinasabi ng file ng mga hadlang sa Vivado kung anong mga aparato ang ginagamit namin sa Basys 3 board. Nagbibigay din ito ng Vivado ng mga pangalan na ibinigay namin sa mga aparato sa aming code. Kailangan ng Vivado ang impormasyong ito upang malaman nito kung paano ikonekta ang aming mga elemento ng lohika sa pisikal na hardware. Ang file ng mga hadlang ay nagsasama ng isang malaking halaga ng nagkomento-out (hindi nagamit) na code. Ang mga linya ng code na ito ay tumutukoy sa mga aparato sa board na hindi namin ginagamit.

Ang mga aparato na ginagamit namin ay may kasamang apat na switch ng input na may label na V17, V16, W16, at W1 sa pisara. Gumagamit din kami ng unibersal na off button, na may label na U18. Ang mga output pin para sa aming apat na konektadong LED ay ang JB4, JB10, JC4, at JC10. Para sa aming piezzo buzzer gumagamit kami ng output pin JA9.

Tulad ng sinabi namin sa tuktok na pagkasira ng module, kung nais mong magdagdag ng mga karagdagang LED o iba pang mga aparato sa board na kailangan mo upang madagdagan ang saklaw ng mga signal ng sw at dev, magdagdag ng higit pang mga module ng killSwitch, at ikonekta silang magkasama. Kailangan mong i-link ang mga variable na pangalan sa hardware ng aparato sa pamamagitan ng mga hadlang na file. Maaari itong magawa sa pamamagitan ng pag-unsment (muling pagpapagana) ng mga linya ng code na nauugnay sa mga pin na nais mong gamitin pagkatapos idagdag ang pangalan ng nauugnay na variable sa tuktok na module. Ang tamang syntax para dito ay maaaring makopya mula sa mga aparato na ginagamit namin. Upang malaman ang mga pangalan ng mga pin na nais mong gamitin sa pisara, sumangguni sa gabay sa sanggunian na Baasys 3 dito.

Hakbang 7: Pagbubuo ng Basys 3

Pagbuo ng Basys 3
Pagbuo ng Basys 3
Pagbuo ng Basys 3
Pagbuo ng Basys 3

Kakailanganin mong i-plug ang iyong mga LED sa tamang I / O port ng Basys 3. Sundin ang mga ibinigay na larawan upang matukoy kung ano ang tamang mga port, dahil kung isaksak mo ang isang LED sa maling port hindi ito mag-iilaw. Kung pinili mo upang ilakip ang piezo buzzer, kakailanganin mo ring ikonekta iyon sa tamang mga port ng I / O.

Kapag handa na ang board, isaksak ito sa iyong computer sa pamamagitan ng USB cable.

Hakbang 8: Pagpapatupad ng VHDL Files sa Basys 3

Pagpapatupad ng VHDL Files sa Basys 3
Pagpapatupad ng VHDL Files sa Basys 3
Pagpapatupad ng VHDL Files sa Basys 3
Pagpapatupad ng VHDL Files sa Basys 3

Ngayon na ang iyong board ay handa na at ang iyong code ay tapos na, maaari mong wakas isama ang modelo.

Kapag naayos mo na ang iyong proyekto sa Vivado, dapat mong i-click ang pindutang "Bumuo ng Bitstream" upang maipunan ang code bago ito mai-upload sa board. Kung makakatanggap ka ng isang mensahe ng error sa oras na ito, kailangan mong i-double check kung eksaktong tumutugma ang iyong code sa amin. Kapag sinabi kong eksakto, ang ibig kong sabihin ay kahit na ang mga semicolon o mga uri ng panaklong na ginagamit. Kapag matagumpay na nakasulat ang iyong bitstream, pumunta sa manager ng hardware sa loob ng Vivado at mag-click sa pindutang "Buksan ang Target", pagkatapos ay mag-click kaagad sa "Program Device" pagkatapos. Ang iyong board ng Basys 3 ay dapat na ganap na gumana.

Hakbang 9: Gamit ang Lupon ng Basys 3

Gamit ang Lupon ng Basys 3
Gamit ang Lupon ng Basys 3

Ngayon na ang Basys 3 Board ay pagpapatakbo at na-program na upang kumatawan sa aming modelo, kailangan mong malaman kung paano ito gamitin.

Ang bawat isa sa apat na switch na pinakamalayo sa kanan ay kumokontrol sa isa sa mga LED, ang pagdidikit sa kanila ay magiging sanhi ng pag-on o pag-off ng LED. Kung ang LED ay hindi aktibo, suriin upang makita na naka-plug ka sa tamang port ng I / O, at ang iyong LED ay gumagana sa unang lugar.

Kung nais mong huwag paganahin ang lahat ng mga LED nang sabay-sabay, dapat mong itulak ang gitnang pindutan sa hanay ng limang mga pindutan na ipinakita sa itaas.

Hakbang 10: Ipagmalaki

Ang modelo ay nagsisilbing isang maayos na maliit na bagong bagay o karanasan na maaari mong ipakita sa harap ng iyong mga kaibigan at pamilya. Maaari itong magamit din ayon sa teoretikal upang ipatupad ang unibersal na off switch sa iyong home electrical system, kung papalitan mo ang mga LED ng mga wires na humahantong sa iyong mga ilaw. Habang posible, kailangan pa rin naming magpayo laban dito. May potensyal na makagawa ng malubhang pinsala sa iyong sarili o sa iyong bahay kung susubukan mong mag-rewire nang walang tulong ng isang elektrisista.

Inirerekumendang: