Taula de continguts:

CPE 133 Classificador de paperera: 14 passos
CPE 133 Classificador de paperera: 14 passos

Vídeo: CPE 133 Classificador de paperera: 14 passos

Vídeo: CPE 133 Classificador de paperera: 14 passos
Vídeo: HackTheBox — Каскад 2024, De novembre
Anonim
CPE 133 Classificador de paperera
CPE 133 Classificador de paperera

Per a la nostra classe CPE 133 a Cal Poly, ens van dir que crearíem un projecte VHDL / Basys 3 que ajudés el medi ambient i que fos prou senzill com per poder implementar-lo amb els nostres nous coneixements de disseny digital. La idea del nostre projecte que, en general, la gent no pensa a on llença la brossa. Vam decidir crear una màquina que obligés les persones a pensar on posaven les escombraries. El nostre classificador d’escombraries transmet l’entrada de l’usuari a través de tres commutadors, que representen cadascun d’ells brossa, reciclatge o compost. Una vegada que l'usuari ha seleccionat el tipus de residus que volen eliminar, premen un botó. Aquest botó farà que s’obrin les tapes del contenidor corresponents. La màquina també va utilitzar la pantalla de la base 3 per indicar si alguna de les tapes està oberta actualment. Quan es deixa anar el botó, les tapes es tornaran a tancar de manera que la màquina estigui llesta per al següent usuari.

Pas 1: materials

Materials
Materials
Materials
Materials
Materials
Materials

Els materials necessaris per a aquest projecte són:

Tauler Basys 3

Ordinador amb Vivado instal·lat

Servo 3x *

Fil de coure de 3 peus

Tallador de fil / pelador

Soldador i soldador

* perquè els servos són cars i som estudiants universitaris, hem substituït una resistència de 68 ohms i un LED per cada servo com a prototip (el codi funciona de la mateixa manera)

Pas 2: Començar la codificació

Començar la codificació
Començar la codificació
Començar la codificació
Començar la codificació
Començar la codificació
Començar la codificació

Hi ha molts codis per escriure per a aquest projecte. Utilitzarem codi VHDL escrit en Vivado. Per començar voldrem crear un nou projecte. Primer anomenareu el projecte i especifiqueu el tipus de projecte. Assegureu-vos de seleccionar la mateixa configuració que a la imatge. Quan hàgiu arribat a la pantalla de fonts, voldreu afegir sis fonts anomenades "top", "flip_flop", "segments", "servo_top", "servo_sig" i "clk_div". Assegureu-vos de seleccionar VHDL per a l'idioma de cada fitxer, no de Verilog. A la pantalla de restriccions, heu de crear un fitxer per a l'assignació de pins. El nom d’aquest fitxer no és important. A continuació, se us demanarà que seleccioneu el tauler que utilitzarà. Assegureu-vos que seleccioneu la correcta. Fotos de referència per a una selecció correcta. L'últim pas us demanarà que especifiqueu les entrades i sortides de cada fitxer font. Aquest pas es pot codificar més endavant, així que feu clic a Següent.

Pas 3: fitxer de restriccions

Fitxer de restriccions
Fitxer de restriccions
Fitxer de restriccions
Fitxer de restriccions

En aquest pas escriurem el fitxer de restriccions. Això indica a Vivado quins pins enviaran / rebran quins senyals del circuit. Necessitarem el rellotge, tres interruptors, la pantalla de set segments (set càtodes i quatre ànodes), un botó i els tres pins PMOD de sortida que utilitzarà el servo / LED. Fotos de referència sobre com ha de quedar el codi.

Pas 4: Flip Flop File

Fitxer Flip Flop
Fitxer Flip Flop

El següent fitxer que escriurem és el fitxer font flip_flip. Aquesta serà una implementació VHDL d’un xanclet D. En altres paraules, només passarà l'entrada a la sortida a la vora ascendent del senyal del rellotge i quan es prem el botó. Prendrà el rellotge, D i el botó com a entrada i sortirà Q. Feu referència a les fotos per obtenir codi. El propòsit d’aquest fitxer és permetre que els contenidors s’obrin només quan es prem el botó en lloc d’obrir-lo directament cada vegada que es gira l’interruptor i només es tanca quan es gira cap enrere.

Pas 5: fitxer de segments

Fitxer de segments
Fitxer de segments

El següent fitxer que cal escriure és el fitxer de segments. Això prendrà el botó com en els valors d'entrada i sortida dels set càtodes i quatre ànodes de la pantalla de set segments de Basys 3. Aquest fitxer fa que la pantalla de set segments mostri una "C" quan els contenidors estan tancats i una "O" quan els contenidors estan oberts. Per obtenir codi, vegeu la foto adjunta.

Pas 6: fitxer divisor de rellotge

Fitxer divisor de rellotge
Fitxer divisor de rellotge

Els servos funcionen prenent un senyal PWM amb una freqüència de 64 k Hz mentre el rellotge integrat al Basys 3 funciona a 50 M Hz. El fitxer divisor de rellotge convertirà el rellotge per defecte en una freqüència amigable per al servo. El fitxer prendrà el rellotge i un senyal de restabliment com a entrada i generarà un nou senyal de rellotge. Consulteu la foto adjunta per obtenir el codi.

Pas 7: fitxer de senyal servo

Fitxer de senyal servo
Fitxer de senyal servo

El fitxer de senyal de servo prendrà una entrada de rellotge, una entrada de restabliment i una entrada de posició desitjada. Emetrà un senyal PWM que conduirà el servo a la posició desitjada. Aquest fitxer utilitza el senyal de rellotge creat a l'últim fitxer per crear un senyal PWM per al servo amb diferents cicles de treball en funció de la posició desitjada. Això ens permet girar els servos que controlen les tapes dels contenidors d’escombraries. Consulteu la foto adjunta per obtenir el codi.

Pas 8: Servo Fitxer superior

Servo Fitxer superior
Servo Fitxer superior

El propòsit d’aquest fitxer és compilar els dos darrers fitxers en un servo controlador funcional. Es necessitarà un rellotge, un restabliment i una posició com a entrada i la sortida del senyal servo PWM. Utilitzarà tant el divisor de rellotge com el fitxer de senyal de servo com a components i inclourà un senyal de rellotge intern per passar el rellotge modificat del divisor de rellotge al fitxer de senyal de servo. Veure fotos a

Pas 9: Arxiu superior

Fitxer superior
Fitxer superior
Fitxer superior
Fitxer superior
Fitxer superior
Fitxer superior
Fitxer superior
Fitxer superior

Aquest és el fitxer més important del projecte, ja que inclou tot el que hem creat junts. Prendrà el botó, els tres interruptors i el rellotge com a entrades. Donarà els set càtodes, els quatre ànodes i els tres senyals servo / LED com a sortides. Utilitzarà el xanclet, els segments i els fitxers servo_top com a components i tindrà un commutador intern i un senyal de servo intern.

Pas 10: proves a Vivado

Executeu Synthesis, implementació i escriptura bitsream a Vivado. Si trobeu algun missatge d'error, busqueu la ubicació de l'error i compareu-lo amb el codi indicat. Esmeneu els errors fins que finalitzin correctament totes aquestes execucions.

Pas 11: Creació d'una introducció al maquinari

En aquest pas, crearà el maquinari LED que hem utilitzat en el nostre prototip. Si utilitzeu servos, el projecte hauria d'estar preparat sempre que s'utilitzin els pins correctes. Si feu servir LEDs, seguiu els passos següents.

Pas 12: preparació

Talleu el filferro en sis trossos parells. Tireu els extrems de cada tros de filferro prou perquè es pugui soldar. Separeu els LEDs, resistències i cables en tres grups. Escalfeu el soldador.

Pas 13: soldar

Soldadura
Soldadura
Soldadura
Soldadura

Soldeu cadascun dels resistors de 68 ohms al costat negatiu del LED corresponent. Soldeu un cable al costat positiu del LED i un altre cable al costat de la resistència no soldat al led. Hauríeu de tenir tres dels artefactes LED que es mostren a la imatge anterior.

Pas 14: final

Final
Final

Introduïu cada cable positiu al pin PMOD corresponent i cada negatiu a un pin PMOD de terra. Opcionalment, afegiu contenidors de cartró per representar les papereres i amagueu el vostre embolic de soldadura. Un cop els cables estiguin correctament endollats i el codi es carregui correctament a la placa sense errors, la màquina hauria de funcionar tal com es volia fer. Si alguna cosa va malament, torneu als passos anteriors per solucionar-los. Diverteix-te amb el teu nou "classificador d'escombraries".

Recomanat: