INHOUDSOPGAWE:

Mededingende gonserstelsel: 5 stappe
Mededingende gonserstelsel: 5 stappe

Video: Mededingende gonserstelsel: 5 stappe

Video: Mededingende gonserstelsel: 5 stappe
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, November
Anonim
Image
Image
Materiaal
Materiaal

Die mededingende gonserstelsel wat in hierdie projek ontwerp is, werk op dieselfde manier as die gonserstelsels wat in die plaaslike en nasionale wetenskapkompetisies gebruik word. Hierdie projek is geïnspireer deur my betrokkenheid by die hoërskoolspan vir drie jaar. Ons het nog altyd die begeerte gehad om die gonserstelsel met 'n timer van 5 sekondes en 20 sekondes te herskep.

Om 'n agtergrond te gee oor die gonserstelsel, is die wetenskapkom -gonsers geprogrammeer om 'n maksimum van 8 spelers in te voer (met 8 aparte gonsers). Sodra een gonser ingedruk is, word die eerste persoon se gons aangesteek om aan te dui watter speler die vraag ontvang. Die res van die spelers word 'uitgesluit', wat beteken dat hul gonsers nie reageer voordat die moderator die gonserstelsel herstel het nie.

Nadat die moderator die vrae gelees het, druk hy op 'n knoppie om die afteltimer te begin wat op die sewesegment vertoon sal word. Na 'n "gooi-op" -vraag, kan die moderator op die regte knoppie druk om die aftelling vanaf 5 sekondes te begin. Intussen kan die moderator na 'n "bonus" -vraag op die linkerknoppie druk om die aftelling vanaf 20 sekondes te begin. Sodra die timer nul bereik, sal 'n geluidssoemer aandui dat die speler nie meer tyd het nie.

Om die stelsel en die afteller af te stel, kan die moderator op die middelste knoppie druk. Om die sluitmeganisme en die speler -LED's terug te stel, moet die skakelaars vir speler 1 en speler 2 laag wees.

Stap 1: materiaal

U benodig die volgende:

  • Basys3 -bord (of ekwivalente FPGA -bord)
  • Mikro-B USB-kabel
  • Luidspreker (ek het 'n passiewe luidspreker gebruik)
  • 2 drade
  • Sagteware om op die FPGA te implementeer (ek het Vivado gebruik)
  • Mededingende gonserstelsel lêer

Stap 2: Black Box -diagram

Black Box diagram
Black Box diagram

Die swart boksdiagram toon die insette en uitsette wat in hierdie zoemerstelsel gebruik sal word.

INSETTE:

speler1, speler2 Hierdie insette is gekoppel aan twee skakelaars op die Basys3 -bord. Vir die gemak word die skakelaars links en regs gebruik.

reset Die middelste knoppie sal gebruik word om die reset -knoppie voor te stel.

count_down_20_sec Die linker knoppie sal gebruik word om die 20-sekonde timer knoppie voor te stel.

count_down_5_sec Die regterknoppie sal gebruik word om die 20-sekonde timer knoppie voor te stel. Om te verseker dat beide die 20-sekonde- en die 5-sekonde-timer begin, hou die knoppie ingedruk totdat die sewe-segmentskerm die timer toon.

CLK Die FPGA -bord sal 'n klok genereer wat met 'n frekwensie van 10 ns loop.

UITSETTE:

luidspreker Die luidsprekeruitgang is gekoppel aan 'n eksterne gonser of luidspreker. U sal die luidspreker moet aansluit op die Basys3 -kaart JA pmod -poorte. Hierdie stap sal hieronder uiteengesit word.

speaker_LED Hierdie uitset is gekoppel aan 'n LED in die middel van die bord, en sal net aandui wanneer die luidsprekeruitset van die FPGA hoog is. U kan dit gebruik om u eksterne luidspreker te toets. Let daarop dat sommige van die pmod -poorte moontlik nie goed funksioneer nie, sodat u verskillende kan probeer en die LED kan gebruik om te kyk of die luidspreker aan is.

SEGMENTE Hierdie uitset is gekoppel aan die agt individuele segmente op die sewe-segment-skerm, insluitend die desimale punt.

DISP_EN Hierdie uitset is gekoppel aan die vier anodes op die sewesegment.

player_LED Hierdie uitset is 'n 2-bondel sein wat gekoppel is aan die LED's bo die speler1 en speler2 skakelaars. Die eerste speler wat die ooreenstemmende skakelaar omdraai, word deur die LED aangedui. Let daarop dat beide LED's nie gelyktydig kan brand nie.

Stap 3: Koppel die eksterne luidspreker

Koppel die eksterne luidspreker
Koppel die eksterne luidspreker

Om die eksterne luidspreker aan die Basys3 -bord te koppel, neem u twee drade en heg dit aan soos aangedui in die bostaande prentjie. Die wit lyn verbind die negatiewe aansluiting van die luidspreker met die grondpoort op die bord. Die rooi lyn verbind die positiewe aansluiting van die luidspreker met die JA10 pmod -poort op die bord.

Die beperkingslêer is so ontwerp dat enige poort van JA1 tot JA10 moet werk. Sommige penne op die bord reageer egter nie, so as JA10 nie werk nie, kan u die ander poorte probeer.

Stap 4: Strukturele diagram

Strukturele diagram
Strukturele diagram

Die afbeelding hierbo toon die struktuurdiagram van die mededingende zoemerstelsel, insluitend al die komponente wat die hoofmodule uitmaak. Hulle beskrywings is soos volg:

player_lockout_LED1 Die LED-komponent vir spelerblokkering is 'n eindtoestandmasjien wat een-warm kodering gebruik. Dit het vier insette: speler1, speler2, reset en CLK. Dit bevat 'n 2-bis bundel-uitvoer speler_LED. Die insette en uitsette van die player_lockout_LED1-komponent is almal direk gekoppel aan die dieselfde ingange en uitsette van die hoofmodule.

buzzer_tone1 Die gonser -komponent is gebaseer op hierdie kode wat op 'n forum geplaas is

stackoverflow.com/questions/22767256/vhdl-… Dit is egter aangepas om 'n deurlopende klank met 'n frekwensie van 440 Hz ('n nota) te lewer. Die insette -insette is gekoppel aan 'n buzzer_enable -sein wat 'n uitset is van die down_counter_FSM1 -komponent.

clk_div1 Die klokverdeler -komponent is 'n aangepaste weergawe van professor Bryan Mealy se klokverdeler op PolyLearn. Dit vertraag die klok, sodat die uitsetperiode 1 sekonde is.

down_counter_FSM1 Die down counter is 'n FSM wat ontwerp is om af te tel tot nul. Die twee moontlike aanvangstye is 20 of 5, wat deur die gebruikersinvoer gekies word. Dit gee '1' uit wanneer die timer op nul gekom het om aan te dui dat die tyd verstreke is. Hierdie uitset dien as 'n aktiveer vir die gons toon komponent. Die toonbank gee ook 'n 8-bis bondelsignaal af wat 'n 8-bis BCD stuur wat na die segmentdekodeerder gestuur word. 'N Ander uitset is die counter_on wat ook gekoppel is aan die geldige insette op die segmentdekodeerder.

sseg_dec1 Die sewe-segment dekodeerderkomponent word op PolyLearn verskaf en is geskryf deur professor Bryan Mealy. Dit maak gebruik van 'n BCD-invoer wat deur die down_counter_FSM1 verskaf word, en gee die desimale ekwivalent op die sewesegment uit. As die toonbank aan is, is die geldige insette hoog. Hiermee kan die dekodeerder die desimale getal op die sewesegment vertoon. As die toonbank af is, is die geldige insette laag. Die sewe-segment vertoning sal dan slegs vier strepies vertoon.

Stap 5: Finite State Machine (FSM) -diagram

Finite State Machine (FSM) diagram
Finite State Machine (FSM) diagram

Die sensitiwiteitslys vir die eindtoestandmasjien bevat speler1, speler2, reset en die klok. Die FSM-uitset is 'n 2-bis bondel player_LED wat gekoppel is aan twee LED's op die Basys3-bord. Die Finite State Machine toon die volgende drie toestande:

ST0 is die begin toestand. In hierdie toestand is die twee LED's afgeskakel. Die FSM sal in hierdie toestand bly as beide speler1 en speler2 laag is. 'N Asynchrone herstel stel die toestand ook op ST0. As die speler1 -skakelaar op hoog gestel is, sal die volgende toestand ST1 wees. As die speler2 -skakelaar op hoog gestel is, sal die volgende toestand ST2 wees.

ST1 is die toestand waarvoor speler1 LED aan is. Die FSM sal in hierdie toestand bly vir enige insette. Dit beteken dat selfs as die speler2 -skakelaar hoog is onmiddellik nadat die speler1 -skakelaar hoog is, dit in ST1 sal bly. Slegs die asynchrone reset kan die volgende toestand op ST0 stel.

ST2 is die toestand waarvoor speler2 LED brand. Soortgelyk aan ST !, die FSM sal in hierdie toestand bly vir enige insette, selfs as die speler1 -skakelaar hoog is onmiddellik nadat die speler2 -skakelaar hoog is. Weereens, slegs die asynchrone reset kan die volgende toestand op ST0 stel.

Aanbeveel: