Talaan ng mga Nilalaman:

Basys 3 Alarm Clock: 9 Hakbang
Basys 3 Alarm Clock: 9 Hakbang

Video: Basys 3 Alarm Clock: 9 Hakbang

Video: Basys 3 Alarm Clock: 9 Hakbang
Video: The best of the best???. Radio receiver TECSUN PL680 FULL REVIEW!!! #tecsun 2024, Oktubre
Anonim
Basys 3 Alarm Clock
Basys 3 Alarm Clock

Lumilikha ang aming proyekto ng isang alarm clock gamit ang Basys 3 FPGA board, isang Arduino, at isang speaker driver board. Nagawang i-input ng gumagamit ang kasalukuyang oras sa board gamit ang 11 input switch sa Basys 3 at i-lock ang halaga gamit ang gitnang button sa board. Pagkatapos ay maaaring ipasok ng gumagamit ang oras ng alarma gamit ang parehong mga switch ngunit pindutin ang kaliwang pindutan upang i-lock sa oras ng alarma. Kung ipinasok ang maling oras, ang pindutan ng pag-reset (tuktok na pindutan) ay maaaring mapindot at ang kasalukuyang oras ng orasan at oras ng alarma ay itatakda sa 00:00. Maaari nang simulan ng gumagamit ang orasan gamit ang kaliwang switch at i-on ang alarma gamit ang susunod na switch. Kapag binuksan ang alarma, ang orasan ng alarma ay magkakaroon ng tunog kapag tumugma ang oras ng orasan at itakda ang oras ng alarm.

Hakbang 1: Diagram ng Itim na Kahon

Diagram ng Itim na Kahon
Diagram ng Itim na Kahon
Diagram ng Itim na Kahon
Diagram ng Itim na Kahon

Sinimulan namin ang aming proyekto sa pamamagitan ng pagguhit ng isang diagram ng itim na kahon upang mailarawan ang mga input at output na kinakailangan sa aming programa. Ang mga sumusunod na input para sa aming programa tulad ng 5-bit input (Hour_in) ay naisimula upang tukuyin ang 24 na oras na oras, 6-bit (Min_in) na input upang maipakita hanggang sa 60 minuto, isang pindutan ng pag-reset (Rst_b) upang payagan ang gumagamit na baguhin ang kanilang input ng oras, isang 1-bit input (alm_en) na kung saan ay naglo-load ng input ng alarma, isang 1-bit na input (alarm_sw) upang patayin ang alarm clock kapag ito ay naaktibo, isang 1-bit input (e_sec) na kumokontrol kapag ang counter tatakbo ang mga segundo, isang 1-bit input (Led_btn) na nagtatakda ng kasalukuyang oras, at panghuli isang 1-bit input (clk) na kumokontrol sa oras na ipinakita ng Basys 3 board. Ang mga output ay ang (alm_on) na nagpapadala ng signal sa Arduino, ang output ng sseg na nagpapakita ng oras ng pag-input sa Basys 3, at ang output ng anode na kumokontrol kung saan ipinapakita ang mga input sa pitong mga segment na ipinakita.

Hakbang 2: Mabagal na Orasan

Mabagal na Orasan
Mabagal na Orasan

Ang mabagal na orasan o clock_div2 file ay lumilikha ng isang orasan na ang dalas ay 2 hz. Kung pakainin natin ang orasan na ito sa counter ng aming segundo, ang halagang segundo ay tataas ng isa bawat segundo. Ginagamit ang mabagal na orasan upang lumikha ng isang maaasahang signal ng orasan na nagbabago mula sa mababa hanggang sa mataas minsan ng bawat segundo.

Hakbang 3: Counter

Counter
Counter
Counter
Counter

Component Counter (minuto at segundo):

Ang pangunahing pagpapaandar ng minuto at segundo ay ang mga ito ay mga counter. Ang counter ng minuto ay tumatagal ng input (Vin) na signal mula sa mga input (Min_in), at pagkatapos ay bibilangin hanggang maabot ang nais na input na input. Ang mga segundo ay tumatagal lamang ng input ng switch (e_Sec) dahil hindi ito maipakita sa pitong segment, at binibilang sa background kapag ang switch ay mataas na '1'. Pareho silang naglalabas doon na halaga sa (Qout), at pagkatapos ay nakaimbak ito sa (data) na ipinapadala ito sa SSEG na ginagawa sa pag-link na file. Gayundin, kapag naabot ng mga minuto at segundo ang mga halagang 59 na ito ay nai-reset, at ang output ng mga ito ay '1' upang madagdagan ang minuto / oras. Maaari rin itong mapa sa isang pag-reset (rst_b) sa kanilang mga input.

Hakbang 4: Counter Hour

Counter Hour
Counter Hour
Counter Hour
Counter Hour

Component Counter Hour

Katulad nito, sa bahagi ng sangkap ng minuto at segundo ang oras na sangkap ay tumatagal ng mga input s tulad ng (Vin) na isang senyas mula sa pag-link ng file input (Hour_in), at may mga output na naka-link sa parehong pamamaraan ng mga minuto at segundo. Kapag ang bilang ng bilang ng oras ay umabot sa 24 00 na ito ay nai-reset sa 00 00.

Hakbang 5: Alarm

Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm
Alarm

Ang alarm.vhd file ay binubuo ng d-flip-flops na mga storage device na maaaring mag-imbak ng digital data. Ginagamit ang file ng alarma upang maiimbak ang oras kung saan ang activated na alarm. Upang maiimbak ang data ng mga oras (5 bit input) at minuto (6 bit input) dapat nating mai-stamp ang 11 d-flip-flop sa loob ng aming alarm file. Upang magawa ito, kailangan muna nating i-import ang lohika na namamahala sa pagpapatakbo ng mga d-flip-flop at mapa ang mga bahagi. Ang bawat isa sa 11 d-flip-flops ay mag-iimbak ng kaunting data mula sa mga input at papayagan ang data na ma-map sa mga output ng file ng alarm. Dahil ang data ng d-flip-flops ay nag-iimbak ng data, nagagamit namin ang data sa isang mas huling punto ng oras kahit na ang mga switch ng input ay nabago.

Hakbang 6: Universal Driver ng Pitong Segment na Segment

Universal Driver ng Pitong Segment na Segment
Universal Driver ng Pitong Segment na Segment
Universal Driver ng Pitong Segment na Segment
Universal Driver ng Pitong Segment na Segment
Universal Driver ng Pitong Segment na Segment
Universal Driver ng Pitong Segment na Segment

Ang unibersal na pitong segment na driver ng display ay tumatanggap ng mga input mula sa orasan at orasan na itinakda at magagawang i-output ang mga ito sa pitong segment na display sa board. Ang driver ay nakapag-output ng dalawang magkakahiwalay na bilang sa board nang sabay-sabay. Ginamit namin ang pagpapaandar na ito upang ipakita ang magkahiwalay na oras ng oras at oras ng minuto. Ang pitong segment na pagpapakita ay nakapag-aktibo lamang ng isang numero nang paisa-isang dahil dapat dapat gumamit ng multiplexing ang sseg file upang maipakita ang lahat ng mga numero ng oras nang sabay-sabay. Ang signal ng boards orasan ay ipinakain sa sseg upang mapanatili ang tamang oras para sa multiplexing. Ang isang binary sa binary coded decimal encoder ay kinakailangan upang ma-convert ang mga input sa file sa isang form na maaaring ma-output sa pitong segment na display. Ang pangwakas na output ng sseg file ay nai-map sa pitong segment na display at ang tamang oras ay ipinapakita sa display.

Hakbang 7: Mag-link ng File

Link File
Link File
Link File
Link File
Link File
Link File

Ang link file ay nag-uugnay sa lahat ng iba pang mga aspeto ng programa at nai-map ang mga signal sa kanilang tamang lokasyon. Ang bawat sangkap ay dinala at nabuhay sa loob ng file. Ginagamit ang mga signal upang ilipat ang data mula sa isang bahagi patungo sa isa pa. Susundan ng pagmamapa ng port ang diagram ng itim na kahon na nakalista sa itaas. Humahawak din ang link file ng lohika na namamahala kapag na-activate ang alarm. Karamihan sa proyekto ay tapos na sa puntong ito. Ang natitirang trabaho ay itinuturo ang bawat signal sa naaangkop na lokasyon.

Hakbang 8: Arduino

Arduino
Arduino
Arduino
Arduino

Ginagamit ang arduino upang buhayin ang nagsasalita pati na rin makontrol ang tono at tagal ng tala na nilalaro sa pamamagitan ng speaker. Ang arduino ay nagbabasa ng isang digital signal mula sa board ng Basys 3. Kapag ang signal na ito ay mataas, ang arduino ay maglalabas ng isang PWM signal na kinokontrol ang tono at tagal ng alarma. Ang output signal mula sa arduino ay kumokonekta sa input signal ng isang speaker driver board na nagdaragdag ng dami ng nagsasalita. Ginagawa ng arduino ang prosesong ito nang napakabilis na paulit-ulit na maraming beses bawat segundo.

Hakbang 9: Cable Routing

Pagruruta sa Cable
Pagruruta sa Cable

Ang arduino at Basys 3 board ay dapat na pisikal na konektado upang ilipat ang mga signal sa pagitan ng mga board. Ang unang cable sa wire ay ang mula sa ground pin ng JA PMOD ng Basys 3 hanggang sa ground pin ng arduino. Susunod na ikonekta ang isang kawad mula sa pin 1 ng JA PMOD ng Basys 3 hanggang sa digital pin 7 ng arduino. Susunod, ikonekta ang dalawang mga pin ng lupa mula sa arduino sa mga ground pin ng driver ng speaker. Susunod, ikonekta ang output ng 3.3 V ng arduino sa Vcc pin ng driver ng speaker. Susunod, ikonekta ang digital pin 9 ng arduino sa In pin ng driver ng speaker.

Inirerekumendang: