Как подключить матрицу от ноутбука к ардуино

Обновлено: 05.07.2024

Рассмотрим подключение Arduino к VGA монитору. Схема подключения очень простая и содержит всего 3 резистора. Выводить можно не только основные RGB цвета, но и оттенки. Качество картинки на уровне игрушек 90 годов.

Как и обещал, показываю как подключить Arduino к VGA монитору. Это продолжение вот этого урока, где я подключал к монитору плату ESP 8266.
С подключением не должно возникнуть никаких проблем. Оно очень простое. Чуть больше резисторов чем в прошлом примере, а точнее на два. На схеме указано что резисторы идущие от вертикальной и горизонтальной синхронизации должны быть 68 Ом, но у меня таких не было, поэтому я поставил по 100 Ом.
Значение остальных резисторов тоже выше, это потому что напряжение в Ардуино 5 вольт, против 3.3 вольт у ESP.

Это небольшой отрывок примера из библиотеки с подключенной Ардуино NANO. Можно было бы подключить и UNO без разницы.
Как можно увидеть, что разрешение экрана совсем маленькое и поэтому всё смотрится не очень хорошо. Да чего я говорю. Смотрится очень плохо. Как будто откатились лет на 20.
В конце, для сравнения, я выведу на экран демо примеры с подключенными Ардуино NANO и Ардуино MEGA.
Качество при работе с Мега не на много лучше.

Вот посмотрите таблицу.

  • ESP - 512x480px
  • UNO - 192x80px
  • MEGA - 200x240px | 200x80px


Как видите, что если на ESP ещё можно думать о каком-то качестве, то с UNO или NANO без вариантов. К тому же только библиотека и небольшой пример съедает 95 процентов памяти. С Mega получше, но использовать мегу, для этого просто бессмысленно.
Так что если и использовать подключение к VGA монитору, то только с ESP или объединять несколько плат Ардуино. Одну для подключения к монитору, а другие для работы с датчиками.

Теперь давайте посмотрим как это всё собрать.

Вот картинки из документации к библиотеке. Здесь схемы подключения к Ардуино УНО и Ардуино Мега.
Все примеры из библиотеки работают с процессорами ATMega328 MCU (или выше) и не работает с ATTINY или ATMega168.
Как я уже говорил что разрешение можно получить с подключенной УНО 192x80px, а с MEGA 200x240px
Каждый пиксель может иметь всего 2 цвета.

Вывести можно только 2 цвета чёрный и основной. Основной – это тот цвет который подключен к к контакту 1 TX. И он может быть красным, зелёным или синим.
Для дополнительный цветов надо подключить два дополнительных провода к контактам 6 и 7 в УНО или 30 и 31 в МЕГА.

Теперь посмотрим как надо разделывать кабель. Цвета жил могут отличаться, поэтому надо обязательно прозванивать контакты. Основные провода отвечающие за RGB цвета более толстые и находятся в экране.
Все экраны надо соединить вместе и подключить к земле. Так же к земле надо подключить 5 и 10 контакт вилки кабеля.
У меня конечный результат получился вот такой.

Теперь загрузим скетч демо примера и выведем одновременно работающие Ардуино НАНО и МЕГА.
Это видео получилось небольшое, Так как это просто знакомство с новыми возможностями подключения Ардуино и вывод данных на VGA монитор.
Что я понял после тестирования подключений ESP и ARDUINO.
Ни один не другой пример в таком виде для дальнейшего использования не пригоден. Но я не потерял надежду на использование не традиционных вариантов вывода информации. На очереди вывод на телевизор. И я надеюсь, что там мне и вам конечно же, повезёт больше.
Что то я скатился на совсем коротенькие видео. Как вам такие коротыши?


