INHOUDSOPGAWE:

Spieëlskerm: 8 stappe
Spieëlskerm: 8 stappe

Video: Spieëlskerm: 8 stappe

Video: Spieëlskerm: 8 stappe
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, Julie
Anonim
Spieël vertoon
Spieël vertoon
Spieël vertoon
Spieël vertoon
Spieël vertoon
Spieël vertoon

Die doel van hierdie projek is om die beeldskermfunksies van 'n Smart Mirror te skep. Die spieël kan voorspellings (sonnig, gedeeltelik sonnig, bewolk, winderig, reën, donder en sneeu) en temperatuurwaardes van -9999 ° tot 9999 ° vertoon. Voorspellings- en temperatuurwaardes word hard gekodeer asof dit geëvalueer word deur die ontleding van 'n weer -API.

Die projek gebruik 'n Zynq-Zybo-7000-bord met FreeRTOS en gebruik Vivado 2018.2 om die hardeware te ontwerp en te programmeer.

Dele:

Zynq-Zybo-7000 (met FreeRTOS)

19 LCD (640x480)

VGA kabel

12 "x 18" akriel spieël

Stap 1: Configureer Vivado

Stel Vivado op
Stel Vivado op
Stel Vivado op
Stel Vivado op

Laai Vivado 2018.2 van Xilinx af en gebruik die Webpack -lisensie. Begin Vivado en "Skep nuwe projek" en gee dit 'n naam. Kies dan 'RTL -projek' en merk 'Moenie bronne spesifiseer nie'. As u 'n onderdeel kies, kies 'xc7z010clg400-1' en die treffer 'Voltooi' op die volgende bladsy.

Stap 2: Verpakking van die VGA -bestuurder -IP

Verpakking VGA Driver IP
Verpakking VGA Driver IP
Verpakking VGA Driver IP
Verpakking VGA Driver IP

Voeg die vga_driver.sv -lêer by die ontwerpbronne. Klik vervolgens op "Tools" en kies "Create and Package New IP." Kies "Pak u huidige projek in." Kies dan 'n IP -ligging en "Sluit.xci -lêers in." Klik op "OK" in die pop -upvenster en dan op "Voltooi".

Gaan na "Verpakkingstappe" na "Hersien en verpak" en kies "Pakket -IP."

Nou moet die vga_driver beskikbaar wees as 'n IP -blok.

Stap 3: Zynq IP

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

Kies "Skep blokontwerp" onder die afdeling "IP Integrator". Voeg die "ZYNQ7 Processing System" by en dubbelklik op die blok. Klik op "Import XPS Settings" en laai die ZYBO_zynq_def.xml -lêer op.

Open vervolgens onder 'PS-PL-konfigurasie' die aftreklys vir 'AXI Non Secure Enablement' en kyk na 'M AXI GP0-koppelvlak'.

Open vervolgens die 'vervolg keuselys' onder 'MIO -konfigurasie' vir 'Toepassingsverwerker -eenheid' en kyk na 'Timer 0' en 'Watchdog'.

Laastens, onder "Klokkonfigurasie", open die aftreklys vir "PL Fabric Clocks" en merk "FCLK_CLK0" en by 100 MHz.

Stap 4: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

Voeg twee GPIO -blokke by die Block Design. Die GPIO's sal gebruik word om die pixeladres en die RGB -komponente van die pixels te beheer. Stel die blokke op soos in die prente hierbo getoon. Nadat u albei blokke bygevoeg en gekonfigureer het, klik dan op "Run Connection Automation".

GPIO 0 - Kanaal 1 beheer die pixeladres en kanaal 2 beheer die rooi kleur.

GPIO 1 - Kanaal 1 beheer die groen kleur en kanaal 2 beheer die blou kleur.

Stap 5: Blok geheue

Blok geheue
Blok geheue
Blok geheue
Blok geheue
Blok geheue
Blok geheue

Voeg 'n Block Memory Generator IP by die Block Design en stel dit op soos hierbo getoon. Die pixelkleure word na geheue -adresse geskryf, wat dan deur die VGA -bestuurder gelees word. Die adresreël moet ooreenstem met die hoeveelheid pixels wat gebruik word, sodat dit 16 bis moet wees. Die data in is ook 16 bisse, aangesien daar 16 kleurbitte is. Ons gee nie om die erkenning van stukkies nie.

Stap 6: Ander IP

Die aangehegte pdf toon die voltooide blokontwerp. Voeg die ontbrekende IP by en voltooi die verbindings. Ook "Make Externals" vir die VGA -kleuruitsette en die vertikale en horisontale sinchronisasie -uitsette.

xlconcat_0 - Verbind die individuele kleure om een 16 -bis RGB -sein te vorm wat in die blok -RAM ingevoer word.

xlconcat_1 - Verbind die kolom- en ry -seine van die VGA -bestuurder en word in poort B van die blok -RAM gevoer. Dit stel die VGA -bestuurder in staat om pixelkleurwaardes te lees.

VDD - Constant HIGH is gekoppel aan die skryfaktiwiteit van die Block RAM, sodat ons dit altyd kan regkry.

xlslice_0, 1, 2 - Die snye word gebruik om die RGB -sein in individuele R-, G- en B -seine te breek wat in die VGA -bestuurder ingevoer kan word.

Sodra die blokontwerp voltooi is, genereer 'n HDL -omhulsel en voeg die beperkingslêer by.

*Blokontwerp is gebaseer op die tutoriaal wat deur Benlin1994 geskryf is*

Stap 7: SDK

Die kode wat hierdie blokontwerp uitvoer, is hieronder ingesluit. Init.c bevat die funksies wat die tekening hanteer (voorspellings, getalle, graadsimbool, ens.). Die hooflus in main.c is wat loop wanneer die bord geprogrammeer word. Hierdie lus stel die voorspellings- en temperatuurwaardes in en noem dan die tekenfunksies in init.c. Dit loop tans deur al sewe voorspellings en vertoon die een na die ander. Dit word aanbeveel dat u 'n breekpunt by reël 239 byvoeg sodat u elke prent kan sien. Daar word kommentaar gelewer op die kode en dit sal u meer inligting gee.

Stap 8: Gevolgtrekking

Om die huidige projek te verbeter, kan u voorspellingsbeelde in die vorme van COE -lêers na laai -geheueopwekkers oplaai. Dus, in plaas van om die voorspellings met die hand te teken, soos ons in die C -kode gedoen het, kan u die beelde laat inlees. Ons het probeer om dit te doen, maar kon dit nie laat werk nie. Ons kon pixelwaardes lees en dit aflewer, maar dit het rommelige beelde geskep wat niks anders was as die wat ons na die RAM gelaai het nie. Die datablad van die Block Memory Generator is handig om te lees.

Die projek is in wese 'n halwe Smart Mirror, aangesien dit nie die internetverbindingsaspek ontbreek nie. As u dit byvoeg, kry u 'n volledige Smart Mirror.

Aanbeveel: