INHOUDSOPGAWE:
- Stap 1: materiaal
- Stap 2: Begin kodering
- Stap 3: Beperkingslêer
- Stap 4: Flip Flop -lêer
- Stap 5: Segmentlêer
- Stap 6: Klokverdelerlêer
- Stap 7: Servo -seinlêer
- Stap 8: Servo Top File
- Stap 9: Toplêer
- Stap 10: Toets in Vivado
- Stap 11: Bou van hardeware -inleiding
- Stap 12: Berei voor
- Stap 13: Soldeer
- Stap 14: Finale
Video: CPE 133 Asblik sorter: 14 stappe
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
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
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
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
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
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
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
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
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
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
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 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
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".