Мазмұны:

Әмбебап сөндіргіштің моделі: 10 қадам
Әмбебап сөндіргіштің моделі: 10 қадам

Бейне: Әмбебап сөндіргіштің моделі: 10 қадам

Бейне: Әмбебап сөндіргіштің моделі: 10 қадам
Бейне: Қытайдың WZ-120-1G FT бағыттаушы танк жойғышына шолу 2024, Шілде
Anonim
Әмбебап өшіру қосқышының моделі
Әмбебап өшіру қосқышының моделі

Ұйықтар алдында үйдегі барлық шамдардың сөніп тұрғанын тексеруден шаршадыңыз ба? Сіз кез келген шуылсыз бірден жарықты сөндіргіңіз келеді ме? Қуат пен уақытты үнемдеу үшін біз бүкіл үйді бірден теориялық түрде жауып тастайтын жүйе құруды шештік.

Біз бұл тұжырымдаманың дәлелін бірнеше светодиодты және basys 3 схемасын пайдаланып модельдеп, түймені басу арқылы барлық жарықдиодты сөндіретін дизайн жасадық. Бұл модельді үйде жарықтандырудың нақты жүйесіне де қолдануға болады, бірақ ол VHDL файлдарына күрделі сымдар мен модификацияларды қажет етеді.

1 -қадам: берілген VHDL файлдарын импорттаңыз

Біздің модель дұрыс жұмыс істеуі үшін сізге Basys 3 тақтасына нұсқаулық беретін бағдарламалық жасақтаманы жүктеу қажет болады.

Алдымен сізге vhdl файлдарын аппараттық құралдарға енгізу үшін синтез құралы жүктелуі керек. Егер сіз барлық кодтар біздің дизайнды өзгертусіз толық көшіретініне сенімді болғыңыз келсе, Vivado 2016.2 нұсқасын қолдануды ұсынамыз. Vivado -ны орнатқаннан кейін сіз жоба жасай аласыз және біздің бастапқы файлдарды жүктей аласыз. Оларды сіздің жобаңыздың көздері ретінде қосыңыз, шектеулер файлын қосуды ұмытпаңыз!

Әрі қарай, біз бастапқы файлдардың әрқайсысы не істейтінін түсіндіреміз. Егер сіз құрылғының физикалық құрылысына қол жеткізгіңіз келсе, 2 -ден 6 -ға дейінгі қадамдарды өткізіп жіберіңіз.

2 -қадам: VHDL жоғарғы модулінің бөлінуі

VHDL жоғарғы модулінің бөлінуі
VHDL жоғарғы модулінің бөлінуі
VHDL жоғарғы модулінің бөлінуі
VHDL жоғарғы модулінің бөлінуі

Жобаның жоғарғы модулі - бұл барлық жеке модульдерді қолданылған аппараттық құралмен байланыстыратын нәрсе. Көріп отырғаныңыздай, бізде killSwitch және buzzerControl модульдері жоғарғы жағында компоненттер ретінде анықталған.

Төменгі бөлімде бұл модульдердің бір -біріне қалай қосылғаны көрсетілген. Біз төрт жарықдиодты тақтаға қостық және оларды devS арқылы dev3 арқылы killSwitch модульдерімен байланыстырдық. Бізде төрт killSwitch модулі анықталған, себебі әрбір қосылған жарықдиодты күйді басқару үшін бізге қажет. Бұл модульдердің әрқайсысы модульдің жоғарғы анықтамасында біз жасаған сағаттық және түйме сигналын, сондай -ақ олардың кіріс қосқышы мен шығыс құрылғысының сигналдарын пайдаланады.

Әмбебап өшіру түймесі басылған кезде төменгі жақтағы дыбыстық басқару модулі дыбыстық сигналды іске қосады. Көріп отырғаныңыздай, сигналды басқару модулі кіріс ретінде сағат пен түйме сигналын береді. Сондай -ақ, оны басқару үшін физикалық дыбыстық сигнал шығысы беріледі.

3 -қадам: VHDL Kill Switch модулінің бұзылуы

VHDL Kill Switch модулінің бұзылуы
VHDL Kill Switch модулінің бұзылуы
VHDL Kill Switch модулінің бұзылуы
VHDL Kill Switch модулінің бұзылуы

Kill Switch - әмбебап өшіру түймесі, ал модуль оны басқа тізбек элементтеріне қосумен байланысты, ол басылған кезде барлық шамдар сөнеді.

Жоғарғы модуль физикалық жабдықты бағдарламалық қамтамасыз етуге қосуды басқарса, killSwitch модулі әр құрылғының негізгі логикасын басқарады. Модуль сағат сигналына, әмбебап өшіру түймесіне және құрылғы қосқышына арналған кірістерді қабылдайды. Өз кезегінде ол қосылған құрылғының істікшесінің күйін бақылайды.

Кодтың архитектура бөлімінде оның жады сақтауға арналған dFlipFlop модуліне тәуелділігі бар екенін көреміз. Сондай -ақ, біз флип -флопты қосуға және логикалық мәлімдемелерімізді іске асыруға қолданылатын төрт сигналды жариялағанымызды көре аласыз. Кодтың мінез -құлық бөлімінде біз dFlipFlop модулінің данасын құрдық және енгізу -шығару сигналдарын порттарға бердік.

Осыдан біздің логиканың негізгі бөлігі invertState және isDevOn сигналдарының мәнінде жатыр. Біздің құрылғының логикалық негізі келесідей: «Кез келген уақытта қосқыш лақтырылған кезде, жарық оның қосылу/өшіру күйін өзгертеді. Түйме басылғанда және жарық диодты қосқанда, жарық диоды күйін өшіреді. « Осы екі мәлімдемеден біз жарық диодты күй коммутатордың XOR және біздің жады элементі болуы керек екенін экстраполяциялай аламыз. Мұны isDevOn сигналында енгізілгенін көруге болады. Жады элементінің шартты жарық диоды біздің invertState сигналымен өңделеді. Егер жарық диоды қосулы болса және түйме басылса, біздің жады элементі күйін жаңартады және өзгертеді. Бұл жарық диодты күйді өзгертеді.

4 -қадам: VHDL Flip Flop модулінің бұзылуы

VHDL Flip Flop модулінің бұзылуы
VHDL Flip Flop модулінің бұзылуы

Біздің дизайндағы бір мәселе - өшіру қосқышын қолданғаннан кейін, қосулы күйге оралу үшін бұрын қосылып тұрған шамдарды екі рет аудару қажет болуы мүмкін. Бұл уақыт өте келе адамдарға өте ыңғайсыздық туғызады. Біз дизайнға ақпаратты сақтауға қабілетті «Flip Flop» схемасын қосу арқылы бұл қолайсыздықты айналып өте алдық. Енді жүйе шамның қосқышы бұрын қосылып тұрғанын есіне түсіреді, егер ол қайта аударылса, ол бастапқы орнына қарамастан қосылады.

VHDL коды біздің схеманың құрамдас бөлігі ретінде флип -флоп жасау үшін if және else операторларын қолданады. Ол сағат сигналы төменнен жоғары күйге ауысқанда, лампочка қосылғанда және өшіру қосқышы басылғанда, флип -флопс шығысы оның кірісін қайта жазуды қамтамасыз етеді. Кіріс қайта жазылса, флип -флоп аударылады.

5 -қадам: VHDL Piezo Buzzer модулінің бұзылуы

VHDL Piezo Buzzer модулінің бұзылуы
VHDL Piezo Buzzer модулінің бұзылуы
VHDL Piezo Buzzer модулінің бұзылуы
VHDL Piezo Buzzer модулінің бұзылуы

Бұл файл аппараттық дизайнға қатысты біршама артық, бірақ бұл жоғарғы модуль мен шектеулер файлдарының біркелкі жұмыс істеуін қамтамасыз ету үшін қажет. Егер сіз Piezo дыбыстық сигналын пайдаланбауды шешсеңіз, бұл файлды жүктеңіз, бірақ дыбыстық сигналды Basys 3 тақтасына бекітпеңіз.

Piezo дыбыстық сигналы өшіру түймесін басқан кезде пайдаланушыға түйме басылғанын есту арқылы кері байланыс беретін екі нота үнін шығарады. Біз мұны VHDL -де процестік құрылымдағы if операторларының сериясы арқылы жүзеге асырдық. Біз сағаттың қанша өзгергенін бақылау үшін бүтін санды құрудан бастадық. Процесс басталғаннан кейін бағдарлама бірінші жарты секундты (0 -ден 50 миллионға дейін) 440 герцте A жазбасын шығарады. Бұл модульдік функциясы бар 227272 сағат белгісінің әрбір еселігіне пьезо -дыбыстық сигналды аудару арқылы жүзеге асады. Бұл сан тақтаның сағаттық сигналын (100 МГц) қажетті жиілікке (400 Гц) бөлудің нәтижесі. Екінші жарты секунд ішінде (50 -ден 100 миллионға дейін), тақта бұрынғы әдіспен 349,2 герцте F жазбасын шығарады. Бір секундтан кейін бағдарлама сағат айнымалысын жоғарылатпайды және пьезо сигналынан ешнәрсе шығаруды тоқтатады. Әмбебап өшіру түймесін қайта басу осы цифрды 0 қалпына келтіреді, шу циклын қайта бастайды.

6 -қадам: VHDL шектеулер файлының бөлінуі

Шектеулер файлы Vivado -ға Basys 3 тақтасындағы қандай құрылғыларды қолданатынымызды айтады. Ол сонымен қатар Vivado -ға біздің кодымыздағы құрылғыларға берген атауларын береді. Vivado бұл ақпаратты қажет етеді, сондықтан ол біздің логикалық элементтерді физикалық жабдыққа қалай қосуды біледі. Шектеулер файлында түсіндірілген (пайдаланылмаған) кодтың үлкен көлемі бар. Бұл код жолдары біз пайдаланбайтын тақтадағы құрылғыларға сілтеме жасайды.

Біз қолданатын құрылғыларда V17, V16, W16 және W1 деп белгіленген төрт кіріс қосқышы бар. Біз сондай -ақ U18 деп белгіленген әмбебап өшіру түймесін қолданамыз. Біз қосылған төрт светодиодтың шығыс түйрегіштері - JB4, JB10, JC4 және JC10. Біздің пьезцо -дыбыстық сигнал үшін біз JA9 шығыс түйреуішін қолданамыз.

Модульдің жоғарғы бөлімінде айтқанымыздай, егер тақтаға қосымша жарықдиодты немесе басқа құрылғыларды қосқыңыз келсе, sw және dev сигналдарының ауқымын ұлғайтып, killSwitch модульдерін қосып, оларды бір -бірімен байланыстырыңыз. Содан кейін шектеулер файлы арқылы сол айнымалы атауларды құрылғы аппаратурасына байланыстыру қажет. Мұны пайдаланғыңыз келетін түйреуіштермен байланысты код жолдарын түсіндіру (қайта қосу) арқылы жасауға болады, содан кейін жоғарғы модульге байланысты айнымалының атауын қосу арқылы жасауға болады. Бұл үшін тиісті синтаксисті біз қолданатын құрылғыдан көшіруге болады. Тақтада қолданғыңыз келетін түйреуіштердің атауын білу үшін мына жердегі Baasys 3 анықтамалық нұсқаулығын қараңыз.

7 -қадам: Базисті құру 3

Базисті құру 3
Базисті құру 3
Базистің құрылысы 3
Базистің құрылысы 3

Сізге светодиоды Basys дұрыс енгізу -шығару порттарына қосу қажет болады 3. Дұрыс порттардың не екенін анықтау үшін берілген суреттерді орындаңыз, себебі егер жарық диодты дұрыс емес портқа қоссаңыз, ол жанбайды. Егер сіз пьезо -дыбыстық сигналды қосуды таңдасаңыз, оны енгізу -шығару порттарына дұрыс қосуыңыз қажет.

Тақта дайын болған кезде оны USB кабелі арқылы компьютерге қосыңыз.

8 -қадам: VHDL файлдарын Basys -ке енгізу 3

VHDL файлдарын Basys -ке енгізу 3
VHDL файлдарын Basys -ке енгізу 3
VHDL файлдарын Basys -ке енгізу 3
VHDL файлдарын Basys -ке енгізу 3

Енді сіздің тақта дайын және сіздің кодыңыз аяқталғаннан кейін сіз модельді біріктіре аласыз.

Vivado -да жобаңызды орнатқаннан кейін, ол тақтаға жүктелместен бұрын кодты құрастыру үшін «Бит ағыны жасау» түймесін басу керек. Егер сіз осы уақытта қате туралы хабарлама алсаңыз, сіздің кодыңыз біздің кодқа сәйкес келетінін екі рет тексеруіңіз керек. Мен дәл айтқанымда, тіпті нүктелі үтірлерді немесе жақшаның түрлерін де қолданамын. Сіздің бит ағыныңыз сәтті жазылғаннан кейін, Vivado ішіндегі аппараттық менеджерге өтіп, «Мақсатты ашу» түймесін басыңыз, содан кейін бірден «Бағдарламалық құрылғыны» басыңыз. Сіздің Basys 3 тақтасы енді толық жұмыс істеуі керек.

9 -қадам: Basys 3 тақтасын пайдалану

Basys 3 тақтасын қолдану
Basys 3 тақтасын қолдану

Енді Basys 3 тақтасы жұмыс істеп тұр және біздің модельді көрсету үшін бағдарламаланған, сіз оны қалай пайдалану керектігін білуіңіз керек.

Оң жақта орналасқан төрт қосқыштың әрқайсысы жарық диодты басқарады, оларды жылжыту жарықдиодты қосуға немесе өшіруге әкеледі. Егер светодиод қосылмаса, енгізу -шығару портына дұрыс қосылғанын тексеріңіз және сіздің жарық диодыңыз бірінші кезекте жұмыс істейтінін тексеріңіз.

Барлық жарықдиодты бірден өшіргіңіз келсе, жоғарыда көрсетілген бес түймедегі орталық түймені басу керек.

10 -қадам: Көрсету

Модель сіздің достарыңыз бен отбасыңыздың алдында көрсете алатын ұқыпты шағын жаңалық ретінде қызмет етеді. Егер сіз жарық диодты шамдарға сыммен ауыстырсаңыз, оны үйдегі электр жүйесіне әмбебап өшіру қосқышын енгізу үшін теориялық түрде қолдануға болады. Мүмкін болса да, біз оған қарсы кеңес беруіміз керек еді. Егер сіз электриктердің көмегінсіз қайта қосылуға тырыссаңыз, өзіңізге немесе үйіңізге үлкен зиян келтіру ықтималдығы бар.

Ұсынылған: