Sisällysluettelo:

CPE 133 -jätteen lajittelija: 14 vaihetta
CPE 133 -jätteen lajittelija: 14 vaihetta

Video: CPE 133 -jätteen lajittelija: 14 vaihetta

Video: CPE 133 -jätteen lajittelija: 14 vaihetta
Video: CPE 133 Lab #5 2024, Marraskuu
Anonim
CPE 133 Roskalajittelija
CPE 133 Roskalajittelija

Cal Poly: n CPE 133 -luokalle meitä kehotettiin luomaan VHDL/Basys 3 -hanke, joka auttaisi ympäristöä ja olisi tarpeeksi yksinkertainen, jotta voisimme toteuttaa sen uuden digitaalisen suunnittelun tietämyksemme avulla. Projektimme ajatus, että ihmiset eivät yleensä ajattele, minne heittävät roskansa. Päätimme luoda koneen, joka pakottaisi ihmiset miettimään, mihin he sijoittavat roskansa. Roskalajittelijamme ottaa käyttäjän syötteen kolmen kytkimen kautta, joista jokainen edustaa joko roskakoria, kierrätystä tai kompostia. Kun käyttäjä on valinnut jätetyypin, jonka he haluavat hävittää, hän painaa painiketta. Tämä painike avaa vastaavat säiliön kannet. Kone käytti myös Basys 3: n näyttöä ilmaisemaan, onko jokin kansista auki. Kun painike vapautetaan, kannet sulkeutuvat uudelleen, jotta kone on valmis seuraavaa käyttäjää varten.

Vaihe 1: Materiaalit

Materiaalit
Materiaalit
Materiaalit
Materiaalit
Materiaalit
Materiaalit

Tässä projektissa tarvittavat materiaalit ovat:

Basys 3 -levy

Tietokone, johon on asennettu Vivado

3x servo*

3 jalkaa kuparilankaa

Langanleikkuri/stripperi

Juotin ja juote

*koska servot ovat kalliita ja olemme opiskelijoita, korvasimme 68 ohmin vastuksen ja LEDin jokaiselle servolle prototyypiksi (koodi toimii samalla tavalla)

Vaihe 2: Koodauksen aloittaminen

Koodauksen alku
Koodauksen alku
Koodauksen alku
Koodauksen alku
Koodauksen alku
Koodauksen alku

Tätä projektia varten on kirjoitettava paljon koodia. Käytämme Vivadossa kirjoitettua VHDL -koodia. Aluksi haluamme luoda uuden projektin. Nimeä ensin projekti ja määritä projektityyppi. Muista valita samat asetukset kuin kuvassa. Kun olet päässyt lähdenäyttöön, haluat lisätä kuusi lähdettä nimeltä "top", "flip_flop", "segmentit", "servo_top", "servo_sig" ja "clk_div". Muista valita VHDL kunkin tiedoston kieleksi, ei Verilog. Rajoitusnäytössä sinun on luotava yksi tiedosto pin -määritystä varten. Tämän tiedoston nimi ei ole tärkeä. Sinua pyydetään valitsemaan käyttämäsi levy. Varmista, että valitset oikean. Viitevalokuvat oikean valinnan kannalta. Viimeisessä vaiheessa sinua pyydetään määrittämään kunkin lähdetiedoston tulot ja lähdöt. Tämä vaihe voidaan koodata myöhemmin, joten napsauta seuraava.

Vaihe 3: Rajoitustiedosto

Rajoitustiedosto
Rajoitustiedosto
Rajoitustiedosto
Rajoitustiedosto

Tässä vaiheessa kirjoitamme rajoitustiedoston. Tämä kertoo Vivadolle, mitkä nastat lähettävät/vastaanottavat mitkä signaalit piiristä. Tarvitsemme kellon, kolme kytkintä, seitsemän segmentin näytön (seitsemän katodia ja neljä anodia), painikkeen ja kolme lähtö -PMOD -nastaa, joita servo/LED käyttää. Viitekuvat, miltä koodin pitäisi näyttää.

Vaihe 4: Flip Flop -tiedosto

Flip Flop -tiedosto
Flip Flop -tiedosto

Seuraava kirjoitettava tiedosto on lähdetiedosto flip_flip. Tämä on D -flip -flopin VHDL -toteutus. Toisin sanoen se siirtää tulonsa vain kellosignaalin nousevan reunan ulostuloon ja kun painiketta painetaan. Se ottaa kellon, D ja painikkeen tuloksi ja tulostaa Q. viittaa valokuviin. Tämän tiedoston tarkoituksena on antaa säiliöiden avautua vain painettaessa, eikä avata suoraan aina, kun kytkin käännetään, ja sulkeutua vain, kun kytkin käännetään taaksepäin.

Vaihe 5: segmenttitiedosto

Segmentit -tiedosto
Segmentit -tiedosto

Seuraavaksi kirjoitettava tiedosto on segmenttitiedosto. Tämä ottaa painikkeen käyttöön kuten Basys 3: n seitsemän segmentin näytön seitsemän katodin ja neljän anodin tulo- ja lähtöarvot. Tämä tiedosto saa seitsemän segmentin näytön näyttämään "C", kun säiliöt on suljettu, ja "O", kun lokerot ovat auki. Katso koodi oheisesta kuvasta.

Vaihe 6: Kellonjakotiedosto

Kellonjakajatiedosto
Kellonjakajatiedosto

Servot toimivat ottamalla PWM -signaali taajuudella 64 kHz, kun taas Basys 3: een sisäänrakennettu kello toimii 50 M Hz: n taajuudella. Kellonjakotiedosto muuntaa oletuskellon servolle sopivaksi taajuudeksi. Tiedosto ottaa kellon ja nollasignaalin tuloksi ja lähettää uuden kellosignaalin. Katso koodi liitteenä olevasta kuvasta.

Vaihe 7: Servosignaalitiedosto

Servosignaalitiedosto
Servosignaalitiedosto

Servosignaalitiedosto ottaa kellotulon, nollaustulon ja halutun sijaintitulon. Se lähettää PWM -signaalin, joka ajaa servon haluttuun asentoon. Tämä tiedosto käyttää viimeisessä tiedostossa luotua kellosignaalia luodakseen PWM -signaalin servolle, jolla on eri käyttöjaksot halutun sijainnin mukaan. Tämän avulla voimme kääntää servoja, jotka ohjaavat roska -astioiden kantta. Katso koodi oheisesta kuvasta.

Vaihe 8: Servo Top File

Servo -yläviila
Servo -yläviila

Tämän tiedoston tarkoitus on koota kaksi viimeistä tiedostoa toimivaksi servo -ohjaimeksi. Se vie kellon, nollaus ja aseman tulona an lähettää servo PWM -signaalin. Se käyttää sekä kellonjakajaa että servosignaalitiedostoa komponenteina ja sisältää sisäisen kellosignaalin siirtää muunnettu kello kellonjakajasta servosignaalitiedostoon. Katso kuvat osoitteesta

Vaihe 9: Ylin tiedosto

Ylin tiedosto
Ylin tiedosto
Ylin tiedosto
Ylin tiedosto
Ylin tiedosto
Ylin tiedosto
Ylin tiedosto
Ylin tiedosto

Tämä on projektin tärkein tiedosto, koska se kietoo kaiken luomamme yhteen. Se ottaa painikkeen, kolme kytkintä ja kellon tuloiksi. Se antaa seitsemän katodia, neljä anodia ja kolme servo-/LED -signaalia ulostuloina. Se käyttää flip flopia, segmenttejä ja servo_top -tiedostoja osina, ja siinä on sisäinen kytkin ja sisäinen servosignaali.

Vaihe 10: Testaus Vivadossa

Suorita synteesi, toteutus ja kirjoita bittivirta Vivadossa. Jos kohtaat virheilmoituksia, etsi virhepaikka ja vertaa sitä annettuun koodiin. Selvitä virheet, kunnes kaikki nämä ajot on suoritettu onnistuneesti.

Vaihe 11: Laitteiston esittely

Tässä vaiheessa luot prototyypissä käyttämämme LED -laitteiston. Jos käytät servoja, projektin pitäisi olla valmis, kunhan käytetään oikeita tappeja. Jos käytät LED -valoja, noudata alla olevia ohjeita.

Vaihe 12: Valmistelu

Leikkaa lanka kuuteen tasaiseksi paloksi. Kuori jokaisen lankakappaleen päät tarpeeksi, jotta juotos voi tapahtua. Erota LEDit, vastukset ja johdot kolmeen ryhmään. Kuumenna juotin.

Vaihe 13: Juotos

Juotos
Juotos
Juotos
Juotos

Juotos jokainen 68 ohmin vastuksesta vastaavan LED -valon negatiiviselle puolelle. Juotosjohdin LED -valon positiiviselle puolelle ja toinen johto vastuksen puolelle, jota ei ole juotettu lediin. Sinulla pitäisi olla kolme yllä kuvatusta LED -laitteesta.

Vaihe 14: Finaali

Finaali
Finaali

Työnnä jokainen positiivinen johto vastaavaan PMOD -nastaan ja jokainen negatiivinen maadoitettuun PMOD -nastaan. Voit halutessasi lisätä pahvilaatikoita, jotka edustavat roskakoria ja piilottavat juotosjärjestyksesi. Kun johdot on kytketty oikein ja koodi on ladattu kunnolla levylle ilman virheitä, koneen pitäisi toimia aiotulla tavalla. Jos jokin menee pieleen, palaa edellisiin vianetsintävaiheisiin. Pidä hauskaa uuden "roskalajittelijan" kanssa.

Suositeltava: