Sommario:
- Passaggio 1: materiali
- Passaggio 2: diagramma della scatola nera
- Passaggio 3: collegamento dell'altoparlante esterno
- Passaggio 4: diagramma strutturale
- Passaggio 5: diagramma della macchina a stati finiti (FSM)
Video: Sistema di cicalini competitivo: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Il sistema di buzzer competitivo progettato in questo progetto funziona in modo simile ai sistemi di buzzer utilizzati nelle competizioni regionali e nazionali di Science Bowl. Questo progetto è stato ispirato dal mio coinvolgimento per tre anni con la squadra di bowling scientifica del mio liceo. Abbiamo sempre avuto il desiderio di ricreare il sistema di cicalino di blocco con timer da 5 secondi e 20 secondi.
Per dare un'idea del sistema di cicalini, i cicalini della ciotola della scienza sono programmati per inserire un massimo di 8 giocatori (con 8 cicalini separati). Una volta che un cicalino è stato premuto, il cicalino della prima persona si accenderà per indicare quale giocatore riceve la domanda. Il resto dei giocatori sarà "bloccato", il che significa che i loro cicalini non risponderanno fino a quando il moderatore non ripristinerà il sistema del cicalino.
Dopo che il moderatore ha letto le domande, premerà un pulsante per avviare il conto alla rovescia che verrà visualizzato sul display a sette segmenti. Dopo una domanda "lancio", il moderatore può premere il pulsante destro per avviare il conto alla rovescia da 5 secondi. Nel frattempo, dopo una domanda "bonus", il moderatore può premere il pulsante sinistro per avviare il conto alla rovescia da 20 secondi. Quando il timer raggiunge lo zero, un segnale acustico indicherà che il giocatore ha esaurito il tempo.
Per ripristinare il sistema e il conto alla rovescia, il moderatore può premere il pulsante centrale. Per ripristinare il meccanismo di blocco e i LED del giocatore, gli interruttori per il giocatore 1 e il giocatore 2 devono essere in posizione bassa.
Passaggio 1: materiali
Avrai bisogno di quanto segue:
- Scheda Basys3 (o scheda FPGA equivalente)
- Cavo USB Micro-B
- Altoparlante (ho usato un altoparlante passivo)
- 2 fili
- Software da implementare su FPGA (ho usato Vivado)
- File di sistema del cicalino della concorrenza
Passaggio 2: diagramma della scatola nera
Il diagramma della scatola nera mostra gli ingressi e le uscite che verranno utilizzati in questo sistema di buzzer.
INGRESSI:
player1, player2 Questi ingressi sono collegati a due interruttori sulla scheda Basys3. Per comodità, verranno utilizzati gli interruttori più a sinistra e più a destra.
reset Il pulsante centrale verrà utilizzato per rappresentare il pulsante di reset.
count_down_20_sec Il pulsante sinistro verrà utilizzato per rappresentare il pulsante del timer di 20 secondi.
count_down_5_sec Il pulsante destro verrà utilizzato per rappresentare il pulsante del timer di 20 secondi. Per garantire l'avvio sia del timer di 20 secondi che di quello di 5 secondi, tenere premuto il pulsante finché il display a sette segmenti non mostra il timer.
CLK La scheda FPGA genererà un clock che funziona con una frequenza di 10 ns.
USCITE:
altoparlante L'uscita dell'altoparlante è collegata a un cicalino o altoparlante esterno. Dovrai collegare l'altoparlante alle porte JA pmod della scheda Basys3. Questo passaggio verrà descritto di seguito.
speaker_LED Questa uscita è collegata a un LED al centro della scheda e indicherà solo quando l'uscita dell'altoparlante dell'FPGA è alta. Puoi usarlo per testare il tuo altoparlante esterno. Nota che alcune delle porte pmod potrebbero non funzionare bene, quindi puoi provarne di diverse e utilizzare il LED per verificare se l'altoparlante deve essere acceso.
SEGMENTS Questa uscita è collegata agli otto singoli segmenti del display a sette segmenti, compreso il punto decimale.
DISP_EN Questa uscita è collegata ai quattro anodi del display a sette segmenti.
player_LED Questa uscita è un segnale 2-bundle collegato ai LED sopra gli interruttori player1 e player2. Il primo giocatore a capovolgere l'interruttore corrispondente sarà indicato dal LED. Notare che entrambi i LED non possono essere accesi contemporaneamente.
Passaggio 3: collegamento dell'altoparlante esterno
Per collegare l'altoparlante esterno alla scheda Basys3, prendi i tuoi due fili e collegali come indicato nell'immagine sopra. La linea bianca collega il terminale negativo dell'altoparlante alla porta di terra sulla scheda. La linea rossa collega il terminale positivo dell'altoparlante alla porta JA10 pmod sulla scheda.
Il file dei vincoli è progettato in modo che qualsiasi porta da JA1 a JA10 dovrebbe funzionare. Tuttavia, alcuni pin sulla scheda non rispondono, quindi se JA10 non funziona, puoi provare le altre porte.
Passaggio 4: diagramma strutturale
L'immagine sopra mostra lo schema strutturale del sistema buzzer competitivo comprensivo di tutti i componenti che compongono il modulo principale. Le loro descrizioni sono le seguenti:
player_lockout_LED1 Il componente LED di blocco del lettore è una macchina a stati finiti che utilizza la codifica one-hot. Ha quattro ingressi: player1, player2, reset e CLK. Contiene un output bundle a 2 bit player_LED. Gli ingressi e le uscite del componente player_lockout_LED1 sono tutti collegati direttamente agli ingressi e alle uscite con lo stesso nome del modulo principale.
buzzer_tone1 Il componente buzzer si basa su questo codice pubblicato su un forum
stackoverflow.com/questions/22767256/vhdl-… Tuttavia, è stato modificato per emettere un suono continuo con una frequenza di 440 Hz (nota LA). L'ingresso di abilitazione è collegato a un segnale buzzer_enable che è un'uscita del componente down_counter_FSM1.
clk_div1 Il componente divisore dell'orologio è una versione modificata del divisore dell'orologio del Professor Bryan Mealy fornito su PolyLearn. Rallenta l'orologio in modo che il periodo di uscita sia di 1 secondo.
down_counter_FSM1 Il contatore all'indietro è un FSM progettato per contare alla rovescia fino a zero. I due possibili orari di inizio sono 20 o 5 che viene scelto dall'input dell'utente. Emette '1' quando il timer ha raggiunto lo zero per indicare che il tempo è scaduto. Questa uscita funge da abilitazione per il componente tono buzzer. Il contatore emette anche un segnale bundle a 8 bit che invia un BCD a 8 bit che viene inviato al decodificatore di segmento. Un'altra uscita è counter_on anch'essa collegata all'ingresso valido sul decoder di segmento.
sseg_dec1 Il componente del decodificatore a sette segmenti è fornito su PolyLearn ed è stato scritto dal professor Bryan Mealy. Utilizza un input BCD fornito da down_counter_FSM1 ed emette l'equivalente decimale sul display a sette segmenti. Quando il contatore è attivo, l'ingresso valido è alto. Ciò consente al decoder di visualizzare il numero decimale sul display a sette segmenti. Quando il contatore è spento, l'ingresso valido è basso. Il display a sette segmenti mostrerà quindi solo quattro trattini.
Passaggio 5: diagramma della macchina a stati finiti (FSM)
L'elenco di sensibilità per la macchina a stati finiti include player1, player2, reset e l'orologio. L'uscita FSM è un bundle player_LED a 2 bit collegato a due LED sulla scheda Basys3. La macchina a stati finiti mostra i seguenti tre stati:
ST0 è lo stato iniziale. In questo stato i due LED sono spenti. L'FSM rimarrà in questo stato se sia player1 che player2 sono bassi. Un reset asincrono imposta anche lo stato su ST0. Quando l'interruttore player1 è impostato su alto, lo stato successivo sarà ST1. Se l'interruttore player2 è impostato su alto, lo stato successivo sarà ST2.
ST1 è lo stato per il quale il LED player1 è acceso. L'FSM rimarrà in questo stato per qualsiasi input. Ciò significa che anche quando l'interruttore player2 è impostato su alto subito dopo che l'interruttore player1 è alto, rimarrà in ST1. Solo il reset asincrono può impostare lo stato successivo su ST0.
ST2 è lo stato per il quale il LED player2 è acceso. Simile a ST!, l'FSM rimarrà in questo stato per qualsiasi ingresso, anche quando l'interruttore player1 è impostato su alto subito dopo che l'interruttore player2 è alto. Anche in questo caso, solo il reset asincrono può impostare lo stato successivo su ST0.
Consigliato:
Sistema di automazione domestica WiFi a bassissima potenza: 6 passaggi (con immagini)
Sistema di automazione domestica WiFi a bassissima potenza: in questo progetto mostriamo come costruire un sistema di automazione domestica locale di base in pochi passaggi. Utilizzeremo un Raspberry Pi che fungerà da dispositivo WiFi centrale. Considerando che per i nodi finali utilizzeremo IOT Cricket per creare un'alimentazione a batteria
Sistema di smistamento dei colori: sistema basato su Arduino con due cinghie: 8 passaggi
Color Sorting System: Arduino Based System With Two Belts: Il trasporto e/o confezionamento di prodotti e articoli in ambito industriale avviene tramite linee realizzate con nastri trasportatori. Quelle cinghie aiutano a spostare l'oggetto da un punto all'altro con una velocità specifica. Alcune attività di elaborazione o identificazione possono essere
Sistema di allarme antincendio con Arduino [in pochi semplici passaggi]: 3 passaggi
Sistema di allarme antincendio con Arduino [in pochi semplici passaggi]: stai cercando di realizzare un progetto semplice e interessante con Arduino che allo stesso tempo possa essere davvero utile e potenzialmente salvavita? Se sì, sei arrivato nel posto giusto per imparare qualcosa di nuovo e innovativo. In questo post andiamo
Gioco competitivo VS a tempo per 2 giocatori: 4 passaggi
Gioco competitivo VS a tempo per 2 giocatori: Avrai bisogno di: 1.Digilent Basys 3, scheda FPGA (o qualsiasi altro FPGA,)2. Una versione relativamente aggiornata di Vivado, o qualche altro ambiente VHDL3. Un computer in grado di eseguire il programma menzionato
Come collegare e configurare correttamente un sistema di scaffale Mini HiFi (sistema audio): 8 passaggi (con immagini)
Come collegare e configurare correttamente un sistema di mensole mini HiFi (sistema audio): sono una persona a cui piace imparare l'ingegneria elettrica. Sono un liceo presso la Ann Richards School for Young Women Leaders. Sto rendendo questo istruttivo per aiutare chiunque voglia godersi la propria musica da un Mini LG HiFi Shelf Syste