Sisällysluettelo:
- Vaihe 1: Materiaalit
- Vaihe 2: Koodauksen aloittaminen
- Vaihe 3: Rajoitustiedosto
- Vaihe 4: Flip Flop -tiedosto
- Vaihe 5: segmenttitiedosto
- Vaihe 6: Kellonjakotiedosto
- Vaihe 7: Servosignaalitiedosto
- Vaihe 8: Servo Top File
- Vaihe 9: Ylin tiedosto
- Vaihe 10: Testaus Vivadossa
- Vaihe 11: Laitteiston esittely
- Vaihe 12: Valmistelu
- Vaihe 13: Juotos
- Vaihe 14: Finaali
Video: CPE 133 -jätteen lajittelija: 14 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
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
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
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
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
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
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
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 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
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
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 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
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:
CPE 133 -projektin lopullinen desimaali binaariksi: 5 vaihetta
CPE 133 Viimeinen projektin desimaali binaariksi: Binaariluvut ovat yksi ensimmäisistä asioista, jotka tulevat mieleen, kun ajattelemme digitaalista logiikkaa. Binaariluvut voivat kuitenkin olla vaikea konsepti niille aloittelijoille.Tämä projekti auttaa niitä, jotka ovat sekä uusia että kokeneita binäärilukujen kanssa
Värin lajittelija: 6 vaihetta
Värin lajittelija: Tämän värinlajittelijan tavoitteena on siirtää m & ms eri paaluihin niiden värin perusteella
Elektroninen kolikoiden lajittelija: 7 vaihetta (kuvilla)
Elektroninen kolikoiden lajittelija: Kauan, kauan sitten, kun vielä oli mahdollista mennä kouluun, keksimme mielenkiintoisen idean tehdä laite, joka toimii melko yksinkertaisella tavalla - heittäessämme oikean summan rahaa, antaa tietyn tuotteen. En voi paljastaa
PhantomX Pincher -robotti - Apple -lajittelija: 6 vaihetta
PhantomX Pincher Robot - Apple Sorter: Ruoan turvallisuusvaatimukset kasvavat. Sekä kuluttajat että viranomaiset vaativat yhä enemmän, että syömiemme elintarvikkeiden on oltava korkealaatuisia ja turvallisia. Jos elintarvikkeiden valmistuksen aikana ilmenee ongelmia, virheen lähde on
CPE 133 Metronomi: 3 vaihetta
CPE 133 Metronomi: Viimeisessä Cal Poly -projektissamme loimme metronomiksi kutsutun tempoa pitävän laitteen. Valitsimme tämän projektin musiikin ja digitaalisen suunnittelun vuoksi. Käytämme CPE 133: n aiempia laboratorioita koodimme ja online -opetusohjelmien suunnittelussa auttaaksemme