Cuprins:

CPE 133 Sorter gunoi: 14 pași
CPE 133 Sorter gunoi: 14 pași
Anonim
CPE 133 Sorter gunoi
CPE 133 Sorter gunoi

Pentru clasa noastră CPE 133 de la Cal Poly ni s-a spus să creăm un proiect VHDL / Basys 3 care să ajute mediul și să fie suficient de simplu încât să-l putem implementa cu noile noastre cunoștințe de design digital. Ideea din spatele proiectului nostru că, în general, oamenii nu se gândesc unde aruncă gunoiul. Am decis să creăm o mașină care să-i oblige pe oameni să pună gândul în locul în care își pun gunoiul. Sortatorul nostru de gunoi preia informațiile utilizatorului prin trei comutatoare, fiecare reprezentând fie gunoi, reciclare sau compost. După ce utilizatorul a selectat tipul de deșeuri pe care ar dori să le elimine, apasă un buton. Acest buton va face ca capacele corespunzătoare ale containerului să se deschidă. Aparatul a folosit, de asemenea, afișajul de pe Bazele 3 pentru a indica dacă oricare dintre capace sunt deschise în prezent. Când butonul este eliberat, capacele se vor închide din nou, astfel încât aparatul să fie gata pentru următorul utilizator.

Pasul 1: Materiale

Materiale
Materiale
Materiale
Materiale
Materiale
Materiale

Materialele necesare pentru acest proiect sunt:

Tablou Basys 3

Computer cu Vivado instalat

3x servo *

Sârmă de cupru de 3 picioare

Cutter / Stripper de sârmă

Fier de lipit și lipit

* deoarece servo-urile sunt scumpe și suntem studenți, am înlocuit un rezistor de 68 ohmi și un LED pentru fiecare servo ca prototip (codul funcționează în același mod)

Pasul 2: Începeți codarea

Începutul codării
Începutul codării
Începutul codării
Începutul codării
Începutul codării
Începutul codării

Există multe coduri de scris pentru acest proiect. Vom folosi codul VHDL scris în Vivado. Pentru a începe, vom dori să creăm un nou proiect. Mai întâi veți denumi proiectul și veți specifica tipul de proiect. Asigurați-vă că selectați aceleași setări ca în imagine. Când ați ajuns la ecranul surselor, veți dori să adăugați șase surse denumite „top”, „flip_flop”, „segmente”, „servo_top”, „servo_sig” și „clk_div”. Asigurați-vă că selectați VHDL pentru limba fiecărui fișier, nu Verilog. Pe ecranul de constrângeri ar trebui să creați un fișier pentru atribuirea pinului. Numele acestui fișier nu este important. Apoi vi se va solicita să selectați placa pe care o veți folosi. Asigurați-vă că ați selectat-o pe cea corectă. Fotografii de referință pentru o selecție corectă. Ultimul pas vă va cere să specificați intrările și ieșirile fiecărui fișier sursă. Acest pas poate fi codat mai târziu, așa că faceți clic pe Următorul.

Pasul 3: Fișierul de constrângeri

Fișier de constrângeri
Fișier de constrângeri
Fișier de constrângeri
Fișier de constrângeri

În acest pas vom scrie fișierul de constrângeri. Acest lucru îi spune lui Vivado ce pini vor trimite / primi ce semnale din circuit. Vom avea nevoie de ceas, trei comutatoare, afișajul cu șapte segmente (șapte catode și patru anodi), un buton și cei trei pini PMOD de ieșire pe care îi va folosi servo / LED. Fotografii de referință pentru cum ar trebui să arate codul.

Pasul 4: Flip Flop File

Flip Flop File
Flip Flop File

Următorul fișier pe care îl vom scrie este fișierul sursă flip_flip. Aceasta va fi o implementare VHDL a unui flip flop D. Cu alte cuvinte, va transmite doar intrarea la ieșire pe marginea ascendentă a semnalului de ceas și atunci când butonul este apăsat. Va lua ceasul, D și butonul ca intrare și va afișa Q. face referință la fotografii pentru cod. Scopul acestui fișier este de a permite pubelelor să se deschidă numai atunci când butonul este apăsat, mai degrabă decât să se deschidă direct de fiecare dată când comutatorul este răsturnat și să se închidă numai când comutatorul este răsturnat.

Pasul 5: Fișier de segmente

Fișier de segmente
Fișier de segmente

