Innholdsfortegnelse:
- Trinn 1: Konfigurering av Vivado
- Trinn 2: Pakking av VGA -driver -IP
- Trinn 3: Zynq IP
- Trinn 4: GPIO IP
- Trinn 5: Blokker minne
- Trinn 6: Annen IP
- Trinn 7: SDK
- Trinn 8: Konklusjon
Video: Speilvisning: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Målet med dette prosjektet er å lage bildeskjermfunksjonaliteten til et Smart Mirror. Speilet kan vise prognoser (sol, delvis sol, overskyet, vind, regn, torden og snø) og temperaturverdier fra -9999 ° til 9999 °. Prognoser og temperaturverdier er hardt kodet som for å etterligne dem som blir analysert fra et vær -API.
Prosjektet bruker et Zynq-Zybo-7000-kort som kjører FreeRTOS og bruker Vivado 2018.2 til å designe og programmere maskinvaren.
Deler:
Zynq-Zybo-7000 (med FreeRTOS)
19 LCD (640x480)
VGA -kabel
12 "x 18" akryl speil
Trinn 1: Konfigurering av Vivado
Last ned Vivado 2018.2 fra Xilinx og bruk Webpack -lisensen. Start Vivado og "Lag nytt prosjekt" og gi det et navn. Velg deretter "RTL Project" og merk av for "Ikke spesifiser kilder for øyeblikket." Når du velger en del, velger du "xc7z010clg400-1" og treffet "Fullfør" på neste side.
Trinn 2: Pakking av VGA -driver -IP
Legg til filen vga_driver.sv i designkildene. Klikk deretter på "Verktøy" og velg "Opprett og pakk ny IP". Velg "Pakk ditt nåværende prosjekt." Velg deretter en IP -plassering og "Inkluder.xci -filer." Klikk "OK" i forgrunnsvinduet og deretter "Fullfør".
Gå til "Packaging Steps" til "Review and Package" og velg "Package IP".
Nå skal vga_driver være tilgjengelig som en IP -blokk.
Trinn 3: Zynq IP
Under "IP Integrator" -delen velger du "Create Block Design". Legg til "ZYNQ7 Processing System" og dobbeltklikk på blokken. Klikk på "Importer XPS -innstillinger" og last opp filen ZYBO_zynq_def.xml.
Deretter åpner du rullegardinlisten for "AXI Non Secure Enablement" under "PS-PL-konfigurasjon" og sjekker "M AXI GP0-grensesnitt."
Deretter åpner du rullegardinlisten for "Applikasjonsprosessorenhet" under "MIO -konfigurasjon" og sjekker "Timer 0" og "Watchdog."
Til slutt, under "Clock Configuration" åpner du rullegardinlisten for "PL Fabric Clocks" og sjekker "FCLK_CLK0" og ved 100 MHz.
Trinn 4: GPIO IP
Legg til to GPIO -blokker i Block Design. GPIO -ene vil bli brukt til å kontrollere pikseladressen og RGB -komponentene i pikslene. Konfigurer blokkene som vist på bildene ovenfor. Når du har lagt til og konfigurert begge blokkene, klikker du på "Kjør tilkoblingsautomatisering."
GPIO 0 - Kanal 1 kontrollerer pikseladressen og kanal 2 kontrollerer den røde fargen.
GPIO 1 - Kanal 1 kontrollerer den grønne fargen og kanal 2 kontrollerer den blå fargen.
Trinn 5: Blokker minne
Legg til en Block Memory Generator IP i Block Design og konfigurer som vist ovenfor. Pikselfargene skrives til minneadresser som deretter leses av VGA -driveren. Adresselinjen må samsvare med mengden piksler som brukes, så den må være 16 bits. Dataene i er også 16 biter siden det er 16 fargebiter. Vi bryr oss ikke om å lese noen anerkjennelsesbiter.
Trinn 6: Annen IP
Den vedlagte pdf -en viser den ferdige blokkdesignen. Legg til den manglende IP -adressen og fullfør tilkoblingene. Også "Make Externals" for VGA -fargeutgangene og de vertikale og horisontale synkroniseringsutgangene.
xlconcat_0 - Sammenkoble de enkelte fargene for å danne et 16 -bits RGB -signal som mates inn i Block RAM.
xlconcat_1 - kobler sammen kolonne- og rosesignalene fra VGA -driveren og mates inn i Port B i Block RAM. Dette gjør at VGA -driveren kan lese pikselfargeverdier.
VDD - Constant HIGH koblet til skrive -aktiveringen for Block RAM, slik at vi alltid kan gjøre det.
xlslice_0, 1, 2 - Skivene brukes til å bryte RGB -signalet til individuelle R-, G- og B -signaler som kan mates inn i VGA -driveren.
Når blokkdesignen er fullført, genererer du en HDL -innpakning og legger til begrensningsfilen.
*Block Design er basert på opplæringen skrevet av benlin1994*
Trinn 7: SDK
Koden som kjører denne blokkdesignen er inkludert nedenfor. Init.c inneholder funksjonene som håndterer tegningen (prognoser, tall, gradsymbol, etc.). Hovedløkken i main.c er det som blir kjørt når brettet er programmert. Denne sløyfen angir prognosene og temperaturverdiene og kaller deretter trekkfunksjonene i init.c. Den går for tiden gjennom alle syv prognosene og viser den ene etter den andre. Det anbefales at du legger til et brytpunkt på linje 239 slik at du kan se hvert bilde. Koden kommenteres og gir deg mer informasjon.
Trinn 8: Konklusjon
For å forbedre det nåværende prosjektet kan man laste opp forhåndslastede prognosebilder i form av COE -filer til Block Memory Generators. Så i stedet for å tegne prognosene manuelt slik vi gjorde i C -koden, kan man få bildene lest inn. Vi prøvde å gjøre dette, men kunne ikke få det til å fungere. Vi klarte å lese pikselverdier og sende dem ut, men det skapte rotete bilder som ikke lignet de vi lastet opp til RAM. Block Memory Generator -databladet er nyttig å lese.
Prosjektet er i hovedsak et halvt Smart Mirror siden det mangler internettilkoblingsaspektet. Å legge til dette vil gi et komplett Smart Mirror.
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte