![ZYBO OV7670 տեսախցիկ ՝ թավայի/թեքության վերահսկմամբ ՝ 39 քայլ (նկարներով) ZYBO OV7670 տեսախցիկ ՝ թավայի/թեքության վերահսկմամբ ՝ 39 քայլ (նկարներով)](https://i.howwhatproduce.com/images/001/image-224-83-j.webp)
Բովանդակություն:
- Քայլ 1. Կառուցեք PWM մոդուլ- Աղբյուր ֆայլ
- Քայլ 2. Կառուցեք PWM մոդուլ- Vivado Setup
- Քայլ 3. Կառուցեք PWM մոդուլ- Ստեղծեք ծրագրի ֆայլ
- Քայլ 4. Կառուցել PWM մոդուլ. Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (I)
- Քայլ 5. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (II)
- Քայլ 6. Կառուցել PWM մոդուլ. Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (III)
- Քայլ 7. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (IV)
- Քայլ 8. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (V)
- Քայլ 9. Կառուցեք PWM մոդուլ- Սարքավորումների տեղադրում
- Քայլ 10. Կառուցեք PWM մոդուլ. Ստեղծեք Bitstream և գործարկեք SDK
- Քայլ 11. Կառուցեք PWM մոդուլ. Ստեղծեք նոր ծրագիր Xilinx SDK- ում
- Քայլ 12. Կառուցեք PWM մոդուլ- Exploreրագրի Explorer- ի ակնարկ (I)
- Քայլ 13. Կառուցել PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (II)
- Քայլ 14. Կառուցել PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (III)
- Քայլ 15. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (I)
- Քայլ 16. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (II)
- Քայլ 17. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (III)
- Քայլ 18. Կառուցեք PWM մոդուլ. Գործարկեք այն:
- Քայլ 19. Հեռարձակեք տեսանյութերի մշակում Digilent ZYBO- ով OV7670- ով
- Քայլ 20. Ամբողջական արգելափակման դիագրամ
- Քայլ 21. Միացրեք OV7670- ը ZYBO- ին
- Քայլ 22. Ստեղծեք բլոկի ձևավորում
- Քայլ 23. Ավելացրեք VHDL ֆայլեր OV7670 տեսախցիկի կառավարման և նկարահանման համար
- Քայլ 24. Ավելացրեք սահմանափակումների ֆայլ
- Քայլ 25. Ավելացրեք IP ռեպո HLS IP- ի համար
- Քայլ 26. Ավելացնել մոդուլներ և IP
- Քայլ 27: IP- ի կազմաձևման կարգավորումներ
- Քայլ 28. Ավելացրեք և կազմաձևեք PS IP բլոկը
- Քայլ 29. Մաս 1. Servo Motors- ի համար PWM մոդուլի կառուցում
- Քայլ 30. Տեսանյութի ներածման կողային միացումներ (ընդգծված է ՝ նշելով)
- Քայլ 31. Միացումներ OV7670- ին
- Քայլ 32. Միացումներ Video Out Side- ում
- Քայլ 33: Գործարկեք Block and Connection Automation
- Քայլ 34. Ստեղծեք HDL փաթաթիչ
- Քայլ 35. Ստեղծեք Bitstream, Արտահանեք սարքաշար SDK- ին, գործարկեք SDK Vivado- ից
- Քայլ 36. SDK (առանց FreeRTOS)
- Քայլ 37. FreeRTOS- ի ներդրում
- Քայլ 38. Օգտագործման հրահանգներ
- Քայլ 39. հղումներ և հղումներ
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48
![Image Image](https://i.howwhatproduce.com/images/001/image-224-85-j.webp)
![](https://i.ytimg.com/vi/p7wnIg9gHMU/hqdefault.jpg)
![ZYBO OV7670 տեսախցիկ ՝ թավայի/թեքության վերահսկմամբ ZYBO OV7670 տեսախցիկ ՝ թավայի/թեքության վերահսկմամբ](https://i.howwhatproduce.com/images/001/image-224-86-j.webp)
Սկսեք առաջին քայլից ՝ 2 առանցքի servo PWM վերահսկիչ ստեղծելու մանրամասների համար:
Սկսեք զանգվածային բլոկ -դիագրամից (Քայլ 19) ամբողջական նախագծի համար:
Տեսախցիկ + թավայի/թեքության կարգավորում, որն օգտագործել ենք ՝
Սպասարկիչները միացնելու համար օգտագործվել է Digilent- ի PmodCON3- ը:
Քայլ 1. Կառուցեք PWM մոդուլ- Աղբյուր ֆայլ
Քայլ 2. Կառուցեք PWM մոդուլ- Vivado Setup
![Կառուցեք PWM մոդուլ- Vivado Setup Կառուցեք PWM մոդուլ- Vivado Setup](https://i.howwhatproduce.com/images/001/image-224-87-j.webp)
Նախ, ներբեռնեք Vivado Design Suite- ը Xilinx կայքից: Տեղադրեք դիզայնի ամբողջ փաթեթը, ներառյալ Vivado Software Development Kit- ը (SDK): Այս նախագիծը օգտագործում է 2017.2 տարբերակը:
Այդ ընթացքում Digilent Adept 2 -ը նույնպես պետք է տեղադրվի որպես Zybo տախտակի վարորդ:
Քայլ 3. Կառուցեք PWM մոդուլ- Ստեղծեք ծրագրի ֆայլ
![Կառուցեք PWM մոդուլ- Ստեղծեք ծրագրի ֆայլ Կառուցեք PWM մոդուլ- Ստեղծեք ծրագրի ֆայլ](https://i.howwhatproduce.com/images/001/image-224-88-j.webp)
Նախքան նախագծի ֆայլ ստեղծելը, դուք պետք է համոզվեք, որ արդեն ճիշտ եք տեղադրել Zybo ֆայլը ՝ որպես ձեռնարկ այստեղ:
Vivado տարբերակ 2015.1 և ավելի ուշ տախտակի ֆայլերի տեղադրում
Բաց Vivado 2017.2. Արագ մեկնարկի ժամանակ կտտացրեք Ստեղծել նախագիծ -> Հաջորդ -> Nameրագրի անուն (նշեք ձեր ծրագրի անունը այստեղ) -> Typeրագրի տեսակը: Projectրագրի տիպի վրա ընտրեք RTL Project և նշեք «Այս պահին աղբյուրներ մի նշեք»: Հաջորդը, կանխադրված մասի համար որպես ցուցադրման անուն ընտրեք «Տախտակներ» և «Zybo»: Հաջորդը, կտտացրեք Ավարտել ՝ նախագիծը սկսելու համար:
Քայլ 4. Կառուցել PWM մոդուլ. Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (I)
![Կառուցել PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (I) Կառուցել PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (I)](https://i.howwhatproduce.com/images/001/image-224-89-j.webp)
Flow Navigator- ում կտտացրեք «Ստեղծեք բլոկի ձևավորում», այնուհետև կտտացրեք OK: կտտացրեք «+» նշանին ՝ անհրաժեշտ IP հասցեներ ավելացնելու համար: Ավելացնել:
- Մեկ ZYNQ7 մշակման համակարգ Երկու AXI ժմչփ
- Երկու AXI ժմչփ
Քայլ 5. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (II)
![Կառուցել PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (II) Կառուցել PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (II)](https://i.howwhatproduce.com/images/001/image-224-90-j.webp)
IP- ների ավելացումից հետո գործարկեք Block Automation և միացման ավտոմատացում: Ավտոմատացման ավարտից հետո «axi_timer_0» բլոկում աջ սեղմեք pwm0 -> Make External: Անվանեք pwm0 արտաքին քորոցը որպես pwm_Xaxis: Բացի այդ, կրկնել վերը նշված գործընթացը «axi_timer_1» բլոկի վրա և անվանել pwm0 արտաքին քորոցը որպես pwm_Zaxis:
Քայլ 6. Կառուցել PWM մոդուլ. Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (III)
![Կառուցել PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (III) Կառուցել PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (III)](https://i.howwhatproduce.com/images/001/image-224-91-j.webp)
Ուշադրություն դարձրեք, որ ամեն անգամ, երբ ավարտում ենք Block Design- ը Vivado- ում, մենք պետք է ստեղծենք HDL Wrapper: Քանի որ դա կլինի ամենաբարձր մակարդակի մոդուլ յուրաքանչյուր ծրագրի համար:
Քայլ 7. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (IV)
![Կառուցել PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (IV) Կառուցել PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (IV)](https://i.howwhatproduce.com/images/001/image-224-92-j.webp)
Այժմ, մենք պետք է ստեղծենք մեր սահմանափակման ֆայլը `մեր բլոկ -դիագրամին միացված կապում նշանակելու համար: Փակեք Արգելափակման ձևավորման պատուհանը, Աղբյուրների վրա, «Ավելացնել աղբյուրներ»-> Ավելացնել կամ ստեղծել սահմանափակումներ-> ավելացնել Zybo-Master.xdc- ը որպես մեր սահմանափակման ֆայլեր:
Քայլ 8. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (V)
![Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (V) Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (V)](https://i.howwhatproduce.com/images/001/image-224-93-j.webp)
Բացեք սահմանափակումների ֆայլը Zybo-Master.xdc սահմանափակումների թղթապանակից, մեկնաբանեք այն նավահանգիստները, որոնք մենք ցանկանում ենք նշել որպես ելքային ազդանշաններ և վերանվանեք «get_ports {XXXX}», որը XXXX- ը նշում է Block Diagram- ում նշված արտաքին քորոցը: Սահմանափակման ֆայլի կարգավորումը ցույց է տրված նկարում:
Քայլ 9. Կառուցեք PWM մոդուլ- Սարքավորումների տեղադրում
![Կառուցեք PWM մոդուլ- Սարքավորումների տեղադրում Կառուցեք PWM մոդուլ- Սարքավորումների տեղադրում](https://i.howwhatproduce.com/images/001/image-224-94-j.webp)
Սերվո շարժիչները միացրեք Pmod CON3- ին: TowerPro SG90- ը servo շարժիչի մոդելն է, որը մենք օգտագործել ենք այս նախագծում: Servo շարժիչի լարերի համար նարնջագույն մետաղալարը ներկայացնում է PWM ազդանշանը, որը միացված է Pmod CON3- ի SIG կապին: Vcc կարմիր մետաղալարն էլեկտրալար է, որը միացված է Pmod CON3- ի VS կապին: Վերջապես, շագանակագույն մետաղալարերը Gnd- ը GND կապին միացված հիմնավորված մետաղալար է: Հաջորդը, տեղադրեք Pmod CON3- ը Jybo տախտակի JD նավահանգստի վերին շարքում:
Քայլ 10. Կառուցեք PWM մոդուլ. Ստեղծեք Bitstream և գործարկեք SDK
1. Project Navigator ներդիրում գործարկեք Generate BitStream- ը:
2. Արտահանեք սարքավորումներ. Ֆայլ> Արտահանել> Արտահանել սարքավորում-> «ներառել բիթսթրիմը»-> OK 3. Գործարկել SDK- ն ՝ Ֆայլը-> Գործարկել SDK- ն:
Քայլ 11. Կառուցեք PWM մոդուլ. Ստեղծեք նոր ծրագիր Xilinx SDK- ում
![Կառուցեք PWM մոդուլ- Ստեղծեք նոր ծրագիր Xilinx SDK- ում Կառուցեք PWM մոդուլ- Ստեղծեք նոր ծրագիր Xilinx SDK- ում](https://i.howwhatproduce.com/images/001/image-224-95-j.webp)
Ստեղծեք նոր ծրագիր.
Ֆայլ> Նոր> Կիրառման նախագիծ -> Մուտքագրեք ձեր նախագծի անունը -> Ավարտել
Project Explorer- ի ներքո պետք է լինի երեք թղթապանակ:
Այս դեպքում «design_1_wrapper_hw_platform_0» - ը Vivado- ի կողմից նախկինում արտահանված թղթապանակն է: Axis_2_PWM_SDK_bsp- ը տախտակի աջակցության փաթեթի թղթապանակն է: Իսկ Axis_2_PWM_SDK- ը մեր հիմնական նախագծի թղթապանակն է SDK- ում: Դուք կարող եք տեսնել «helloworld.c» ֆայլը Axis_2_PWM_SDK- ի «src» թղթապանակի տակ, որտեղ «helloworld.c» - ն հիմնական ֆայլն է:
Քայլ 12. Կառուցեք PWM մոդուլ- Exploreրագրի Explorer- ի ակնարկ (I)
![Կառուցել PWM մոդուլ- Exploreրագրի Explorer- ի ակնարկ (I) Կառուցել PWM մոդուլ- Exploreրագրի Explorer- ի ակնարկ (I)](https://i.howwhatproduce.com/images/001/image-224-96-j.webp)
Եկեք ստուգենք որոշ ֆայլեր Project Explorer- ի ներքո: Նախ, «design_1_wrapper_hw_platform_0» թղթապանակում բացեք «system.hdf»: Այս ֆայլը ցույց է տալիս ps7_cortex9 պրոցեսորի հասցեի քարտեզը և մեր նախագծում առկա IP բլոկները:
Քայլ 13. Կառուցել PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (II)
![Կառուցելով PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (II) Կառուցելով PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (II)](https://i.howwhatproduce.com/images/001/image-224-97-j.webp)
Այնուհետև ստուգեք «ներառել» և «libsrc» ֆայլերը «Axis_2_PWM_SDK_bsp» պանակի տակ: Գրադարանի ֆայլերը մեզ հնարավորություն են տալիս փոխազդել ապարատային ծայրամասային սարքերի հետ `առանց« նվագելու »գրանցամատյանների:
Քայլ 14. Կառուցել PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (III)
![Կառուցելով PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (III) Կառուցելով PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (III)](https://i.howwhatproduce.com/images/001/image-224-98-j.webp)
BSP փաստաթղթերի միջոցով xtmrctr.h- ն հայտնաբերվում է որպես Xilinx ժամաչափի կառավարման գրադարան ՝ կապված AXI ժմչփի հետ: Սովորաբար, այստեղ մենք կարող ենք գտնել ցանկալի PWM գործառույթը: Այնուամենայնիվ, եթե կարդաք «tmrctr_v4_3» փաստաթղթերը, դա ցույց է տալիս, որ վարորդը ներկայումս չի աջակցում սարքի PWM գործունեությունը: PWM գործառույթի անբավարարության պատճառով մենք պետք է ամփոփենք մեր PWM գործառույթը xtmrctr.h և AXI Timer v2.0 LogiCORE IP արտադրանքի ուղեցույցի օգնությամբ:
Քայլ 15. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (I)
![Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (I) Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (I)](https://i.howwhatproduce.com/images/001/image-224-99-j.webp)
Վերադառնալ «helloworld.c» հիմնական ֆայլին, ներառեք վերնագրի հետևյալ ֆայլերը.
Քայլ 16. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (II)
![Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (II) Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (II)](https://i.howwhatproduce.com/images/001/image-224-100-j.webp)
Սահմանեք երկու AXI TImer- ի հիմնական հասցեները «xparameters.h» - ի միջոցով:
Քայլ 17. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (III)
![Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (III) Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (III)](https://i.howwhatproduce.com/images/001/image-224-101-j.webp)
Կառուցեք ցանկալի PWM գործառույթը:
Duty_val. Փոխակերպում է աստիճանի արժեքը հերթապահության: Shouldամացույցի ժամանակահատվածը նույնպես պետք է նշանակվի:
PWM_START. Նշանակեք PWM գրանցամատյանի հասցեն և սկսեք արտադրել PWM:
PWM_STOP. Նշանակեք PWM գրանցման հասցեն և դադարեցրեք PWM- ի արտադրությունը:
Մնացած ցուցադրական կոդը ցուցադրվում է «helloworld.c» - ում «Axis_2_PWM_SDK» - ի ներքո
Քայլ 18. Կառուցեք PWM մոդուլ. Գործարկեք այն:
1. PGրագրեք FPGA- ն SDK- ի միջոցով
- Միացրեք Zybo Board- ը USB պորտի միջոցով համակարգչին:
- Xilinx գործիքներ -> Fրագիր FPGA
2. Գործարկել ծրագիրը
Կտտացրեք «Գործարկել» պատկերակին և բաց թողեք ընտրացանկը -> Գործարկել որպես -> Գործարկել սարքաշարի վրա
3. SDK տերմինալ
- Բացեք SDK տերմինալը -> Միացեք սերիական նավահանգստին -> OK
- Գործարկեք ծրագիրը: Եթե ցուցադրական ծածկագիրը հաջողությամբ գործարկվի, դուք պետք է տեսնեք «Նախնականացումը կատարված է»: SDK տերմինալում:
Քայլ 19. Հեռարձակեք տեսանյութերի մշակում Digilent ZYBO- ով OV7670- ով
Արխիվի ամբողջական ֆայլը կցված է:
Քայլ 20. Ամբողջական արգելափակման դիագրամ
![Ամբողջական արգելափակման դիագրամ Ամբողջական արգելափակման դիագրամ](https://i.howwhatproduce.com/images/001/image-224-102-j.webp)
Սա ցույց է տալիս նախագծի բոլոր կապերի և IP բլոկների ամբողջական դիագրամը
Քայլ 21. Միացրեք OV7670- ը ZYBO- ին
![Միացրեք OV7670- ը ZYBO- ին Միացրեք OV7670- ը ZYBO- ին](https://i.howwhatproduce.com/images/001/image-224-103-j.webp)
Ստեղծեք կապ ov7670 մոդուլը ZYBO Pmods- ին միացնելու համար
Տվյալների Pmod- ը Pmod D է
Control Pmod- ը Pmod C է
Բացի այդ, միացրեք PmodCON3- ը և սերվերը, ինչպես նշված է այս ձեռնարկի առաջին կեսում
Քայլ 22. Ստեղծեք բլոկի ձևավորում
![Ստեղծեք բլոկի դիզայն Ստեղծեք բլոկի դիզայն](https://i.howwhatproduce.com/images/001/image-224-104-j.webp)
Flow Navigator- ում կտտացրեք «Ստեղծեք բլոկի ձևավորում», այնուհետև կտտացրեք OK:
Քայլ 23. Ավելացրեք VHDL ֆայլեր OV7670 տեսախցիկի կառավարման և նկարահանման համար
Այս քայլին կցված VHDL ֆայլերը ավելացրեք նախագծին
Քայլ 24. Ավելացրեք սահմանափակումների ֆայլ
Ավելացրեք կցված սահմանափակումների ֆայլը ձեր նախագծին:
Քայլ 25. Ավելացրեք IP ռեպո HLS IP- ի համար
![Ավելացրեք IP Repo HLS IP- ի համար Ավելացրեք IP Repo HLS IP- ի համար](https://i.howwhatproduce.com/images/001/image-224-105-j.webp)
Վերցրեք կցված Zip ֆայլը և բացեք այն նոր թղթապանակի մեջ, որը կոչվում է նմանապես նոր գրացուցակում (թղթապանակում), որը կոչվում է «HLS_repo»:
Ձեր նախագծին ավելացրեք IP պահոց `գնալով IP կատալոգ և աջ սեղմելով ընտրեք« Ավելացնել պահեստ… »
Գնացեք դեպի ձեր «HLS_repo» գրացուցակը և ընտրեք այն:
Լրացուցիչ. Ստեղծեք HLS վիդեո մշակման բլոկ ձեզ համար:
Քայլ 26. Ավելացնել մոդուլներ և IP
![Ավելացնել մոդուլներ և IP Ավելացնել մոդուլներ և IP](https://i.howwhatproduce.com/images/001/image-224-106-j.webp)
![Ավելացնել մոդուլներ և IP Ավելացնել մոդուլներ և IP](https://i.howwhatproduce.com/images/001/image-224-107-j.webp)
Ավելացրեք ov7670_axi_stream_capture, debounce և ov7670_controller մոդուլները բլոկ -դիագրամին ՝ աջ սեղմելով ֆոնի վրա և ընտրելով «Ավելացնել մոդուլ…»
Նմանապես, ավելացրեք IP- ները.
- HLS_Video_Track
- Տեսանյութի շրջանակի բուֆեր գրել
- Կադրի վիդեո շրջանակի բուֆեր
- Տեսանյութի ժամանակի վերահսկիչ
- AXI4-Stream to Video Out
- 3 -րդ «շերտ»
- Մշտական
- 2 AXI ժմչփ
Քայլ 27: IP- ի կազմաձևման կարգավորումներ
![IP- ի կազմաձևման կարգավորումներ IP- ի կազմաձևման կարգավորումներ](https://i.howwhatproduce.com/images/001/image-224-108-j.webp)
![IP- ի կազմաձևման կարգավորումներ IP- ի կազմաձևման կարգավորումներ](https://i.howwhatproduce.com/images/001/image-224-109-j.webp)
![IP- ի կազմաձևման կարգավորումներ IP- ի կազմաձևման կարգավորումներ](https://i.howwhatproduce.com/images/001/image-224-110-j.webp)
Ինչպես ցույց է տրված նկարներում
Քայլ 28. Ավելացրեք և կազմաձևեք PS IP բլոկը
![Ավելացնել և կարգավորել PS IP բլոկը Ավելացնել և կարգավորել PS IP բլոկը](https://i.howwhatproduce.com/images/001/image-224-111-j.webp)
![Ավելացնել և կարգավորել PS IP բլոկը Ավելացնել և կարգավորել PS IP բլոկը](https://i.howwhatproduce.com/images/001/image-224-112-j.webp)
Ավելացրեք ZYNQ7 մշակման համակարգը բլոկ -դիագրամին
խմբագրել կազմաձևը.
-
PS-PL կազմաձևում
-
HP
- Միացնել S HP 0 -ը
- Միացնել S HP 1 -ը
-
-
Ockամացույցի կազմաձևում
-
PL Գործվածքների ժամացույցներ
- FCLK_0 100 ՄՀց հաճախականությամբ
- FCLK_1 25 ՄՀց հաճախականությամբ (OutputClock)
- FLCK_2 35 ՄՀց (<= 50 ՄՀց) (CameraClock)
-
Քայլ 29. Մաս 1. Servo Motors- ի համար PWM մոդուլի կառուցում
Axi_timer_0 pwm0 դուրս բերեք pwm_Xaxis նոր ելքային պորտին
Բերեք axi_timer_1 pwm0 նոր ելքային պորտ pwm_Zaxis
Քայլ 30. Տեսանյութի ներածման կողային միացումներ (ընդգծված է ՝ նշելով)
![Տեսանյութի մուտքի կողային կապեր Տեսանյութի մուտքի կողային կապեր](https://i.howwhatproduce.com/images/001/image-224-113-j.webp)
Connectիշտ միացրեք տեսագրման մուտքի կողմի IP բլոկները
(* այս կապերը պետք է ստեղծվեն ՝ միացման ավտոմատացման ընթացքում ճիշտ ընտրանքներ ընտրելով) «aclk» axi_stream_capture- ից գնում է.
- ap_clk վիդեո շրջանակի բուֆերի վրա գրել
- ap_clk HLS վիդեո հոսքի մշակման բլոկի վրա
- *AClk AXI խելացի միացման IP- ի վրա ՝ Video Frame Buffer- ից Գրել S_AXI_HP0- ին
- *ACLK, որը համապատասխանում է AXI Interconnect IP- ի ալիքներին HLS վիդեո մշակման բլոկի S_AXI ալիքների համար և վիդեո շրջանակի բուֆերի վրա PS բլոկում գրել S_AXI_HP0_ACLK
Տեսահոսքի ազդանշանը պարզապես միացված է սերիայի մեջ ՝ գրավման բլոկից մինչև Zynq հիշողության ինտերֆեյս:
- Տեսանյութը գրավման բլոկից անցնում է HLS մշակման բլոկի:
- HLS բլոկից մշակված տեսանյութը գնում է շրջանակի բուֆերային գրելու բլոկ:
- *Շրջանակի բուֆերային գրելու բլոկը միանում է Zynq PS բլոկի HP0 ինտերֆեյսի հետ:
- Գրավման բլոկի ելքից m_axis_tuser ազդանշանը ձեռքով միացված է ինչպես HLS մշակման բլոկի տեսանյութի_ին_ՏՈERՍԵՐԻ մուտքի ազդանշանին, այնպես էլ նույն բլոկի ap_start ազդանշանին:
TUSER (tuser) ազդանշանը օգտագործվում է AXI վիդեո հոսքի արձանագրության միջոցով ՝ տեսահոլովակի շրջանակի սկիզբը նշելու համար: AP_Start- ը HLS բլոկին ասում է, որ սկսի մշակումը: Այսպիսով, մենք օգտագործում ենք tuser- ը ՝ HLS բլոկը գործարկելու համար, որպեսզի յուրաքանչյուր շրջանակ մշակի այնպես, ինչպես դա է: ներս է մտնում: Ավտոբուսի մեկ ազդանշանը միացնելիս և այն անջատելիս անհրաժեշտ է նաև այն միացնել ավտոբուսի մնացած հատվածի սովորական ավարտի կետին: Vivado- ն ենթադրում է, որ եթե դուք միացնում եք ազդանշանը ձեռքով, ապա ցանկանում եք անջատել այն, ինչին այն սովորաբար միանում էր:
IP բլոկների կազմաձևման կարգավորումներ.
Տեսանյութի շրջանակի բուֆեր գրեք
Տեսանյութի ձևաչափեր ՝ RGB8
Sampleամացույցի 1 նմուշ Առավելագույն սյուներ ՝ 1280 (> = 640) Առավելագույն տողեր ՝ 960 (> = 480) Տվյալների առավելագույն լայնություն ՝ 8
Քայլ 31. Միացումներ OV7670- ին
![Միացումներ OV7670- ին Միացումներ OV7670- ին](https://i.howwhatproduce.com/images/001/image-224-114-j.webp)
Ov7670_axi_stream_capture բլոկի վրա
- Բոլոր մուտքերը դարձրեք արտաքին (աջ սեղմեք քորոցի վրա և ընտրեք ընտրացանկից, կամ ձախ կտտացրեք-> ctrl+T)
- Անունները թողեք այնպես, ինչպես կան
Ov7670_controller բլոկի վրա
- Արգելափակման բոլոր ելքերը դարձրեք արտաքին
- Վերանվանել config_finished նավահանգիստը led0
- միացրեք clk- ը CameraClock- ին (<= 50 ՄՀց) (FCLK_2)
Դեբունսի բլոկի վրա
- button1 մուտքը միացրեք արտաքին մուտքի պորտին, որը կոչվում է btn0
- միացրեք out1- ը ov7670_controller IP բլոկի վերագրանցման տողին
- button2 մուտքը միացրեք արտաքին մուտքի պորտին, որը կոչվում է btn3
- միացրեք out2n- ը ext_reset_in մուտքագրմանը Processor System Reset IP- ում `տեսագրման ժամացույցի տիրույթի համար: (*Դա կարող է անհրաժեշտ լինել անել այդ IP- ի ստեղծումից հետո*)
- միացրեք clk- ը CameraClock- ին (<= 50 ՄՀց) (FCLK_2)
Քայլ 32. Միացումներ Video Out Side- ում
![Միացումներ Video Out Side- ում Միացումներ Video Out Side- ում](https://i.howwhatproduce.com/images/001/image-224-115-j.webp)
![Միացումներ Video Out Side- ում Միացումներ Video Out Side- ում](https://i.howwhatproduce.com/images/001/image-224-116-j.webp)
![Միացումներ Video Out Side- ում Միացումներ Video Out Side- ում](https://i.howwhatproduce.com/images/001/image-224-117-j.webp)
![Միացումներ Video Out Side- ում Միացումներ Video Out Side- ում](https://i.howwhatproduce.com/images/001/image-224-118-j.webp)
Արգելափակումների համար Video Timing Controller (VTC), AXI4-Stream to Video Out և շերտերի միացումներ
- Օգտագործեք 25 ՄՀց ժամացույց (FCLK_1) vid_io_out_clk- ի և VTC clk- ի համար
- Օգտագործեք 100 ՄՀց ժամացույց (FCLK_0) AXI4-Stream- ի տեսանյութերի ելքի համար aclk- ի համար
- vtiming_out- ից vtiming_in
- Վիդեո շրջանակի բուֆեր
- vtg_ce գնում է gen_clken
- ՎՏԿ -ն clken, aclken, vid_io_out_ce կապել Constant dout- ին [0: 0]
- Vid_hsync և vid_vsync համապատասխանաբար դուրս բերեք vga_hs և vga_vs արտաքին ելքային պորտեր: (պատկերված չէ)
Շերտեր:
-
Կտրուկները պետք է տեղադրվեն այնպես, ինչպես ցույց է տրված կից նկարներում
- բլոկները վերանվանել slice_red, slice_green և slice_ble
- կարգաբերման հատվածը տատանվում է, ինչպես ցույց է տրված նկարներում ՝ ըստ բլոկի անվան
- միացրեք յուրաքանչյուր հատվածի ելքը արտաքին պորտի ելքին, ինչպես ցույց է տրված նկարում:
- vid_data [23: 0] միանում է յուրաքանչյուր հատվածի մուտքերին (Din [23: 0])
Քայլ 33: Գործարկեք Block and Connection Automation
![Գործարկեք Block and Connection Automation Գործարկեք Block and Connection Automation](https://i.howwhatproduce.com/images/001/image-224-119-j.webp)
![Գործարկեք Block and Connection Automation Գործարկեք Block and Connection Automation](https://i.howwhatproduce.com/images/001/image-224-120-j.webp)
![Գործարկեք Block and Connection Automation Գործարկեք Block and Connection Automation](https://i.howwhatproduce.com/images/001/image-224-121-j.webp)
Գործարկեք Block Automation- ը ՝ ZYNQ7 PS բլոկից իրերը միացնելու համար: Ինչպես ցույց է տրված նկարում:
Գործարկեք միացման ավտոմատացումը ՝ բոլոր փոխկապակցման IP- ն ստեղծելու համար: Ուշադիր ուշադրություն դարձրեք յուրաքանչյուր նկարի բոլոր տարբերակներին:
Դեբունսային բլոկում միացրեք out2n- ը տեսագրման ժամացույցի տիրույթին Processor System Reset ext_reset_in մուտքագրում:
Քայլ 34. Ստեղծեք HDL փաթաթիչ
![Ստեղծեք HDL Wrapper Ստեղծեք HDL Wrapper](https://i.howwhatproduce.com/images/001/image-224-122-j.webp)
Ստեղծեք HDL Wrapper ձեր բլոկի ձևավորման համար:
Սահմանեք այն որպես վերին մոդուլ:
Քայլ 35. Ստեղծեք Bitstream, Արտահանեք սարքաշար SDK- ին, գործարկեք SDK Vivado- ից
Համոզվեք, որ bitstream- ը ներառեք արտահանման մեջ:
Bitstream- ի ստեղծումը կարող է շատ երկար տևել:
Այնուհետեւ գործարկեք SDK- ն
Քայլ 36. SDK (առանց FreeRTOS)
![SDK (ոչ FreeRTOS) SDK (ոչ FreeRTOS)](https://i.howwhatproduce.com/images/001/image-224-123-j.webp)
Այս տարբերակը ամեն ինչ անում է առանց FreeRTOS- ի օգտագործման ՝ գեղեցիկ խտացնելով ծածկագիրը:
Ստեղծեք ինքնուրույն BSP ՝ հիմնված ապարատային դիզայնի վրա: Լռելյայն ընտրանքները պետք է լավ լինեն: Համոզվեք, որ ստեղծվել են BSP աղբյուրներ:
Ստեղծեք հավելված, ինչպես ցույց է տրված Նկարում: (դատարկ դիմում)
Deնջել ավտոգեներացված հիմնականը և ներմուծել կցված ֆայլերը:
Քայլ 37. FreeRTOS- ի ներդրում
![FreeRTOS- ի ներդրում FreeRTOS- ի ներդրում](https://i.howwhatproduce.com/images/001/image-224-124-j.webp)
Այս տարբերակն օգտագործում է FreeRTOS- ը: Ստեղծեք FreeRTOS901 BSP ՝ հիմնված ապարատային դիզայնի վրա: Լռելյայն ընտրանքները պետք է լավ լինեն: Համոզվեք, որ ստեղծվել են BSP աղբյուրներ:
Ստեղծեք հավելված, ինչպես ցույց է տրված Նկարում: (դատարկ դիմում)
Deնջել ավտոգեներացված հիմնականը և ներմուծել կցված ֆայլերը:
Քայլ 38. Օգտագործման հրահանգներ
Այս նախագիծը մի փոքր բարդ է գործարկելու համար: Հետևեք քայլերին ըստ հերթականության:
Համոզվեք, որ ձեր ZYBO- ն ոչինչ չի ինքնաբեռնում, երբ այն միանում է: Սա նշանակում է, որ Կատարված LED- ը չպետք է լուսավորվի: Դա անելու եղանակներից մեկն այն է, որ բեռնման աղբյուրի jumper- ը սահմանվի JTAG:
Բացեք նախագիծը (FreeRTOS, թե ոչ), որը ցանկանում եք ծրագրավորել SDK- ից
- Միացրեք ձեր ZYBO- ն: Կատարված LED- ը չպետք է լուսավորվի:
- Programրագրեք FPGA- ն բիթ ֆայլով: Կատարված LED- ը պետք է լուսավորվի: Led0- ը չպետք է լուսավորվի:
- Գործարկեք ծածկագիրը (հիշեք, որ դա անում եք, անցեք սկզբնական ճեղքման կետից):
Այս պահին դուք պետք է ելք ստանաք ձեր VGA էկրանին:
Վերագործարկելու համար (եթե այն սխալ է կամ որևէ այլ բան). Արագ հպեք PS-SRST կոճակին կամ անջատեք ZYBO- ն, ապա նորից միացրեք: Շարունակեք 2 -րդ քայլից:
Պրոցեսորը վրիպազերծիչի հետ կանգնեցնելու դեպքում տեսախցիկը կշարունակի պահել դիրքը ՝ տեղաշարժվելու փոխարեն: Տեսահոլովակն ամեն դեպքում կշարունակվի:
Քայլ 39. հղումներ և հղումներ
Xilinx- ի տեղեկատու ուղեցույցներ և փաստաթղթեր.
- PG044 - AXI -Stream to Video Out
- PG278 - Տեսանյութի շրջանակի բուֆեր Կարդալ/գրել
Այլ հղումներ.
- Լաուրիի բլոգը `VDMA մուտքագրում
- Լաուրիի բլոգ - OV7670 դեպի VGA ելք ՝ օգտագործելով BRAM
- Hamsterworks վիքի, Մայք Ֆիլդսի կողմից, OV7670 ծածկագրի սկզբնական աղբյուրը
- Տվյալների թերթիկ, որը ցույց է տալիս ժամանակի հիմնական բնութագրերը
Խորհուրդ ենք տալիս:
Հեշտ թեքության վրա հիմնված գույնի փոփոխման անլար Ռուբիկի խորանարդի լամպ. 10 քայլ (նկարներով)
![Հեշտ թեքության վրա հիմնված գույնի փոփոխման անլար Ռուբիկի խորանարդի լամպ. 10 քայլ (նկարներով) Հեշտ թեքության վրա հիմնված գույնի փոփոխման անլար Ռուբիկի խորանարդի լամպ. 10 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-3620-j.webp)
Հեշտ թեքության վրա հիմնված գույնը փոխող անլար Ռուբիկի խորանարդի լամպ. Այսօր մենք պատրաստվում ենք կառուցել այս հիանալի Ռուբիկի խորանարդիկով լամպը, որը փոխում է գույնը `կախված այն կողմի վերևից: Խորանարդն աշխատում է LiPo- ի փոքր մարտկոցով, որը լիցքավորված է միկրո-USB ստանդարտ մալուխով և, իմ փորձարկմամբ, ունի մի քանի օր մարտկոցի կյանք: Այս
Հիմնական պարամետրերի ավտոմատ վերահսկմամբ ակվարիումի ձևավորում. 4 քայլ (նկարներով)
![Հիմնական պարամետրերի ավտոմատ վերահսկմամբ ակվարիումի ձևավորում. 4 քայլ (նկարներով) Հիմնական պարամետրերի ավտոմատ վերահսկմամբ ակվարիումի ձևավորում. 4 քայլ (նկարներով)](https://i.howwhatproduce.com/images/001/image-1117-63-j.webp)
Ակվարիումի դիզայն հիմնական պարամետրերի ավտոմատացված վերահսկմամբ. Ներածություն Այսօր ծովային ակվարիումի խնամքը հասանելի է յուրաքանչյուր ակվարիումի համար: Ակվարիում ձեռք բերելու խնդիրը դժվար չէ: Բայց բնակիչների լիարժեք կենսապահովման, տեխնիկական խափանումներից պաշտպանվելու, հեշտ և արագ սպասարկում և խնամք
Տեսախցիկի տեսախցիկ ՝ 5 դոլար արժողությամբ փաստաթղթերի տեսախցիկ ՝ 4 քայլ (նկարներով)
![Տեսախցիկի տեսախցիկ ՝ 5 դոլար արժողությամբ փաստաթղթերի տեսախցիկ ՝ 4 քայլ (նկարներով) Տեսախցիկի տեսախցիկ ՝ 5 դոլար արժողությամբ փաստաթղթերի տեսախցիկ ՝ 4 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-3882-14-j.webp)
5 դոլար արժողությամբ դյուրակիր համակարգչային փաստաթղթերի տեսախցիկ տեսաֆիլմերի կոնֆերանսի համար. Հրապարակվել է 202008 թ. Johnոն Է. www.instructables.com/id/A-Sub-10-MetaPrax-Documen
Ինչպես պատրաստել շարժակների թեքության թև ՝ 6 քայլ (նկարներով)
![Ինչպես պատրաստել շարժակների թեքության թև ՝ 6 քայլ (նկարներով) Ինչպես պատրաստել շարժակների թեքության թև ՝ 6 քայլ (նկարներով)](https://i.howwhatproduce.com/images/003/image-6858-49-j.webp)
Ինչպես պատրաստել Gears Curving Arm Slider: FULL VIDEO Այս սահիկը կարող է սահել կորի և նորարարական եղանակով
Հինգ ցենտ թեքության ցուցիչ ՝ 4 քայլ (նկարներով)
![Հինգ ցենտ թեքության ցուցիչ ՝ 4 քայլ (նկարներով) Հինգ ցենտ թեքության ցուցիչ ՝ 4 քայլ (նկարներով)](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10962158-five-cent-tilt-sensor-4-steps-with-pictures-0.webp)
Հինգ ցենտ թեքության ցուցիչ. Սա թեքության հիմնական սենսոր է, որը ներշնչված է գնդակի և վանդակի ոճի սենսորներից, բայց 2d- ի փոխարեն `3d- ի: Գրավված նիկելը կապում է զույգ լարերը `կախված սենսորի կողմնորոշումից: Սրանք արագ են կառուցվում և բավականին էժան են. Ես նրանց հետ եկա մի նախագծի համար