Turinys:
- 1 žingsnis: medžiagos
- 2 žingsnis: kodavimo pradžia
- 3 veiksmas: apribojimų failas
- 4 žingsnis: apverskite failą
- 5 veiksmas: segmentų failas
- 6 veiksmas: laikrodžio daliklio failas
- 7 žingsnis: Servo signalo failas
- 8 žingsnis: „Servo Top File“
- 9 veiksmas: viršutinis failas
- 10 žingsnis: bandymas „Vivado“
- 11 veiksmas: sukurkite aparatūros įvadą
- 12 žingsnis: Paruošimas
- 13 žingsnis: litavimas
- 14 žingsnis: finalas
Video: CPE 133 šiukšlių rūšiuotojas: 14 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
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
Š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
Š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
Š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ą
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
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
„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 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“
Š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
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
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
Į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:
Šiukšlių surinkimo roboto prototipų kūrimas: 10 žingsnių
Šiukšlių surinkimo robotų prototipų kūrimas: Būdami universiteto studentai, gyvenantys gyvenamajame būste, pastebėjome, kad mūsų bendrabučiuose dažnai gyvena netvarkingi studentai, kurie pirmą kartą gyvena savarankiškai. Šie studentai paprastai yra per daug tingūs ar neatsakingi, norėdami pasiimti ar išvalyti savo
Prekių kortelių aparato kortelių rūšiuotojas (atnaujinimas 2019-01-10): 12 žingsnių (su paveikslėliais)
Prekių kortelių aparato kortelių rūšiuotojas (atnaujinimas 2019-01-10): Prekių kortelių aparato kortelių rūšiuotojas Pakeitimų žurnalą galite rasti paskutiniame žingsnyje. Fonas Aš jau paaiškinau savo projekto motyvą straipsnyje Kortelių tiektuvas. Bet trumpai tariant, aš ir mano vaikai sukaupėme daug prekybos kortelės
„Raspberry Pi“varomas šiukšlių būgno aparatas: 15 žingsnių (su nuotraukomis)
„Raspberry Pi“varomas šiukšlių būgnų aparatas: ši instrukcija parodys, kaip pasigaminti „Raspberry Pi“varomą robotinę būgno mašiną. Tai tikrai įdomus, kūrybingas, interaktyvus projektas. Aš jums parodysiu, kaip atlikti vidinį darbą, tačiau tikrieji būgnai priklausys nuo jūsų ir suteiks jums
„Arduino Skittle“rūšiuotojas: 11 žingsnių (su nuotraukomis)
„Arduino Skittle“rūšiuotojas: išrankūs saldainių mėgėjai visur dažnai eikvoja savo brangų laiką rūšiuodami saldainius. Ar tai skamba pažįstamai? Ar kada nors norėjote sukurti mašiną, kuri galėtų jums rūšiuoti „Skittles“? Ši pamoka jums tiksliai parodys
LED rūšiuotojas/laikiklis: 10 žingsnių
Šviesos diodų rūšiuotojas/laikiklis: ši instrukcija parodys, kaip padaryti LED laikiklį, suskirstytą į lizdus pagal spalvą, dydį ir ar jis yra išsklaidytas, ar ne. Tai labai naudinga šviesos diodams, kurie yra aiškūs, tačiau šviečia kita spalva, pavyzdžiui, oranžinė. Galite pasukti jungiklį