Următorul fișier care trebuie scris este fișierul segmente. Aceasta va lua butonul ca în valorile de intrare și ieșire pentru cei șapte catode și patru anodi ai afișajului de șapte segmente al lui Basys 3. Acest fișier face ca afișajul cu șapte segmente să afișeze un „C” atunci când recipientele sunt închise și un „O” când recipientele sunt deschise. Pentru cod vezi fotografia atașată.

Pasul 6: Fișier divizor ceas

Fișier divizor ceas
Fișier divizor ceas

Servo-urile funcționează prin preluarea unui semnal PWM cu o frecvență de 64k Hz în timp ce ceasul încorporat în funcția Basys 3 funcționează la 50M Hz. Fișierul divizor de ceas va converti ceasul implicit la o frecvență prietenoasă pentru servo. Fișierul va lua ceasul și un semnal de resetare ca intrare și va emite un nou semnal de ceas. Vezi fotografia atașată pentru cod.

Pasul 7: Fișier de semnal servo

Fișier de semnal servo
Fișier de semnal servo

Fișierul de semnal servo va prelua o intrare de ceas, o intrare de resetare și o intrare de poziție dorită. Acesta va emite un semnal PWM care va conduce servo în poziția dorită. Acest fișier folosește semnalul de ceas creat în ultimul fișier pentru a crea un semnal PWM pentru servo cu diferite cicluri de funcționare în funcție de poziția dorită. Acest lucru ne permite să întoarcem servomotoarele care controlează capacele coșurilor de gunoi. Vezi fotografia atașată pentru cod.

Pasul 8: Servo Top File

Servo Top File
Servo Top File

Scopul acestui fișier este de a compila ultimele două fișiere într-un servo-driver funcțional. Va dura un ceas, o resetare și o poziție ca intrare și va emite semnalul servo PWM. Acesta va utiliza atât divizorul de ceas, cât și fișierul de semnal servo ca componente și va include un semnal de ceas intern pentru a transmite ceasul modificat de la divizorul de ceas în fișierul de semnal servo. Vedeți fotografiile la

Pasul 9: Fișierul de sus

Top File
Top File
Top File
Top File
Top File
Top File
Top File
Top File

Acesta este cel mai important fișier al proiectului, deoarece înfășoară tot ce am creat împreună. Va lua butonul, cele trei comutatoare și ceasul ca intrări. Acesta va da cele șapte catode, cei patru anodi și cele trei semnale servo / LED ca ieșiri. Va folosi flip flop-ul, segmentele și fișierele servo_top ca componente și va avea un comutator intern și un semnal servo intern.

Pasul 10: Testarea în Vivado

Rulați Sinteza, implementarea și scrierea bitsream în Vivado. Dacă întâmpinați mesaje de eroare, găsiți locația erorii și apoi comparați cu codul dat. Treceți la erori până când toate aceste rulări se termină cu succes.

Pasul 11: Construirea introducerii hardware

În acest pas, veți crea hardware-ul LED pe care l-am folosit în prototipul nostru. Dacă utilizați servere, proiectul ar trebui să fie gata să funcționeze atâta timp cât sunt utilizați pinii corecți. Dacă utilizați LED-uri, urmați pașii de mai jos.

Pasul 12: Pregătirea

Tăiați firul în șase bucăți uniforme. Îndepărtați capetele fiecărei bucăți de sârmă suficient pentru a putea avea loc lipirea. Separați LED-urile, rezistențele și firele în trei grupuri. Încălziți fierul de lipit.

Pasul 13: lipire

Lipire
Lipire
Lipire
Lipire

Lipiți fiecare dintre rezistențele de 68 ohmi pe partea negativă a LED-ului corespunzător. Lipiți un fir pe partea pozitivă a LED-ului și un alt fir pe partea rezistorului care nu este lipit pe led. Ar trebui să aveți trei dintre dispozitivele LED prezentate mai sus.

Pasul 14: Finala

Final
Final

Introduceți fiecare fir pozitiv în pinul PMOD corespunzător și fiecare negativ într-un pin PMOD la sol. Opțional, adăugați coșuri de carton pentru a reprezenta coșurile de gunoi și a ascunde mizeria de lipit. Odată ce firele sunt conectate corect și codul este încărcat corect pe placa fără erori, aparatul ar trebui să funcționeze conform intenției. Dacă ceva nu merge bine, reveniți la pașii anteriori pentru depanare. Distrează-te cu noul tău „sorter de gunoi”.

Recomandat: