Turinys:

CPE 133 šiukšlių rūšiuotojas: 14 žingsnių
CPE 133 šiukšlių rūšiuotojas: 14 žingsnių

Video: CPE 133 šiukšlių rūšiuotojas: 14 žingsnių

Video: CPE 133 šiukšlių rūšiuotojas: 14 žingsnių
Video: CPE 133 Lab 2 2024, Lapkritis
Anonim
CPE 133 šiukšlių rūšiuotojas
CPE 133 šiukšlių rūšiuotojas

Mūsų CPE 133 klasei „Cal Poly“mums buvo liepta sukurti VHDL/Basys 3 projektą, kuris padėtų aplinkai ir būtų pakankamai paprastas, kad galėtume jį įgyvendinti turėdami naujas žinias apie skaitmeninį dizainą. Mūsų projekto idėja, kad apskritai žmonės negalvoja apie tai, kur išmeta šiukšles. Mes nusprendėme sukurti mašiną, kuri priverstų žmones susimąstyti, kur sudėti šiukšles. Mūsų šiukšlių rūšiuotojas naudojasi trimis jungikliais, kurie reiškia šiukšles, perdirbimą arba kompostą. Vartotojas, pasirinkęs, kokio tipo atliekas norėtų išmesti, paspaudžia mygtuką. Šis mygtukas atvers atitinkamus konteinerių dangčius. Mašina taip pat naudojosi „Basys 3“ekranu, norėdama parodyti, ar kuris nors dangtis šiuo metu yra atidarytas. Atleidus mygtuką, dangteliai vėl užsidarys, kad aparatas būtų paruoštas kitam vartotojui.

1 žingsnis: medžiagos

Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos

Šiam projektui reikalingos medžiagos:

„Basys 3“lenta

Kompiuteris su įdiegtu „Vivado“

3x servo*

3 pėdų varinė viela

Vielos pjoviklis/nuėmiklis

Lituoklis ir lituoklis

*Kadangi servo sistemos yra brangios ir mes esame kolegijos studentai, mes pakeitėme 68 omų rezistorių ir šviesos diodą kiekvienam servo kaip prototipą (kodas veikia taip pat)

2 žingsnis: kodavimo pradžia

Kodavimo pradžia
Kodavimo pradžia
Kodavimo pradžia
Kodavimo pradžia
Kodavimo pradžia
Kodavimo pradžia

Šiam projektui reikia parašyti daug kodo. Mes naudosime VHDL kodą, parašytą „Vivado“. Norėdami pradėti, norime sukurti naują projektą. Pirmiausia pavadinkite projektą ir nurodykite projekto tipą. Būtinai pasirinkite tuos pačius nustatymus, kaip parodyta paveikslėlyje. Kai pateksite į šaltinių ekraną, norėsite pridėti šešis šaltinius, pavadintus „viršuje“, „flip_flop“, „segmentuose“, „servo_top“, „servo_sig“ir „clk_div“. Būtinai pasirinkite VHDL kiekvieno failo kalbai, o ne „Verilog“. Apribojimų ekrane turėtumėte sukurti vieną failą kaiščiui priskirti. Šio failo pavadinimas nėra svarbus. Tada būsite paraginti pasirinkti lentą, kurią naudosite. Įsitikinkite, kad pasirinkote teisingą. Norėdami teisingai pasirinkti, naudokite informacines nuotraukas. Paskutiniame žingsnyje bus paprašyta nurodyti kiekvieno šaltinio failo įvestį ir išvestį. Šis veiksmas gali būti koduotas vėliau, todėl spustelėkite kitą.

3 veiksmas: apribojimų failas

Apribojimų failas
Apribojimų failas
Apribojimų failas
Apribojimų failas

Šiame etape parašysime apribojimų failą. Tai nurodo Vivado, kurie kaiščiai siunčia/gauna signalus iš grandinės. Mums reikės laikrodžio, trijų jungiklių, septynių segmentų ekrano (septyni katodai ir keturi anodai), mygtuko ir trijų išvesties PMOD kaiščių, kuriuos naudos servo/šviesos diodas. Nuotraukos, kaip turėtų atrodyti kodas.

4 žingsnis: apverskite failą

„Flip Flop“failas
„Flip Flop“failas

Kitas failas, kurį rašysime, yra „flip_flip“šaltinio failas. Tai bus VHDL D flip flop įgyvendinimas. Kitaip tariant, jis perduos savo įvestį tik į išėjimą, esantį kylančiame laikrodžio signalo krašte, ir paspaudus mygtuką. Kaip laikrodis, D ir mygtukas bus naudojami kaip įvestis ir išves Q. nuoroda į kodą pateikiama nuotraukose. Šio failo tikslas yra leisti dėžėms atsidaryti tik paspaudus mygtuką, o ne tiesiogiai atsidaryti kiekvieną kartą, kai pasukamas jungiklis, ir uždaryti tik tada, kai jungiklis pasukamas atgal.

5 veiksmas: segmentų failas

Segmento failas
Segmento failas

Kitas failas, kurį reikia parašyti, yra segmentų failas. Šis mygtukas paspaudžiamas kaip įvesties ir išvesties reikšmės septyniuose katoduose ir keturiuose „Basys 3“septynių segmentų ekrano anoduose. Dėl šio failo septynių segmentų ekrane rodomas „C“, kai dėžės uždarytos, o „O“, kai dėžės atidarytos. Kodą rasite pridedamoje nuotraukoje.

6 veiksmas: laikrodžio daliklio failas

Laikrodžio daliklio failas
Laikrodžio daliklio failas

„Servos“veikia paimdami 64 kHz dažnio PWM signalą, o „Basys 3“įmontuotas laikrodis veikia esant 50 M Hz dažniui. Laikrodžio daliklio failas numatytąjį laikrodį pavers į draugišką servo dažnį. Failas įves laikrodį ir atstatymo signalą ir išves naują laikrodžio signalą. Norėdami sužinoti kodą, žiūrėkite pridėtą nuotrauką.

7 žingsnis: Servo signalo failas

Servo signalo failas
Servo signalo failas

Servo signalo failas ims laikrodžio įvestį, iš naujo nustatytą įvestį ir norimos padėties įvestį. Jis išves PWM signalą, kuris nuves servo į norimą padėtį. Šis failas naudoja paskutiniame faile sukurtą laikrodžio signalą, kad sukurtų servo PWM signalą su skirtingais darbo ciklais, priklausomai nuo pageidaujamos padėties. Tai leidžia mums pasukti servo, valdančio šiukšlių dėžių dangčius. Norėdami sužinoti kodą, žiūrėkite pridėtą nuotrauką.

8 žingsnis: „Servo Top File“

Servo viršutinis failas
Servo viršutinis failas

Šio failo tikslas yra surinkti paskutinius du failus į funkcinę servo tvarkyklę. Tai užtruks laikrodį, atstatymą ir įvesties padėtį, išves servo PWM signalą. Jame kaip komponentai bus naudojamas laikrodžio daliklis ir servo signalo failas, o vidinis laikrodžio signalas perduos pakeistą laikrodį iš laikrodžio daliklio į servo signalo failą. Žiūrėkite nuotraukas adresu

9 veiksmas: viršutinis failas

Viršutinis failas
Viršutinis failas
Viršutinis failas
Viršutinis failas
Viršutinis failas
Viršutinis failas
Viršutinis failas
Viršutinis failas

Tai yra svarbiausias projekto failas, nes jis apima viską, ką sukūrėme kartu. Kaip įvestis reikės mygtuko, trijų jungiklių ir laikrodžio. Jis išves septynis katodus, keturis anodus ir tris servo/LED signalus. Jis kaip komponentus naudos apversimą, segmentus ir servo_top failus ir turės vidinį jungiklį bei vidinį servo signalą.

10 žingsnis: bandymas „Vivado“

Vivadoje paleiskite sintezę, diegimą ir rašykite bitų srautą. Jei susiduriate su klaidos pranešimais, suraskite klaidos vietą ir palyginkite su nurodytu kodu. Išspręskite visas klaidas, kol visi šie važiavimai bus sėkmingai baigti.

11 veiksmas: sukurkite aparatūros įvadą

Šiame žingsnyje sukursite LED aparatūrą, kurią naudojome savo prototipui. Jei naudojate servo, projektas turėtų būti paruoštas veikti tol, kol bus naudojami tinkami kaiščiai. Jei naudojate šviesos diodus, atlikite toliau nurodytus veiksmus.

12 žingsnis: Paruošimas

Supjaustykite vielą į šešias lygias dalis. Kiekvieno vielos gabalo galus nuimkite pakankamai, kad būtų galima lituoti. Atskirkite šviesos diodus, rezistorius ir laidus į tris grupes. Įkaitinkite lituoklį.

13 žingsnis: litavimas

Litavimas
Litavimas
Litavimas
Litavimas

Lituokite kiekvieną iš 68 omų rezistorių į neigiamą atitinkamo šviesos diodo pusę. Lituokite laidą prie teigiamos šviesos diodo pusės ir kitą laidą ant rezistoriaus pusės, kuri nėra lituojama prie šviesos diodo. Turėtumėte turėti tris iš aukščiau pavaizduotų LED įtaisų.

14 žingsnis: finalas

Finalas
Finalas

Įkiškite kiekvieną teigiamą laidą į atitinkamą PMOD kaištį, o kiekvieną neigiamą - į įžemintą PMOD kaištį. Pasirinktinai pridėkite kartonines dėžes, kurios atspindėtų šiukšliadėžes ir paslėptų litavimo netvarką. Kai laidai bus tinkamai prijungti ir kodas bus tinkamai įkeltas į plokštę be klaidų, mašina turėtų veikti taip, kaip numatyta. Jei kas nors negerai, grįžkite prie ankstesnių trikčių šalinimo veiksmų. Linksminkitės su savo naujuoju „šiukšlių rūšiuokliu“.

Rekomenduojamas: