
Satura rādītājs:
- 1. solis: materiāli
- 2. darbība: kodēšanas sākums
- 3. darbība: ierobežojumu fails
- 4. solis: Flip Flop fails
- 5. darbība. Segmentu fails
- 6. darbība: pulksteņa dalītāja fails
- 7. solis: Servo signāla fails
- 8. solis: Servo augšējais fails
- 9. darbība: augšējais fails
- 10. darbība: testēšana Vivado
- 11. darbība. Aparatūras ievads
- 12. solis: Sagatavošana
- 13. solis: lodēšana
- 14. darbība: fināls
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

Mūsu CPE 133 klasei Cal Poly mums lika izveidot VHDL/Basys 3 projektu, kas palīdzētu videi un būtu pietiekami vienkāršs, lai mēs varētu to īstenot ar mūsu jaunajām zināšanām par digitālo dizainu. Mūsu projekta ideja, ka kopumā cilvēki nedomā par to, kur izmet atkritumus. Mēs nolēmām izveidot mašīnu, kas liktu cilvēkiem domāt par to, kur viņi ievieto atkritumus. Mūsu atkritumu šķirotājs uztver lietotāju, izmantojot trīs slēdžus, no kuriem katrs ir vai nu atkritumi, pārstrāde vai komposts. Kad lietotājs ir izvēlējies sava veida atkritumus, kurus vēlas izmest, nospiediet pogu. Šī poga atvērs atbilstošos konteinera vākus. Iekārta arī izmantoja Basys 3 displeju, lai norādītu, vai kāds no vākiem pašlaik ir atvērts. Atlaižot pogu, vāki atkal aizvērsies, lai iekārta būtu gatava nākamajam lietotājam.
1. solis: materiāli



Šim projektam nepieciešamie materiāli ir:
Basys 3 dēlis
Dators ar instalētu Vivado
3x servo*
3 pēdu vara stieple
Stiepļu griezējs/noņēmējs
Lodāmurs un lodēt
*Tā kā servos ir dārgi un mēs esam koledžas studenti, mēs katram servo kā prototipu aizstājām 68 omu rezistoru un LED (kods darbojas vienādi)
2. darbība: kodēšanas sākums



Šim projektam ir jāraksta daudz kodu. Mēs izmantosim VHDL kodu, kas rakstīts Vivado. Lai sāktu, mēs vēlēsimies izveidot jaunu projektu. Vispirms nosauciet projektu un norādiet projekta veidu. Noteikti izvēlieties tos pašus iestatījumus, kas parādīti attēlā. Kad esat nokļuvis avotu ekrānā, vēlaties pievienot sešus avotus ar nosaukumu "top", "flip_flop", "segments", "servo_top", "servo_sig" un "clk_div". Katra faila valodai noteikti izvēlieties VHDL, nevis Verilog. Ierobežojumu ekrānā jums jāizveido viens fails tapas piešķiršanai. Šī faila nosaukums nav svarīgs. Pēc tam jums tiks piedāvāts izvēlēties dēli, kuru izmantosit. Pārliecinieties, ka esat izvēlējies pareizo. Atsauces fotoattēli pareizai izvēlei. Pēdējā solī jums tiks lūgts norādīt katra avota faila ieejas un izejas. Šo soli var kodēt vēlāk, tāpēc noklikšķiniet uz Tālāk.
3. darbība: ierobežojumu fails


Šajā solī mēs uzrakstīsim ierobežojumu failu. Tas norāda Vivado, kuras tapas nosūtīs/saņems signālus no shēmas. Mums būs nepieciešams pulkstenis, trīs slēdži, septiņu segmentu displejs (septiņi katodi un četri anodi), poga un trīs izejas PMOD tapas, kuras izmantos servo/LED. Atsauces fotoattēli, kā izskatīties kodam.
4. solis: Flip Flop fails

Nākamais fails, ko mēs rakstīsim, ir avota fails flip_flip. Šī būs D flip flop VHDL ieviešana. Citiem vārdiem sakot, tā ievadi nodos tikai izejai pulksteņa signāla augšupejošajā malā un nospiežot pogu. Tas ņems pulksteni, D un pogu kā ievadi un izvadīs Q. atsauci uz fotoattēliem, lai iegūtu kodu. Šī faila mērķis ir ļaut tvertnēm atvērties tikai tad, kad tiek nospiesta poga, nevis tieši atvērt katru reizi, kad slēdzis tiek pagriezts, un aizvērt tikai tad, kad slēdzis ir pagriezts atpakaļ.
5. darbība. Segmentu fails

Nākamais rakstītais fails ir segmentu fails. Tas aizņems pogu, kā ieejas un izvades vērtībās Basys 3 septiņu segmentu displeja septiņiem katodiem un četriem anodiem. Šis fails liek septiņu segmentu displejā parādīt "C", kad tvertnes ir aizvērtas, un "O", kad tvertnes ir atvērtas. Kodu skatiet pievienotajā fotoattēlā.
6. darbība: pulksteņa dalītāja fails

Servo funkcija, uzņemot PWM signālu ar frekvenci 64k Hz, savukārt Basys 3 iebūvētais pulkstenis darbojas ar frekvenci 50M Hz. Pulksteņa dalītāja fails pārveidos noklusējuma pulksteni par draudzīgu frekvenci servo. Fails ņems pulksteni un atiestatīšanas signālu kā ieeju un izvadīs jaunu pulksteņa signālu. Kodu skatiet pievienotajā fotoattēlā.
7. solis: Servo signāla fails

Servo signāla failā tiks izmantota pulksteņa ievade, atiestatīšanas ievade un vēlamās pozīcijas ievade. Tas izvadīs PWM signālu, kas virzīs servo vēlamajā pozīcijā. Šis fails izmanto pēdējā failā izveidoto pulksteņa signālu, lai izveidotu PWM signālu servo ar dažādiem darba cikliem atkarībā no vēlamās pozīcijas. Tas ļauj mums pagriezt servo, kas kontrolē atkritumu urnu vākus. Kodu skatiet pievienotajā fotoattēlā.
8. solis: Servo augšējais fails

Šī faila mērķis ir apkopot pēdējos divus failus funkcionālā servo draiverī. Tas prasīs pulksteni, atiestatīšanu un pozīciju kā ieeju, un tas izvadīs servo PWM signālu. Tas izmantos gan pulksteņa dalītāju, gan servo signāla failu kā komponentus un iekļaus iekšējo pulksteņa signālu, lai modificēto pulksteni pārsūtītu no pulksteņa dalītāja uz servo signāla failu. Skatiet fotoattēlus vietnē
9. darbība: augšējais fails




Šis ir vissvarīgākais projekta fails, jo tas aptver visu, ko esam izveidojuši kopā. Tā ieņems pogu, trīs slēdžus un pulksteni. Tas dos septiņus katodus, četrus anodus un trīs servo/LED signālus kā izejas. Tas izmantos flip flop, segmentus un servo_top failus kā sastāvdaļas, un tam būs iekšējs slēdzis un iekšējs servo signāls.
10. darbība: testēšana Vivado
Palaidiet sintēzi, ieviešanu un ierakstiet bitu plūsmu Vivado. Ja rodas kļūdu ziņojumi, atrodiet kļūdas vietu un pēc tam salīdziniet ar norādīto kodu. Apstrādājiet visas kļūdas, līdz visas šīs darbības ir veiksmīgi pabeigtas.
11. darbība. Aparatūras ievads
Šajā solī jūs izveidosit LED aparatūru, kuru izmantojām mūsu prototipā. Ja tiek izmantoti servo, projektam jābūt gatavam darbam, kamēr tiek izmantotas pareizās tapas. Ja izmantojat gaismas diodes, veiciet tālāk norādītās darbības.
12. solis: Sagatavošana
Izgrieziet vadu sešos vienmērīgos gabalos. Katra stieples gabala galus noņemiet pietiekami, lai varētu notikt lodēšana. Atdaliet gaismas diodes, rezistorus un vadus trīs grupās. Uzkarsējiet lodāmuru.
13. solis: lodēšana


Lodējiet katru no 68 omu rezistoriem uz atbilstošās gaismas diodes negatīvo pusi. Lodējiet vadu gaismas diodes pozitīvajā pusē un citu vadu rezistora pusē, kas nav pielodēta pie gaismas diodes. Jums vajadzētu būt trim no iepriekš redzamajām LED ierīcēm.
14. darbība: fināls

Ievietojiet katru pozitīvo vadu atbilstošajā PMOD tapā un katru negatīvo zemētā PMOD tapā. Pēc izvēles pievienojiet kartona tvertnes, lai attēlotu miskasti un paslēptu lodēšanas putru. Kad vadi ir pareizi pievienoti un kods ir pareizi augšupielādēts uz tāfeles bez kļūdām, mašīnai vajadzētu darboties, kā paredzēts. Ja kaut kas notiek nepareizi, atgriezieties iepriekšējos soļos, lai novērstu problēmu. Izklaidējieties ar savu jauno "atkritumu šķirotāju".
Ieteicams:
CPE 133 galīgais projekta decimāldaļskaitlis līdz binārajam: 5 soļi

CPE 133 galīgais projekta decimāldaļskaitlis līdz binārajam: binārie skaitļi ir viena no pirmajām lietām, kas ienāk prātā, domājot par digitālo loģiku. Tomēr binārie skaitļi tiem var būt sarežģīts jēdziens. Šis projekts palīdzēs tiem, kas ir gan jauni, gan pieredzējuši ar bināro skaitļu mas
Krāsu šķirotājs: 6 soļi

Krāsu šķirotājs: šis krāsu šķirošanas mērķis ir pārvietot m & ms dažādās kaudzēs, pamatojoties uz to krāsu
Elektroniskais monētu šķirotājs: 7 soļi (ar attēliem)

Elektroniskais monētu šķirotājs: Jau sen, ļoti sen, kad vēl bija iespēja iet uz skolu, mums radās interesanta ideja izgatavot ierīci, kas darbojas diezgan vienkāršā veidā - pēc tam, kad iemetām pareizo naudas summu, mēs izdos konkrētu produktu. Es nevaru atklāt
PhantomX Pincher robots - ābolu šķirotājs: 6 soļi

PhantomX Pincher Robot - Apple Sorter: Drošības prasības pārtikai pieaug. Gan patērētāji, gan varas iestādes arvien vairāk pieprasa, lai pārtika, ko mēs ēdam, būtu augstas kvalitātes un ar augstu drošību. Ja pārtikas ražošanas laikā rodas problēmas, kļūdu avots ir
CPE 133 Metronoms: 3 soļi

CPE 133 Metronoms: Mūsu pēdējam projektam Cal Poly mēs izveidojām tempa uzturēšanas ierīci, ko sauc par metronomu, un mēs izvēlējāmies šo projektu mūzikas un digitālā dizaina intereses dēļ. Mēs izmantojām iepriekšējās laboratorijas CPE 133, lai palīdzētu izstrādāt mūsu kodu un tiešsaistes apmācības, lai palīdzētu