Բովանդակություն:
- Քայլ 1: Կարգավորեք Vivado- ն
- Քայլ 2: Փաթեթավորում VGA վարորդի IP
- Քայլ 3: Zynq IP
- Քայլ 4: GPIO IP
- Քայլ 5: Արգելափակել հիշողությունը
- Քայլ 6: Այլ IP
- Քայլ 7: SDK
- Քայլ 8: Եզրակացություն
Video: Հայելիի ցուցադրում ՝ 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս նախագծի նպատակն է ստեղծել 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 2018.2 -ը Xilinx- ից և օգտագործեք Webpack լիցենզիան: Գործարկեք Vivado- ն և «Ստեղծեք նոր նախագիծ» և տվեք անունը: Հաջորդը ընտրեք «RTL Project» և նշեք «Այս պահին աղբյուրներ մի նշեք»: Մաս ընտրելիս ընտրեք «xc7z010clg400-1» և հաջորդ էջում կտտացրեք «Ավարտել»:
Քայլ 2: Փաթեթավորում VGA վարորդի IP
Ավելացրեք vga_driver.sv ֆայլը Դիզայնի աղբյուրներին: Հաջորդը, կտտացրեք «Գործիքներ» և ընտրեք «Ստեղծել և փաթեթավորել նոր IP»: Ընտրեք «Փաթեթավորեք ձեր ընթացիկ նախագիծը»: Այնուհետև ընտրեք IP հասցեն և «Ներառեք.xci ֆայլերը»: Կտտացրեք «Լավ» բացվող պատուհանում, այնուհետև «Ավարտել»:
«Փաթեթավորման քայլեր» բաժնում անցեք «Վերանայում և փաթեթ» և ընտրեք «Փաթեթի IP»:
Այժմ vga_driver- ը պետք է հասանելի լինի որպես IP բլոկ:
Քայլ 3: 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
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- ի տվյալների թերթը օգտակար է կարդալ:
Նախագիծը, ըստ էության, խելացի հայելիի կեսն է, քանի որ այն բացակայում է ինտերնետ կապի տեսանկյունից: Սա ավելացնելով ՝ ամբողջական Խելացի հայելի կստանաք:
Խորհուրդ ենք տալիս:
8x8 մատրիցային ցուցադրում BT- ով ՝ 5 քայլ (նկարներով)
8x8 Matrix Display BT- ով. Ես Ebay- ից (Չինաստան) գնել եմ 4 վահանակ 8x8 մատրիցա: Մի փոքր հիասթափվեցի, երբ հասկացա, որ դա լարված է կողք կողքի, այլ ոչ թե վերևից ներքև, որի օրինակների մեծ մասը ցանցը գրված է: Տես քայլ 2 -ը: Կարծում եմ, որ ես կարող էի ունենալ
BigBit Երկուական ժամացույցի ցուցադրում. 9 քայլ (նկարներով)
BigBit Երկուական ժամացույցի ցուցադրում. Նախորդ Instructable (Microbit Երկուական ժամացույցի) նախագիծը իդեալական էր որպես շարժական աշխատասեղան, քանի որ էկրանը բավականին փոքր էր: Հետևաբար, տեղին էր թվում, որ հաջորդ տարբերակը պետք է լիներ բուխարի կամ պատի վրա տեղադրված տարբերակ, բայց շատ ավելի մեծ:
Փայտե LED խաղային ցուցադրում Powered by Raspberry Pi Zero: 11 քայլ (նկարներով)
Փայտե LED խաղային ցուցադրում Powered by Raspberry Pi Zero: Այս նախագիծը իրականացնում է 20x10 պիքսել WS2812 հիմքով LED էկրան ՝ 78x35 սմ չափսերով, որը կարելի է հեշտությամբ տեղադրել հյուրասենյակում ՝ ռետրո խաղեր խաղալու համար: Այս մատրիցայի առաջին տարբերակը կառուցվել է 2016 թվականին և վերակառուցվել շատ այլ մարդկանց կողմից: Այս փորձառու
Երկակի 7 հատվածից բաղկացած ցուցադրում, որը վերահսկվում է շրջանագծի պոտենցիոմետրով Python - Տեսողության համառության ցուցադրում. 9 քայլ (նկարներով)
Երկակի 7 հատվածից բաղկացած ցուցադրումներ, որոնք վերահսկվում են շրջանագծի պոտենցիոմետրով: Python-Տեսողության համառության դրսևորում. Այս նախագիծը օգտագործում է պոտենցիոմետր `7 սեգմենտանոց LED էկրանների (F5161AH) ցուցադրումը վերահսկելու համար: Պոտենցիոմետրի բռնիչը պտտելիս ցուցադրվող թիվը փոխվում է 0 -ից 99 -ի սահմաններում: momentանկացած պահի վառվում է միայն մեկ LED, շատ կարճ, բայց
Snowman Led Edge Lit Հայելիի նշան. 21 քայլ (նկարներով)
Snowman Led Edge Lit Հայելիի նշան. Այս խրատական ուսուցման մեջ ես պատրաստվում եմ նկարագրել, թե ինչպես կարող եք Ձնեմարդի դիզայնով լուսամուտով լուսավորված ապակե հայելի պատրաստել, որը կատարյալ է Սուրբ Christmasննդյան տոնի համար: Նշանը փորագրված է Ikea- ի ապակե հայելային սալիկի վրա: Սրանք գալիս են չորս տուփից և բավականին ծախսարդյունավետ են: Ես