Адаптеры интерфейса LVDS в наше время не редкость. Они позволяют превратить отдельно лежащую матрицу в работоспособный дисплей или вернуть к жизни монитор с отказавшим скалером. Матрицы бывают очень разные, поэтому адаптеры обычно надо прошивать под конкретную матрицу. Это затрудняет их использование, потому что подбор прошивки неочевиден, а сама процедура не всегда обходится без программатора.
В сегодняшнем обзоре — адаптер, который обходится без таких сложностей. Его настройка сводится к установке нескольких перемычек на плате.
Пример использования и некоторые трудности, с которыми при этом можно столкнуться — под катом.
Итак, Вы обнаружили одинокую LCD матрицу.

С чего бы начать процесс изготовления дисплея на её основе?
Естественно, с поиска документации.

Переворачиваем матрицу экраном вниз, вбиваем найденное на этикетке наименование в Гугл и внимательно читаем даташит.
В первую очередь нас интересует пункт «Features» раздела «General descriptions».

Помимо всего прочего там будет описан используемый LCD матрицей тип интерфейса. Здесь возможны варианты.
1. TTL интерфейс. Матрица когда-то стояла в очень древнем мониторе или ноутбуке. Единого стандарта не существует — плата управления проектировалась под конкретную матрицу. Использовать по назначению не получится, единственное, что можно в этом случае сделать — продать на барахолке. Возможно, кому-то этот артефакт и пригодится.
2. TMDS интерфейс. Матрицы с таким интерфейсом, насколько мне известно, использовались в Apple iMac G4, iMac G5 и ранних iMac Pro. Адаптер интерфейса не нужен — к DVI или HDMI такая матрица может подключаться напрямую.
3. eDP интерфейс. Матрицы от новых ноутбуков, Macbook Pro и iPad. К DisplayPort можно подключить через пассивный переходник, ко всему остальному — через активный конвертер стоимостью порядка $100.
4. LVDS интерфейс. Подавляющее большинство бывших в употреблении матриц от ноутбуков и мониторов. Подключаются без особых сложностей, адаптеры LVDS есть на любой вкус и кошелёк. Самые простые и дешёвые обрабатывают только VGA сигнал, те, что подороже, могут и DVI/HDMI переварить, и фильм с флэшки воспроизвести. Основной проблемой будет кабель между адаптером и матрицей. В общем, наш случай.

Начинаем приводить устройство в приличный вид.
Сначала возьмём и отрежем от платы управления подсветкой лишний текстолит, а то она на место старого инвертора не лезет.

На красном 6-контактном разъёме платы адаптера есть пара штырей, обозначенных BL и ADJ. с точки зрения логики на контакте BL должен поддерживаться высокий логический уровень во время работы адаптера, а на ADJ зависящие от установленного в меню уровня яркости сигнал PWM или постоянное напряжение. В реальности же на ADJ всегда при поданном на адаптер питании присутствует 3,3В, на BL на время работы появляется 5В, а яркость регулируется средствами матрицы, поэтому контакты LED_EN и LED_PWM на плате управления подсветкой можно соединить вместе. Нагрузочной способности вывода BL адаптера при этом не хватает, поэтому для выработки сигнала управления подсветкой пришлось использовать эмиттерный повторитель с делителем напряжения в качестве нагрузки.
После этого плату подсветки можно изолировать, а провода в жгуте к кнопочной панели заменить на МГТФ 0,12.

На данном этапе изделие выглядит следующим образом:

Вывод: адаптер вполне работоспособен и легко настраивается. Если не смущает отсутствие цифровых входов и несколько странная логика управления подсветкой — вполне можно покупать. В качестве тестера ЖК матриц за свою цену адаптер почти идеален.

VGA это сокращение от Video Graphics Array, протокола отображения видео, который часто встречается в мире электроники. В VGA используется одна "частота следования пикселей" и установленная частота вывода видео данных горизонтально, строка за строкой, пока весь кадр не будет отображен, а потом всё начинается снова.

В прошлом я построил много проектов основанных на VGA, но никогда не использовал его с Arduino, поэтому в этом проекте мы будем использовать платформу Arduino UNO для имитации VGA сигнала при помощи непосредственно С кода. Это абсолютно не похоже на то, как это реализовано в видеокартах, но это интересная задача, чтобы увидеть, на сколько хорошо мы знаем и понимаем Arduino и AVR микроконтроллеры, а также VGA протокол. Работа устройства показана на видео.

VGA на Arduino

Цель и обзор этого проекта

Целью данного проекта является использование Arduino UNO для вывода стандартного изображения с красным, зеленым и синим цветом на компьютерный VGA монитор. Кроме Arduino UNO я использовал небольшую плату с VGA разъемом, которую я сделал для своего предыдущего проекта «Видеокарта для мазохиста», чтобы легче подключать монитор.

Для того, чтобы вывести красный, зеленый и синий цвета на компьютерный VGA монитор, мы должны договориться о разрешении, которое мы будем пытаться имитировать. Например, 800x600 удобно, т.к. используются целые круглые числа, и частота следования пикселей составляет 40МГц. И можно имитировать VGA разрешение 800x600 и выводить 200 линий красного, 200 линий зеленого и 200 линий синего цветов. Поскольку Arduino UNO работает на частоте 16МГц, невозможно получить доступ к каждому пикселю, поэтому мы будем выводить целиком линии.

Элементы:
Arduino UNO
Плата с VGA разъемом
Перемычки (провода)
Компьютерный VGA монитор
Разъем для батареи +9В
Разъем для батарей

Подробный список элементов

Все элементы, используемые в этом проекте перечислены выше, но основные элементы описаны более подробно.

Arduino UNO
Arduino Uno это микроконтроллер, который делает всю работу в этом проекте, выполняет наш код и выдает VGA сигналы, соответствующие тому, что мы хотим вывести на монитор без особых проблем.

Плата с VGA разъемом
Эта плата изначально была сделана для моего проекта Видеокарта для мазохиста, чтобы легко подключать монитор, но я пишу всё больше и больше статьей на тему VGA, поэтому он чрезвычайно полезен.

Плата с VGA разъемом

Перемычки
Обычные перемычки. Мы будем использовать их для подключения Arduino к VGA монитор. Также можно использовать провода со штырьками или крокодильчиками.

Обзор схемы

Это один из тех случаев, когда схема проекта очень мала, потому что большая часть работы происходит в программе. Несколько необходимых соединений показаны на схеме.

Arduino и VGA

Особенности схемы

RGB соединения
В VGA используется смешивание красного зеленого и синего цветов для получения всех цветов радуги. Параметры на каждом из этих контактов показывают монитору, насколько интенсивно должен гореть этот цвет. Мы не регулируем интенсивность цвета, поэтому у нас всегда для каждого из цветов 100% красного, 100% зеленого или 100% синего.

Hsync и Vsync соединения
Для того чтобы знать, какая линия сейчас отображается и завершен ли кадр, используется два сигнала синхронизации: ​​горизонтальная синхронизация H-SYNC и вертикальная синхронизация V-SYNC. Это самые важные сигналы, и если их тайминги будут нарушены, то VGA выход не будет работать как надо.

GND соединения
В VGA разъеме есть много GND выводов для разработчиков, чтобы сделать профессиональный VGA контроллер. Но для того, что мы делаем, нужно всего лишь подключить GND к 5 контакту. Всё!

Основы теории VGA

В спецификации VGA описывается отображение цветовых данных, горизонтальной и вертикальной синхронизации, и об определенном времени на каждое действие, которое нельзя пропускать.
Arduino UNO тактируется кварцевым генератором 16МГц и одна инструкция выполняться за один цикл, что означает, что каждая инструкция в нашей программе будет выполняться точно за (1/16000000) секунды или примерно 62,5 наносекунды.

VGA 800х600

Так как каждая инструкция выполняется 62,5 наносекунды, и мы должны проводить синхронизацию в определенное время, важно, что каждое время с картинки выше делиться на 62,5 наносекунды, а это значит, что мы можем использовать инструкции с задержкой, чтобы получить идеальное время для синхронизации.

VGA 800х600

При использовании 800x600VGA, каждая строка заканчивается горизонтальным импульсом синхронизации, который сообщает монитору данные следующей строки. После синхронизации 601 линии, монитор ожидает импульс вертикальной синхронизации продолжительностью 4 линии. В этот момент есть пауза в 23 линии. Благодаря вертикальной синхронизации и задней площадки строчного гасящего импульса, линии отображаются, но информация о цвете не используется.

Аппаратная часть

Это наверно одна из самых простых собранных схем, о которых я писал. Берите Arduino UNO, перемычки и VGA разъем и начинайте сборку!

Сборка схемы
На фотографии вы можете видеть все детали, необходимые для сборки схемы, приведенной ранее. Сначала подключите GND к 5 контакту VGA разъема. Потом подключите контакты красного, зеленого и синего цветов. Наконец, соединения Hsync и Vsync выполнены, и монитор может понять, в каком разрешении и в какой момент вы хотите отобразить что то на нём. Я использую плату от своего предыдущего проекта. О её изготовлении можно узнать здесь.

Сборка схемы

Аппаратная часть готова. Давайте перейдем к программной части и посмотрим, как всё это реализовано.

Программная часть

Есть две основных части кода, которые вы увидите, объяснить и подробно описаны ниже:
- Цвет для циклов + Hsync
- Вертикальная синхронизация

3 цикла используются для создания трех различных цветов, которые отображаются на экране. Вот выдержка из кода для генерации 200 линий красного цвета. Время указано в комментариях, и вы можете легко увидеть соответствие.

В следующем отрывке кода видно, что вертикальная синхронизация выглядит почти так же, как вывод обычных горизонтальных линий. Разница в том, что вместо того, что бы считаться в пикселях, как Hsync (128 пикселей), вертикальная синхронизация считается в линиях (4 линии).

Это основная часть кода, но его больше, и вы можете ознакомиться с ним, скачав исходник. Мы написали программу, собрали аппаратную часть, и теперь пришло время проверить устройство и посмотреть на его работу!

Результат работы и примечания

На видео показан вывод VGA сигнала с Arduino UNO на компьютерный VGA монитор. Никаких уловок и трюков, просто работа программы, и сигналы синхронизации.

Красный, зеленый и синий цвета появляются на мониторе сразу после включения питания без искажений. Надеюсь, этого достаточно, чтобы убедить вас, что эта система действительно работает, и мы выводим VGA 800x600 @ 60 Гц.

Обзор VGA на основе Arduino

Как вы уже поняли, VGA довольно трудно выводить при помощи Arduino в разрешении 800x600, а получение полноценной картинки используя только Arduino в принципе невозможно, но мы используем гибкость VGA в нашу пользу и выводим упрощенные вещи. На экран выводятся красный, зеленый и синий цвета, доказывая, что мы можем выводить упрощенный VGA.

Что теперь делать?
Я не рекомендовал бы тратить слишком много времени на вывод VGA сигналов при помощи Arduino, так как это получается намного сложнее из-за требований к таймингам. В конечном счете вы, вероятно, разочаруетесь в этом методе. Есть много VGA контроллеров, с которыми Arduino может взаимодействовать, что сильно упрощает вывод вещей на VGA монитор. Я уверен, что есть Arduino shield, дающий такую возможность.

Заключение
Если мы перечитаем цели данной статьи, то мы поймем, что у нас всё получилось. Три цвета на экране, как и ожидалось. Программа была довольно сложной, но реализуемой. Однако, динамический VGA выход намного интереснее.

Делаем монитор и телевизор из старого планшета при помощи скалера LVDS

Доброго времени суток! Сегодня я вам расскажу как при помощи одной посылочки из Китая и хлама который валяется у вас дома сделать телевизор, ну или по крайней мере монитор. Дело в том, что у многих, наверное, валяются еще древние ноутбуки, какие-то испорченные мониторы, нерабочие планшеты и все это можно пустить в ход. Ну да отдельно матрицу подключить нельзя, но с помощью нехитрого устройства, а именно универсального скалера, можно подключить любую матрицу к HDMI, VGA или даже сделать телевизор.

И так, что мы имеем.

Я заказал себе довольно такой продвинутый скалер.

Делаем монитор и телевизор из старого планшета при помощи скалера LVDS

И попался под руку вот такой планшет, он еще живой хотя уже и битый сенсор, батарея не так хорошо держит, весь поцарапанный, но матрицу из него можно позаимствовать.

Планшет

Разбираем планшет, чтоб получить доступ к матрице.

Разборка

Отключаем все шлейфы и отбрасываем в сторону все, кроме матрицы.

Отключаем

Матрицы имеют довольно стандартное подключение, в них интерфейс LVDS и стандартизированный ряд разъёмов. Какой разъем у вашей матрицы можете посмотреть по внешнему виду либо же по даташиту. На каждый тип матрицы существует отдельный шлейф. Например у меня есть несколько шлейфов.

Более старый стандарт, от матриц с ламповой подсветкой

Более старый стандарт, от матриц с ламповой подсветкой

Более новый стандарт, от матриц с светодиодной подсветкой

Более новый стандарт, от матриц с светодиодной подсветкой

Шлейф для более мелких планшетов

Шлейф для более мелких планшетов

1 – это более старый стандарт, там где матрицы еще были с ламповой подсветкой.

2 – более новый стандарт, там где LED-матрицы идут.

3 – эти разъёмы встречаются в 7 дюймовых планшетах и разных небольших.

С другой стороны разъёмы более-менее стандартизированы и подходят в практически любой универсальный скалер.

Таким скалером я еще ни разу не пользовался в этом гораздо больше функций по сравнению с теми, что я использовал, даже пульт в комплекте.

Скалер

Прежде чем подключать матрицу необходимо правильно сконфигурировать плату (скалер), чтоб не испортить матрицу. Обязательно рекомендую сначала скачать даташит к матрице, чтоб вы знали, какое разрешение матрицы, какое питание логики и подсветки.

Первое с чего стоит начать, будем смотреть слева на право. На скелере есть ряд перемычек, левая верхняя конфигурирует напряжение логики, его необходимо выбрать исходя из вашей матрицы. Как правило, матрицы ноутбуков имеют питание 3.3 вольта, в обычных мониторах 5 вольт, но здесь еще есть перемычка на 12 вольт, честно говоря, я не знаю, где такое напряжение используется. Сразу меняем эту перемычку, чтобы не спалить нашу матрицу, в моем случае логика 3.3 вольта.

Перемычка

6 и 8 битные шлейфы

Шпаргалка по переключению перемычек

Таблица

Но для того чтобы матрица выжила нам еще нужно выставить правильное напряжение, листаем дальше. И вот у нас сводная таблица электрических характеристик. Logic, то есть питание логики, напряжение питания логики (Power Supply Input Voltage) от 3,0 до 3,6 вольт, типичное 3,3 вольта, соответственно перемычку питания матрицы выставляем на 3.3 вольта.

И на всякий случай смотрим подсветку, этот пункт нужно смотреть только в том случает если матрица с LED подсветкой. Как написано на плате, плата питается от 12 вольт, а наша подсветка работает от 5 до 21 вольта, 12 как раз будет в самый раз. Я других матриц не встречал у которых напряжение питания 5 вольт, но предполагаю, что такое может быть, если будете использовать матрицу из какого ни будь маленького планшета. Поэтому вот этот параметр обязательно смотрите, иначе можете просто испортить подсветку матрицы. Если же питание будет отличное от 12 вольт, то напрямую подключать разъем питание подсветки нельзя, нужно будет обеспечить нужное напряжение питания.

Таблица

Перемычки

Перемычки сконфигурировали, теперь давайте пройдемся по элементам на плате.

Элементы

2 – последовательный порт

3 – DC-DC преобразователь

4 – линейный стабилизатор

5 – разъемы (VGA, HDMI, RCA, звук и высокочастотное подключение антенны)

6 – управление подсветкой

7 – кнопки и всякое управление

8 – разъем LVDS, куда подключается матрица

11 – усилитель мощности

13 – USB-разъем, фильмы он читать не умеет, он здесь для обновления прошивки

Подробнее о разъёмах

Разъем управления подсветкой.

Если у вас LED-матрица, то есть светодиодная, то заморачиваться не стоит, у вас прямо в матрице установлен контролер управления подсветкой и этот разъем входит прямо в шлейф. Т.е. Просто подключаете матрицу и больше не над чем заморачиваться не нужно.

Если же матрица древняя на CCFL-лампах, определить это можно по дополнительным проводам выходящим из матрицы.

CCFL-лампа

В матрице могут быть установлены такие лампы и из нее выходят провода. В ноутбуках обычно выходит 1 провод, в матрице монитора 2 или 4. Для того чтобы подключить такую матрицу можно использовать универсальный инвертор для подсветки. Он бывает на 1, 2 и 4 выхода, т.е. каждый выход это подключение одной лампы. Инвертор нужно подбирать по количеству ламп в вашей матрице, то есть нельзя подключить в инвертор с 4-мя выходами только 2 лампы, так как инвертер уйдет в защиту, потому что все выходы должны быть равномерно нагружены. Поэтому если матрица на 2 лампы, покупаем инвертор на 2 выхода, если на 1 лампу, покупаем на 1 выход. Разъемы унифицированы поэтому подходят сразу 1 в 1, просто вот так втыкаются и все.

Подключение инвертора подсветки к скалеру

Подключение инвертора подсветки к скалеру

Подключение инвертора подсветки к лампам

Подключение инвертора подсветки к лампам

Приступим к подключению

Подключение

На всякий случай проверяем, подходит ли подсветка. Красный – плюс, черный – минус и единственный провод это включение подсветки. Переворачиваем плату на обратную сторону и сравниваем надписи возле контактов с проводами, если все сходится подключаем.

Подключение

Еще нам нужно какое ни будь управление. Кстати подробнее об управлении, колодка, куда я подключил ИК-приемник это управление. Сюда идут кнопки, они все подписаны, кнопки можно приобрести отдельно или подключить свои.

Подключение

В принципе это все, все что нужно подключили.

Теперь необходимо разобраться с пультом, чтоб найти меню и поменять язык. Думаю этот процесс описывать не стоит, так как у вашего скалера все может быть по другому. К сожалению, у себя я нашел только английский, но не беда, буду пользоваться ним. И на этой же вкладке настроек я нашел размер меню и увеличил его, чтоб все было лучше видно.

Меню

Ну что, попробуем подключить камеру через HDMI. В общем подключив камеру получилось, что полутона цветов отображались неправильно.

Неправильное

Я сначала подумал что сгорел буфер опорных напряжений в матрице, но подключив матрицу к планшету понял, что с матрицей все в порядке, она не сгорела. Покопавшись на просторах интернета, нашел сервисное меню. Оказывается нужно в сервисном меню изменить способ работы скалера с матрицей. Для этого заходим в меню и набираем код 8896, и нам открывается сервисное меню. В меню находим системные настройки (System setting) -> Настройки панели (Panel setting) -> и просто изменяем цветовую схему (Color set). Перебирая все варианты находим самый оптимальный, для меня это был 3. В других моделях скалеров может быть другой код доступа в сервисное меню и немного другой путь к настройкам цветовой схемы.

Матрица

Выходим из меню и видим, что все цвета отображаются правильно.

Таким же способом можно подключить матрицу от почти любого планшета или монитора.

Читайте также: