CPE 133 Asblik sorter: 14 stappe
CPE 133 Asblik sorter: 14 stappe

Video: CPE 133 Asblik sorter: 14 stappe

Video: CPE 133 Asblik sorter: 14 stappe
Video: CPE 133 Lab 1 Demo 2025, Januarie
Anonim
CPE 133 Asblik Sorter
CPE 133 Asblik Sorter

Vir ons CPE 133 -klas by Cal Poly is ons aangesê om 'n VHDL/Basys 3 -projek te skep wat die omgewing kan help, en dit is eenvoudig genoeg om dit te implementeer met ons nuwe kennis van digitale ontwerp. Die idee agter ons projek dat mense in die algemeen nie dink waarheen hulle hul asblik gooi nie. Ons het besluit om 'n masjien te skep wat mense sal dwing om na te dink oor waar hulle hul asblik gooi. Ons vullis sorteerder neem gebruikers se insette deur drie skakelaars, wat elk asblik, herwinning of kompos verteenwoordig. Sodra die gebruiker gekies het watter tipe afval (e) hy / sy wil weggooi, druk hulle op 'n knoppie. Met hierdie knoppie kan die ooreenstemmende houersdeksels oopmaak. Die masjien het ook die skerm op die Basys 3 gebruik om aan te dui of enige van die deksels tans oop is. As die knoppie losgemaak word, sluit die deksels weer sodat die masjien gereed is vir die volgende gebruiker.

Stap 1: materiaal

Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal

Die materiaal wat benodig word vir hierdie projek is:

Basys 3 bord

Rekenaar met Vivado geïnstalleer

3x servo*

3 voet koperdraad

Draadsnyer/-stropper

Soldeerbout en soldeer

*Omdat servo's duur is en ons studente is, het ons 'n weerstand van 68 ohm en LED vir elke servo vervang as 'n prototipe (kode werk op dieselfde manier)

Stap 2: Begin kodering

Begin kodering
Begin kodering
Begin kodering
Begin kodering
Begin kodering
Begin kodering

Daar moet baie kode vir hierdie projek geskryf word. Ons gebruik die VHDL -kode wat in Vivado geskryf is. Om mee te begin, wil ons 'n nuwe projek skep. Eerstens moet u die projek 'n naam gee en die tipe projek spesifiseer. Kies dieselfde instellings as op die foto. As u by die bronskerm kom, wil u ses bronne met die naam "top", "flip_flop", "segmente", "servo_top", "servo_sig" en "clk_div" byvoeg. Maak seker dat u VHDL kies vir die taal van elke lêer, nie Verilog nie. Op die beperkingsskerm moet u een lêer vir die penopdrag skep. Die naam van hierdie lêer is nie belangrik nie. U sal dan gevra word om die bord te kies wat u gaan gebruik. Maak seker dat u die regte een kies. Verwys na foto's vir die regte keuse. Die laaste stap sal u vra om die insette en uitsette van elke bronlêer te spesifiseer. Hierdie stap kan later gekodeer word, klik dan op volgende.

Stap 3: Beperkingslêer

Beperkingslêer
Beperkingslêer
Beperkingslêer
Beperkingslêer

In hierdie stap skryf ons die beperkingslêer. Dit vertel Vivado watter penne die seine van die stroombaan sal stuur/ontvang. Ons benodig die horlosie, drie skakelaars, die sewe segmentskerm (sewe katodes en vier anodes), 'n knoppie en die drie PMOD -penne wat die servo/LED sal gebruik. Verwys na foto's vir hoe die kode moet lyk.

Stap 4: Flip Flop -lêer

Flip Flop -lêer
Flip Flop -lêer

Die volgende lêer wat ons gaan skryf, is die flip_flip -bronlêer. Dit is 'n VHDL -implementering van 'n D -flipflop. Met ander woorde, dit sal slegs sy insette na die uitset op die stygende rand van die kloksignaal slaag en as die knoppie ingedruk word. Dit sal die klok, D en die knoppie as 'n invoer neem, en Q sal na die foto verwys. Verwys na die foto's vir kode. Die doel van hierdie lêer is om die asblikke slegs oop te maak as daar op die knoppie gedruk word, in plaas van direk oop te maak elke keer as die skakelaar omgedraai word en slegs toemaak as die skakelaar teruggedraai word.

Stap 5: Segmentlêer

Segmentlêer
Segmentlêer

Die volgende lêer wat geskryf moet word, is die segment -lêer. Dit sal die knoppie neem soos in die invoer- en uitsetwaardes vir die sewe katodes en vier anodes van die Basys 3 se sewe segmentskerm. Hierdie lêer veroorsaak dat die sewe segment vertoon 'n "C" toon as die asblikke toegemaak word en 'n "O" as die asblikke oop is. Vir kode sien aangehegte foto.

Stap 6: Klokverdelerlêer

Klokverdelerlêer
Klokverdelerlêer

Servos funksioneer deur 'n PWM -sein met 'n frekwensie van 64k Hz te neem, terwyl die ingeboude klok in die Basys 3 funksioneer by 50M Hz. Die klokverdelingslêer sal die standaardklok omskakel na 'n vriendelike frekwensie vir die servo. Die lêer neem die klok en 'n herstelsignaal as 'n invoer en gee 'n nuwe kloksignaal. Sien die aangehegte foto vir kode.

Stap 7: Servo -seinlêer

Servo sein lêer
Servo sein lêer

Die servosignaallêer neem 'n klokinvoer, 'n herstel -invoer en 'n gewenste posisie -invoer. Dit sal 'n PWM -sein lewer wat die servo na die gewenste posisie sal dryf. Hierdie lêer gebruik die kloksignaal wat in die laaste lêer geskep is om 'n PWM -sein vir die servo te skep met verskillende werksiklusse, afhangende van die gewenste posisie. Dit stel ons in staat om die servo's wat die deksels van die vullisdromme beheer, om te draai. Sien die aangehegte foto vir kode.

Stap 8: Servo Top File

Servo top lêer
Servo top lêer

Die doel van hierdie lêer is om die laaste twee lêers in 'n funksionele servostuurprogramma saam te stel. Dit sal 'n horlosie neem, 'n herstel en 'n posisie as 'n inset sal die servo PWM sein gee. Dit gebruik beide die klokverdeler en die servosignaallêer as komponente en bevat 'n interne kloksignaal om die gewysigde klok van die verdeler na die servosignaallêer deur te gee. Sien foto's by

Stap 9: Toplêer

Top lêer
Top lêer
Top lêer
Top lêer
Top lêer
Top lêer
Top lêer
Top lêer

Dit is die belangrikste lêer van die projek, aangesien dit alles wat ons saamgestel het, omhul. Dit sal die knoppie, die drie skakelaars en die klok as insette neem. Dit gee die sewe katodes, die vier anodes en die drie servo/LED -seine as uitsette. Dit sal die flip -flop, segmente en servo_top -lêers as komponente gebruik, en 'n interne skakelaar en interne servosignaal hê.

Stap 10: Toets in Vivado

Begin sintese, implementering en skryf bitsream in Vivado. As u foutboodskappe teëkom, vind die foutlokasie en vergelyk dit dan met die gegewe kode. Werk deur enige foute totdat al hierdie lopies suksesvol voltooi is.

Stap 11: Bou van hardeware -inleiding

In hierdie stap skep u die LED -hardeware wat ons in ons prototipe gebruik het. As u servo's gebruik, moet die projek gereed wees, solank die regte penne gebruik word. Volg die onderstaande stappe as u LED's gebruik.

Stap 12: Berei voor

Sny die draad in ses ewe stukke. Trek die punte van elke stuk draad genoeg af sodat soldeer kan voorkom. Skei LED's, weerstande en drade in drie groepe. Verhit soldeerbout.

Stap 13: Soldeer

Soldeer
Soldeer
Soldeer
Soldeer

Soldeer elkeen van die 68 ohm weerstande aan die negatiewe kant van hul ooreenstemmende LED. Soldeer 'n draad aan die positiewe kant van die LED en nog 'n draad aan die kant van die weerstand wat nie aan die led is gesoldeer nie. U moet drie van die LED -afbrekings hierbo op die foto hê.

Stap 14: Finale

Finale
Finale

Steek elke positiewe draad in die ooreenstemmende PMOD -pen en elke negatiewe in 'n gemaalde PMOD -pen. Voeg opsioneel kartondose toe om asblikke voor te stel en verberg u soldeergemors. Sodra die drade korrek ingeprop is en die kode behoorlik op die bord opgelaai is, moet die masjien funksioneer soos bedoel. Gaan terug na die vorige stappe as u iets verkeerd loop. Om pret te hê met u nuwe "asblik sorteerder".