Բովանդակություն:

Հայելիի ցուցադրում ՝ 8 քայլ
Հայելիի ցուցադրում ՝ 8 քայլ

Video: Հայելիի ցուցադրում ՝ 8 քայլ

Video: Հայելիի ցուցադրում ՝ 8 քայլ
Video: Դիլիջանի 38/8 ընտրատեղամասի դիմաց քաղաքացիական անձը զինվորներին ուղղորդում է դեպի ընտրատեղամաս 2024, Նոյեմբեր
Anonim
Հայելիի ցուցադրում
Հայելիի ցուցադրում
Հայելիի ցուցադրում
Հայելիի ցուցադրում
Հայելիի ցուցադրում
Հայելիի ցուցադրում

Այս նախագծի նպատակն է ստեղծել Smart Mirror- ի պատկերի ցուցադրման գործառույթ: Հայելին կարող է ցուցադրել կանխատեսումներ (արևոտ, մասամբ արևոտ, ամպամած, քամոտ, անձրև, ամպրոպ և ձյուն) և ջերմաստիճանի արժեքներ -9999 ° -ից մինչև 9999 °: Կանխատեսման և ջերմաստիճանի արժեքները դժվար կոդավորված են, կարծես դրանք նմանակեն եղանակային API- ից վերլուծված:

Նախագիծն օգտագործում է Zynq-Zybo-7000 տախտակ, որն աշխատում է FreeRTOS- ով և օգտագործում է Vivado 2018.2 սարքավորումները նախագծելու և ծրագրավորելու համար:

Մասեր:

Zynq-Zybo-7000 (FreeRTOS- ով)

19 դյույմ LCD (640x480)

VGA մալուխ

12 "x 18" ակրիլային հայելի

Քայլ 1: Կարգավորեք Vivado- ն

Vivado- ի կազմաձևում
Vivado- ի կազմաձևում
Vivado- ի կազմաձևում
Vivado- ի կազմաձևում

Ներբեռնեք Vivado 2018.2 -ը Xilinx- ից և օգտագործեք Webpack լիցենզիան: Գործարկեք Vivado- ն և «Ստեղծեք նոր նախագիծ» և տվեք անունը: Հաջորդը ընտրեք «RTL Project» և նշեք «Այս պահին աղբյուրներ մի նշեք»: Մաս ընտրելիս ընտրեք «xc7z010clg400-1» և հաջորդ էջում կտտացրեք «Ավարտել»:

Քայլ 2: Փաթեթավորում VGA վարորդի IP

Փաթեթավորում VGA վարորդի IP
Փաթեթավորում VGA վարորդի IP
Փաթեթավորում VGA վարորդի IP
Փաթեթավորում VGA վարորդի IP

Ավելացրեք vga_driver.sv ֆայլը Դիզայնի աղբյուրներին: Հաջորդը, կտտացրեք «Գործիքներ» և ընտրեք «Ստեղծել և փաթեթավորել նոր IP»: Ընտրեք «Փաթեթավորեք ձեր ընթացիկ նախագիծը»: Այնուհետև ընտրեք IP հասցեն և «Ներառեք.xci ֆայլերը»: Կտտացրեք «Լավ» բացվող պատուհանում, այնուհետև «Ավարտել»:

«Փաթեթավորման քայլեր» բաժնում անցեք «Վերանայում և փաթեթ» և ընտրեք «Փաթեթի IP»:

Այժմ vga_driver- ը պետք է հասանելի լինի որպես IP բլոկ:

Քայլ 3: Zynq IP

Zynq IP
Zynq IP
Zynq IP
Zynq IP
Zynq IP
Zynq IP
Zynq IP
Zynq IP

«IP ինտեգրատոր» բաժնում ընտրեք «Ստեղծել բլոկի դիզայն»: Ավելացրեք «ZYNQ7 մշակման համակարգ» և կրկնակի կտտացրեք բլոկին: Կտտացրեք «Ներմուծեք XPS կարգավորումներ» և վերբեռնեք ZYBO_zynq_def.xml ֆայլը:

Հաջորդը, «PS-PL Configuration» բաժնում բացեք «AXI Non Secure Enablement» բաժինը և ստուգեք «M AXI GP0 ինտերֆեյսը»:

Հաջորդը, «MIO Configuration» բաժնում բացեք «Application Application Processor Unit» բաժինը և ստուգեք «Timer 0» և «Watchdog»:

Վերջապես, «ockամացույցի կոնֆիգուրացիա» բաժնում բացեք «PL Fabric Clocks» - ի բացվող տարբերակը և ստուգեք «FCLK_CLK0» - ը և 100 ՄՀց հաճախականությամբ:

Քայլ 4: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

Block Design- ին ավելացրեք երկու GPIO բլոկ: GPIO- ները կօգտագործվեն պիքսելների հասցեն և պիքսելների RGB բաղադրիչները վերահսկելու համար: Կարգավորեք բլոկները, ինչպես ցույց է տրված վերևի նկարներում: Երկու բլոկ ավելացնելուց և կազմաձևելուց հետո կտտացրեք «Գործարկել միացման ավտոմատացումը»:

GPIO 0 - 1 -ին ալիքը վերահսկում է պիքսելների հասցեն, իսկ 2 -րդը ՝ կարմիր գույնը:

GPIO 1 - 1 -ին ալիքը վերահսկում է կանաչ գույնը, իսկ 2 -րդը ՝ կապույտը:

Քայլ 5: Արգելափակել հիշողությունը

Արգելափակել հիշողությունը
Արգելափակել հիշողությունը
Արգելափակել հիշողությունը
Արգելափակել հիշողությունը
Արգելափակել հիշողությունը
Արգելափակել հիշողությունը

Ավելացրեք Block Memory Generator IP- ն Block Design- ին և կազմաձևեք, ինչպես ցույց է տրված վերևում: Պիքսելային գույները գրվում են հիշողության հասցեների վրա, որոնք այնուհետև կարդում է VGA վարորդը: Հասցեի տողը պետք է համապատասխանի օգտագործվող պիքսելների քանակին, այնպես որ այն պետք է լինի 16 բիթ: Տվյալները նույնպես 16 բիթ են, քանի որ կան 16 գունավոր բիթեր: Մեզ չի հետաքրքրում որևէ ճանաչման բիթ կարդալը:

Քայլ 6: Այլ IP

Կցված pdf- ն ցույց է տալիս ավարտված Block Design- ը: Ավելացրեք բացակայող IP- ն և լրացրեք կապերը: Նաև «Արտաքին տեսք» ՝ VGA գույնի ելքերի և ուղղահայաց և հորիզոնական համաժամացման ելքերի համար:

xlconcat_0 - Միավորում է առանձին գույները ՝ ձևավորելով մեկ 16 բիթանոց RGB ազդանշան, որը սնվում է Block RAM- ում:

xlconcat_1 - Միավորում է VGA վարորդի սյունակի և տողի ազդանշանները և սնվում է Block RAM- ի B նավահանգստում: Սա թույլ է տալիս VGA վարորդին կարդալ պիքսելների գույնի արժեքները:

VDD - Մշտական HIGH միացված է Block RAM- ի գրելու հնարավորությանը, որպեսզի մենք միշտ կարողանանք ճիշտ օգտագործել այն:

xlslice_0, 1, 2 - շերտերն օգտագործվում են RGB ազդանշանը կոտրելու համար առանձին R, G և B ազդանշանների, որոնք կարող են սնուցվել VGA վարորդի մեջ:

Արգելափակման նախագծման ավարտից հետո ստեղծեք HDL փաթաթան և ավելացրեք սահմանափակումների ֆայլը:

*Block Design- ը հիմնված է benlin1994- ի կողմից գրված ձեռնարկի վրա*

Քայլ 7: SDK

Ստորև բերված է այս Block Design- ի գործարկվող ծածկագիրը: Init.c- ն պարունակում է գծագրին վերաբերող գործառույթներ (կանխատեսումներ, թվեր, աստիճանի խորհրդանիշ և այլն): Main.c- ի հիմնական հանգույցն այն է, ինչ աշխատում է, երբ խորհուրդը ծրագրավորվում է: Այս հանգույցը սահմանում է կանխատեսման և ջերմաստիճանի արժեքները, այնուհետև կանչում ոչ ոքի գործառույթները init.c. Այն ներկայումս շրջանցում է բոլոր յոթ կանխատեսումները և ցուցադրում մեկը մյուսի հետևից: Խորհուրդ է տրվում 239 տողում ավելացնել ընդմիջման կետ, որպեսզի կարողանաք տեսնել յուրաքանչյուր պատկեր: Կոդը մեկնաբանվում է և ձեզ կտրամադրի լրացուցիչ տեղեկություններ:

Քայլ 8: Եզրակացություն

Ընթացիկ նախագիծը բարելավելու համար կարելի է կանխաբեռնման կանխադրված պատկերները COE ֆայլերի ձևերով վերբեռնել Block Memory Generators- ում: Այսպիսով, կանխատեսումները ձեռքով գծելու փոխարեն, ինչպես դա արեցինք C կոդի մեջ, կարելի էր պատկերները կարդալ: Մենք փորձեցինք դա անել, բայց չստացվեց: Մենք կարողացանք կարդալ պիքսելային արժեքները և թողարկել դրանք, բայց դա ստեղծեց խառնաշփոթ պատկերներ, որոնք ոչնչով նման չէին այն բանին, ինչ մենք տեղադրել ենք RAM- ում: Block Memory Generator- ի տվյալների թերթը օգտակար է կարդալ:

Նախագիծը, ըստ էության, խելացի հայելիի կեսն է, քանի որ այն բացակայում է ինտերնետ կապի տեսանկյունից: Սա ավելացնելով ՝ ամբողջական Խելացի հայելի կստանաք:

Խորհուրդ ենք տալիս: