Cuprins:
- Pasul 1: Materiale
- Pasul 2: Începeți codarea
- Pasul 3: Fișierul de constrângeri
- Pasul 4: Flip Flop File
- Pasul 5: Fișier de segmente
- Pasul 6: Fișier divizor ceas
- Pasul 7: Fișier de semnal servo
- Pasul 8: Servo Top File
- Pasul 9: Fișierul de sus
- Pasul 10: Testarea în Vivado
- Pasul 11: Construirea introducerii hardware
- Pasul 12: Pregătirea
- Pasul 13: lipire
- Pasul 14: Finala
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
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
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
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
Î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
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
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
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ș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
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
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
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
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:
Creați un clasificator de gunoi Pi cu ML !: 8 pași (cu imagini)
Creați un clasificator de gunoi Pi cu ML !: Proiectul clasificator de gunoi, cunoscut cu afecțiune ca „Unde merge?!”, Este conceput pentru a face aruncarea lucrurilor mai rapidă și mai fiabilă. Acest proiect folosește un model Machine Learning (ML) instruit în Lobe, un prietenos pentru începători (fără cod!)
Coș de gunoi inteligent folosind Arduino, senzor cu ultrasunete și servomotor: 3 pași
Coș de gunoi inteligent folosind Arduino, senzor cu ultrasunete și servomotor: În acest proiect, vă voi arăta cum să creați un coș de gunoi inteligent folosind Arduino, unde capacul coșului de gunoi se va deschide automat atunci când vă apropiați cu coșul de gunoi. Celelalte componente importante utilizate pentru fabricarea acestei coșuri de gunoi inteligente sunt un ultrasunete HC-04
CPE 133 Proiect final Decimal la Binar: 5 pași
CPE 133 Proiect final Zecimal la Binar: Numerele binare sunt unul dintre primele lucruri care îmi vin în minte când ne gândim la logica digitală. Cu toate acestea, numerele binare pot fi un concept dificil pentru cei noi la acest proiect. Acest proiect îi va ajuta pe cei care sunt atât noi, cât și cu experiență în numerele binare
CPE 133 metronom: 3 pași
CPE 133 Metronome: Pentru proiectul nostru final de la Cal Poly am creat un dispozitiv de menținere a tempo-ului numit metronom, am ales acest proiect din cauza interesului muzical și a designului digital. Am folosit laboratoare anterioare în CPE 133 pentru a ne ajuta să proiectăm codul nostru și tutoriale online pentru a ajuta în colaborare
COȘURI DE gunoi - Eliminați coșul de gunoi nereciclabil: 8 pași
COȘURI - eliminați coșul de gunoi nereciclabil: pentru a crea o piatră de gunoi, un sac este cusut mai întâi din plasă. Este umplut cu coș de gunoi și tencuit cu ciment. Cojile rezultate sunt unice ca formă și arată foarte natural. Pietrele de gunoi sunt un aspect estetic plăcut și constructiv