Съдържание:

Огледален дисплей: 8 стъпки
Огледален дисплей: 8 стъпки

Видео: Огледален дисплей: 8 стъпки

Видео: Огледален дисплей: 8 стъпки
Видео: Настройка Яркости Дисплея Samsung ATV 8 NP880Z5E 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: Опаковане на IP адреса на VGA драйвера

Опаковка VGA драйвер IP
Опаковка VGA драйвер IP
Опаковка VGA драйвер IP
Опаковка VGA драйвер IP

Добавете файла vga_driver.sv към източниците на дизайн. След това щракнете върху „Инструменти“и изберете „Създаване и пакетиране на нов IP“. Изберете „Опаковайте текущия си проект“. След това изберете IP местоположение и „Включване на.xci файлове“. Кликнете върху „OK“в изскачащия прозорец и след това върху „Край“.

На „Стъпки за опаковане“отидете на „Преглед и пакет“и изберете „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“отворете падащото меню за „AXI Non Secure Enablement“и проверете „M AXI GP0 интерфейс“.

След това под „MIO Configuration“отворете падащото меню за „Application Processor Unit“и проверете „Timer 0“и „Watchdog“.

И накрая, под „Clock Configuration“отворете падащото меню за „PL Fabric Clocks“и проверете „FCLK_CLK0“и на 100 MHz.

Стъпка 4: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

Добавете два GPIO блока към дизайна на блока. GPIO ще се използват за управление на пикселния адрес и RGB компонентите на пикселите. Конфигурирайте блоковете, както е показано на изображенията по -горе. След като добавите и конфигурирате двата блока, кликнете върху „Стартиране на автоматизацията на връзката“.

GPIO 0 - Канал 1 контролира адреса на пиксела, а канал 2 контролира червения цвят.

GPIO 1 - Канал 1 контролира зеления цвят, а канал 2 контролира синия цвят.

Стъпка 5: Блокирайте паметта

Блокиране на паметта
Блокиране на паметта
Блокиране на паметта
Блокиране на паметта
Блокиране на паметта
Блокиране на паметта

Добавете IP генератор на блокова памет към дизайна на блока и конфигурирайте, както е показано по -горе. Цветовете на пикселите се записват в адресите на паметта, които след това се четат от VGA драйвера. Адресният ред трябва да съответства на количеството пиксели, които се използват, така че трябва да е 16 бита. Данните също са 16 бита, тъй като има 16 цветни бита. Ние не се интересуваме от четенето на битове за потвърждение.

Стъпка 6: Друг IP

Приложеният pdf показва завършения блок дизайн. Добавете липсващия IP и завършете връзките. Също така "Направете външни" за цветните изходи VGA и вертикалните и хоризонталните изходи за синхронизация.

xlconcat_0 - Свързва отделните цветове, за да образува един 16 -битов RGB сигнал, който се подава в блоковата RAM.

xlconcat_1 - Свързва сигналите на колоната и реда от VGA драйвера и се подава в порт B на блоковата RAM. Това позволява на VGA драйвера да чете стойностите на цветовете на пикселите.

VDD - Константа HIGH, свързана с възможността за запис на блоковата RAM, така че винаги да имаме право до нея.

xlslice_0, 1, 2 - Срезовете се използват за разбиване на RGB сигнала в отделни R, G и B сигнали, които могат да се подават във VGA драйвера.

След като дизайнът на блока приключи, генерирайте HDL обвивка и добавете файла с ограничения.

*Block Design се основава на урока, написан от benlin1994*

Стъпка 7: SDK

Кодът, който изпълнява този блок дизайн, е включен по -долу. Init.c съдържа функциите, които обработват чертежа (прогнози, числа, символ на степента и т.н.). Основният цикъл в main.c е това, което се изпълнява, когато платката е програмирана. Този цикъл задава прогнозни и температурни стойности и след това извиква функциите за теглене в init.c. В момента той преглежда всичките седем прогнози и се показва една след друга. Препоръчително е да добавите точка на прекъсване на ред 239, за да можете да видите всяко изображение. Кодът е коментиран и ще ви даде повече информация.

Стъпка 8: Заключение

За да се подобри текущият проект, може да се качват изображения с предварително зареждане под формата на COE файлове в блокове за генератор на памет. Така че вместо да изготвяме прогнозите ръчно, както направихме в C кода, може да се прочетат изображенията. Опитахме се да направим това, но не успяхме да работи. Успяхме да прочетем стойностите на пикселите и да ги изведем, но създадохме разхвърляни изображения, които не приличаха на тези, които качихме в RAM. Информационният лист за генератора на блокова памет е полезен за четене.

Проектът е по същество наполовина интелигентно огледало, тъй като липсва аспектът на интернет свързаност. Добавянето на това ще даде пълно Smart Mirror.

Препоръчано: