Sommario:

CPE 133 Cestino sorter: 14 passaggi
CPE 133 Cestino sorter: 14 passaggi

Video: CPE 133 Cestino sorter: 14 passaggi

Video: CPE 133 Cestino sorter: 14 passaggi
Video: HackTheBox — Каскад 2024, Dicembre
Anonim
CPE 133 Separatore di rifiuti
CPE 133 Separatore di rifiuti

Per la nostra classe CPE 133 al Cal Poly ci è stato detto di creare un progetto VHDL/Basys 3 che avrebbe aiutato l'ambiente ed era abbastanza semplice da poterlo implementare con la nostra nuova conoscenza del design digitale. L'idea alla base del nostro progetto che, in generale, le persone non pensano a dove gettano la spazzatura. Abbiamo deciso di creare una macchina che costringesse le persone a riflettere su dove mettono la spazzatura. Il nostro selezionatore di rifiuti prende l'input dell'utente attraverso tre interruttori, ognuno dei quali rappresenta spazzatura, riciclaggio o compost. Una volta che l'utente ha selezionato il tipo di rifiuto che desidera smaltire, premere un pulsante. Questo pulsante farà aprire i coperchi dei contenitori corrispondenti. La macchina ha anche utilizzato il display della Basys 3 per indicare se uno dei coperchi è attualmente aperto. Al rilascio del pulsante i coperchi si richiuderanno in modo che la macchina sarà pronta per l'utente successivo.

Passaggio 1: materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

I materiali necessari per questo progetto sono:

Scheda Basys 3

Computer con Vivado installato

3x servo*

3 piedi di filo di rame

Tagliafili/Spelafili

Saldatore e saldatore

*perché i servi sono costosi e noi siamo studenti universitari abbiamo sostituito un resistore da 68 ohm e un LED per ogni servo come prototipo (il codice funziona allo stesso modo)

Passaggio 2: inizio della codifica

Inizio della codifica
Inizio della codifica
Inizio della codifica
Inizio della codifica
Inizio della codifica
Inizio della codifica

C'è molto codice da scrivere per questo progetto. Useremo il codice VHDL scritto in Vivado. Per iniziare vorremmo creare un nuovo progetto. Per prima cosa dai un nome al progetto e specifica il tipo di progetto. Assicurati di selezionare le stesse impostazioni come nella foto. Quando sei arrivato alla schermata dei sorgenti, vorrai aggiungere sei sorgenti denominate "top", "flip_flop", "segments", "servo_top", "servo_sig" e "clk_div". Assicurati di selezionare VHDL per la lingua di ciascun file, non Verilog. Nella schermata dei vincoli dovresti creare un file per l'assegnazione dei pin. Il nome di questo file non è importante. Ti verrà quindi richiesto di selezionare la scheda che utilizzerai. Assicurati di selezionare quello corretto. Foto di riferimento per una corretta selezione. L'ultimo passaggio ti chiederà di specificare gli input e gli output di ciascun file sorgente. Questo passaggio può essere codificato in seguito, quindi fai clic su Avanti.

Passaggio 3: file dei vincoli

File dei vincoli
File dei vincoli
File dei vincoli
File dei vincoli

In questo passaggio scriveremo il file dei vincoli. Questo dice a Vivado quali pin invieranno/riceveranno quali segnali dal circuito. Avremo bisogno dell'orologio, tre interruttori, il display a sette segmenti (sette catodi e quattro anodi), un pulsante e i tre pin PMOD di uscita che utilizzerà il servo/LED. Foto di riferimento per come dovrebbe apparire il codice.

Passaggio 4: file flip-flop

File infradito
File infradito

Il prossimo file che scriveremo è il file sorgente flip_flip. Questa sarà un'implementazione VHDL di un flip flop D. In altre parole, passerà il suo ingresso all'uscita solo sul fronte di salita del segnale di clock e quando viene premuto il pulsante. Prenderà l'orologio, D e il pulsante come input e produrrà Q. farà riferimento alle foto per il codice. Lo scopo di questo file è consentire ai contenitori di aprirsi solo quando viene premuto il pulsante anziché aprirsi direttamente ogni volta che l'interruttore viene girato e chiudersi solo quando l'interruttore viene girato indietro.

Passaggio 5: file dei segmenti

File segmenti
File segmenti

Il prossimo file da scrivere è il file dei segmenti. Questo prenderà il pulsante come nei valori di input e output per i sette catodi e i quattro anodi del display a sette segmenti del Basys 3. Questo file fa sì che il display a sette segmenti mostri una "C" quando i contenitori sono chiusi e una "O" quando i contenitori sono aperti. Per il codice vedi foto allegata.

Passaggio 6: file divisore orologio

File divisore orologio
File divisore orologio

I servi funzionano prendendo un segnale PWM con una frequenza di 64k Hz mentre il clock integrato nel Basys 3 funziona a 50M Hz. Il file divisore dell'orologio convertirà l'orologio predefinito in una frequenza amichevole per il servo. Il file prenderà l'orologio e un segnale di reset come input ed emetterà un nuovo segnale di clock. Vedere la foto allegata per il codice.

Passaggio 7: file del segnale del servo

File del segnale del servo
File del segnale del servo

Il file del segnale servo avrà un ingresso di clock, un ingresso di reset e un ingresso di posizione desiderata. Emetterà un segnale PWM che guiderà il servo nella posizione desiderata. Questo file utilizza il segnale di clock creato nell'ultimo file per creare un segnale PWM per il servo con diversi duty cycle a seconda della posizione desiderata. Questo ci permette di girare i servi che controllano i coperchi dei bidoni della spazzatura. Vedere la foto allegata per il codice.

Passaggio 8: file servo superiore

File superiore del servo
File superiore del servo

Lo scopo di questo file è compilare gli ultimi due file in un servoazionamento funzionale. Ci vorrà un orologio, un reset e una posizione come ingresso e emetterà il segnale PWM servo. Utilizzerà sia il divisore di clock che il file di segnale servo come componenti e includerà un segnale di clock interno per passare il clock modificato dal divisore di clock al file di segnale servo. Guarda le foto su

Passaggio 9: file superiore

File in alto
File in alto
File in alto
File in alto
File in alto
File in alto
File in alto
File in alto

Questo è il file più importante del progetto in quanto racchiude tutto ciò che abbiamo creato insieme. Prenderà il pulsante, i tre interruttori e l'orologio come input. Darà i sette catodi, i quattro anodi e i tre segnali servo/LED come uscite. Utilizzerà il flip flop, i segmenti ei file servo_top come componenti e avrà un interruttore interno e un segnale servo interno.

Passaggio 10: test in Vivado

Esegui sintesi, implementazione e scrivi bitsream in Vivado. Se riscontri messaggi di errore, trova la posizione dell'errore e confrontala con il codice fornito. Risolvere eventuali errori finché tutte queste esecuzioni non vengono completate correttamente.

Passaggio 11: introduzione all'hardware di costruzione

In questo passaggio creerai l'hardware LED che abbiamo utilizzato nel nostro prototipo. Se si utilizzano i servi, il progetto dovrebbe essere pronto per l'uso purché vengano utilizzati i pin corretti. Se si utilizzano i LED, seguire i passaggi seguenti.

Passaggio 12: preparazione

Tagliare il filo in sei pezzi pari. Spelare le estremità di ciascun pezzo di filo in modo da consentire la saldatura. Separare LED, resistori e cavi in tre gruppi. Riscaldare il saldatore.

Passaggio 13: saldatura

saldatura
saldatura
saldatura
saldatura

Saldare ciascuno dei resistori da 68 ohm sul lato negativo del LED corrispondente. Saldare un filo sul lato positivo del LED e un altro filo sul lato del resistore non saldato al led. Dovresti avere tre degli aggeggi LED nella foto sopra.

Fase 14: Finale

Finale
Finale

Inserire ciascun filo positivo nel pin PMOD corrispondente e ciascun negativo in un pin PMOD di terra. Facoltativamente, aggiungi contenitori di cartone per rappresentare i contenitori della spazzatura e nascondere il tuo pasticcio di saldatura. Una volta che i cavi sono collegati correttamente e il codice è stato caricato correttamente sulla scheda senza errori, la macchina dovrebbe funzionare come previsto. Se qualcosa va storto, torna ai passaggi precedenti per la risoluzione dei problemi. Divertiti con il tuo nuovo "smistatore di rifiuti".

Consigliato: