Мазмұны:

Бәсекеге қабілетті дыбыстық жүйе: 5 қадам
Бәсекеге қабілетті дыбыстық жүйе: 5 қадам

Бейне: Бәсекеге қабілетті дыбыстық жүйе: 5 қадам

Бейне: Бәсекеге қабілетті дыбыстық жүйе: 5 қадам
Бейне: Басқа тышты деген осы 😡 2024, Қараша
Anonim
Image
Image
Материалдар
Материалдар

Бұл жобада әзірленген бәсекеге қабілетті дыбыстық жүйе аймақтық және ұлттық ғылыми боулинг жарыстарында қолданылатын дыбыстық сигнал жүйелеріне ұқсас жұмыс істейді. Бұл жоба менің үш жыл бойы орта мектептің ғылыми табақтар командасымен жұмыс жасауымнан туындады. Бізде әрқашан 5 секундтық және 20 секундтық таймермен құлыптау сигналдық жүйесін жаңартуға деген ұмтылыс болған.

Сигналдық жүйе туралы біраз мәлімет беру үшін, ғылыми шыныаяқтар ең көп 8 ойыншыны енгізуге бағдарламаланған (8 бөлек дыбыстық сигналмен). Бір дыбыстық сигнал басылғаннан кейін, бірінші ойыншының сигналы қай ойыншының сұраққа жауап беретінін көрсетеді. Қалған ойыншылар «құлыптаулы» болады, яғни модератор дыбыстық жүйені қалпына келтірмейінше олардың дыбыстық сигналдары жауап бермейді.

Модератор сұрақтарды оқығаннан кейін жеті сегментті дисплейде көрсетілетін кері санақ таймерін іске қосу үшін түймені басады. «Лақтыру» сұрағынан кейін, модератор 5 секундтан кері санауды бастау үшін оң жақ батырманы баса алады. Сонымен қатар, «бонустық» сұрақтан кейін модератор 20 секундтан кері санауды бастау үшін сол жақ батырманы баса алады. Таймер нөлге жеткенде, дыбыстық дыбыстық сигнал ойнатқыштың уақыты біткенін көрсетеді.

Жүйені және кері санау таймерін қалпына келтіру үшін модератор орталық түймені баса алады. Құлыптау механизмі мен ойнатқыштың жарық диодтарын қалпына келтіру үшін 1 -ші және 2 -ші ойыншының қосқыштары төмен күйде болуы керек.

1 -қадам: материалдар

Сізге мыналар қажет болады:

  • Basys3 тақтасы (немесе оған ұқсас FPGA тақтасы)
  • Micro-B USB кабелі
  • Динамик (мен пассивті динамикті қолдандым)
  • 2 сым
  • FPGA -ға енгізуге арналған бағдарламалық қамтамасыз ету (мен Vivado қолдандым)
  • Бәсекеге қабілетті дыбыстық жүйе файлы

2 -қадам: Қара жәшік диаграммасы

Қара жәшік диаграммасы
Қара жәшік диаграммасы

Қара жәшік диаграммасы осы сигналдық жүйеде қолданылатын кірістер мен шығуларды көрсетеді.

Кірістер:

player1, player2 Бұл кірістер Basys3 тақтасындағы екі ажыратқышқа қосылған. Ыңғайлы болу үшін сол жақ және оң жақ қосқыштар қолданылады.

бастапқы қалпына келтіру түймесі қалпына келтіру түймесін көрсету үшін пайдаланылады.

count_down_20_sec Сол жақ түймешік 20 секундтық таймер түймесін көрсету үшін пайдаланылады.

count_down_5_sec Оң жақ түймешік 20 секундтық таймер түймесін көрсету үшін пайдаланылады. 20 секундтық және 5 секундтық таймердің іске қосылуын қамтамасыз ету үшін батырманы жеті сегментті дисплейде таймер көрсетілгенше басып тұрыңыз.

CLK FPGA тақтасы 10 нс жиілікте жұмыс істейтін сағатты жасайды.

ШЫҒУЛАР:

динамик Динамик шығысы сыртқы дыбыстық сигналға немесе динамикке қосылған. Динамикті Basys3 тақтасының JA pmod порттарына қосу керек болады. Бұл қадам төменде сипатталады.

Speaker_LED Бұл шығыс тақтаның ортасындағы жарықдиодтыға қосылады және ол FPGA динамигінің шығысы жоғары болған кезде ғана көрсетеді. Сіз мұны сыртқы динамикті тексеру үшін пайдалана аласыз. Кейбір pmod порттары жақсы жұмыс істемеуі мүмкін екенін ескеріңіз, сондықтан сіз әр түрлі порттарды қолданып көріңіз және динамиктің қосулы болуын тексеру үшін жарықдиодты қолданыңыз.

СЕГМЕНТТЕР Бұл шығыс ондық бөлшекті қосқанда, жеті сегментті дисплейде сегіз жеке сегментке қосылады.

DISP_KZ Бұл шығыс жеті сегментті дисплейдегі төрт анодқа қосылған.

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

3 -қадам: Сыртқы динамикті қосу

Сыртқы динамикті қосу
Сыртқы динамикті қосу

Сыртқы динамикті Basys3 тақтасына қосу үшін екі сымды алып, жоғарыдағы суретте көрсетілгендей бекітіңіз. Ақ сызық динамиктің теріс терминалын тақтадағы жер портына қосады. Қызыл сызық динамиктің оң терминалын тақтадағы JA10 pmod портына қосады.

Шектеу файлы JA1 -ден JA10 -ге дейінгі кез келген порт жұмыс істей алатындай етіп жасалған. Дегенмен, тақтадағы кейбір түйреуіштер жауап бермейді, сондықтан егер JA10 жұмыс істемесе, басқа порттарды қолдануға болады.

4 -қадам: Құрылымдық диаграмма

Құрылымдық диаграмма
Құрылымдық диаграмма

Жоғарыдағы суретте негізгі модульді құрайтын барлық компоненттерді қамтитын бәсекелестік сигналдық жүйенің құрылымдық диаграммасы көрсетілген. Олардың сипаттамасы келесідей:

player_lockout_LED1 Ойнатқышты құлыптаудың жарықдиодты компоненті-біркелкі кодтауды қолданатын соңғы күйдегі машина. Оның төрт кірісі бар: player1, player2, reset және CLK. Оның құрамында 2-разрядты шығыс player_LED бар. Player_lockout_LED1 компонентінің кірістері мен шығыстары негізгі модульдің бірдей аталатын кірістері мен шығыстарына тікелей байланысты.

buzzer_tone1 Дыбыстық сигнал компоненті форумда орналастырылған осы кодқа негізделген

stackoverflow.com/questions/22767256/vhdl-… Алайда, ол 440 Гц жиіліктегі үздіксіз дыбысты шығару үшін өзгертілді (Ескерту). Қосу кірісі down_counter_FSM1 компонентінің шығысы болып табылатын buzzer_enable сигналына қосылған.

clk_div1 Сағат бөлгіш компоненті - бұл профессор Брайан Милидің PolyLearn -де берілген сағат бөлгішінің өзгертілген нұсқасы. Ол сағатты баяулатады, сондықтан шығыс кезеңі 1 секунд.

down_counter_FSM1 Төменгі санауыш - бұл нөлге дейін санауға арналған FSM. Екі мүмкін басталу уақыты - 20 немесе 5, оны пайдаланушы енгізеді. Уақыттың біткенін көрсету үшін таймер нөлге жеткенде '1' шығады. Бұл шығыс дыбыстық сигнал компонентіне қосылу қызметін атқарады. Есептегіш сегментті декодерге жіберілетін 8 биттік BCD жіберетін 8 биттік жиынтық сигнал шығарады. Тағы бір шығыс - бұл counter_on, ол сонымен қатар сегменттің декодеріндегі жарамды кіріске қосылады.

sseg_dec1 Жеті сегментті декодер компоненті PolyLearn-де берілген және оны профессор Брайан Мили жазған. Down_counter_FSM1 ұсынған BCD кірісін қолданады және жеті сегментті дисплейде ондық эквивалентті шығарады. Есептегіш қосулы кезде жарамды кіріс жоғары болады. Бұл дешифраторға ондық санды жеті сегментті дисплейде көрсетуге мүмкіндік береді. Есептегіш өшірілгенде, жарамды кіріс төмен болады. Жеті сегментті дисплейде тек төрт сызықша көрсетіледі.

5 -қадам: Ақырлы күй машинасының (FSM) диаграммасы

Ақырлы күй машинасының (FSM) диаграммасы
Ақырлы күй машинасының (FSM) диаграммасы

Ақырғы күйдегі машинаның сезімталдығы тізіміне player1, player2, reset және сағат кіреді. FSM шығысы-бұл Basys3 тақтасындағы екі светодиодқа жалғанған 2 биттік ойыншы_LED. Ақырлы күй машинасы келесі үш күйді көрсетеді:

ST0 - бастапқы күй. Бұл жағдайда екі светодиод өшеді. Егер ойыншы1 де, ойыншы2 де төмен болса, FSM осы күйде қалады. Асинхронды қалпына келтіру күйді ST0 күйіне орнатады. Player1 қосқышы жоғары күйге орнатылғанда, келесі күй ST1 болады. Егер player2 қосқышы жоғары күйге қойылса, келесі күй ST2 болады.

ST1 - ойыншы1 жарық диоды қосылатын күй. FSM кез келген енгізу үшін осы күйде қалады. Бұл player1 қосқышы жоғары болғаннан кейін player2 коммутаторы жоғары күйге орнатылғанның өзінде ол ST1 -де қалады дегенді білдіреді. Тек асинхронды қалпына келтіру келесі күйді ST0 күйіне орната алады.

ST2 - ойыншы2 жарық диоды қосылатын күй. ST !. Тағы да, асинхронды қалпына келтіру келесі күйді ST0 күйіне орната алады.

Ұсынылған: