8-900-374-94-44
[email protected]
Slide Image
Меню

Vga монитор arduino: Подключение Arduino к VGA монитору. Ардуино проекты.

Содержание

Подключение Arduino к VGA монитору. Ардуино проекты.

Рассмотрим подключение 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 в МЕГА.

Теперь скачиваем VGAXUA эту библиотеку. Скачать её можно с GitHub или с моего сайта. Ссылка будет в описании. Она работает с UNO и MEGA.

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

Что то я скатился на совсем коротенькие видео. Как вам такие коротыши?

Спасибо всем кто написал комментарии к прошлому видео. Я вижу, что тема вас заинтересовала и если это наберёт так же много, то я постараюсь побыстрее снять видео о подключении к телевизору, а может и ещё что.
Ну, а если вам нравятся мои уроки, то ставьте лайк и делитесь моими видео, с другими. Это очень поможет мне в продвижении канала, а меня будет стимулировать выпускать уроки чаще и интереснее.
Вы видите ссылки на видео, которые, я думаю будут вам интересны. Перейдя на любое из этих видео вы узнаете что-то новое, а ещё поможете мне. Ведь любой ваш просмотр — это знак YOUTUBE, что это кому-то интересно и что его надо показывать чаще.
Спасибо.

А пока на этом всё.

 

8-битный компьютер с BASIC и VGA-выходом на Arduino / Хабр

C помощью Arduino можно собрать 8-битный ретро-компьютер с Basic (похожий на ZX Spectrum) с выводом цветного изображения на VGA-монитор.

Кроме того, этот проект можно использовать как простой способ вывода текстовых сообщений на монитор.

Сама по себе, идея использовать Arduino для создания компьютера с BASIC не нова, но насколько я знаю, все они не поддерживают вывод цветного изображения. В некоторых проектах использовались LCD-мониторы, а в других — библиотека TVout, которая выводит чёрно-белое изображение. Кроме того, многие из этих проектов требуют дополнительные модули и специальные платы расширения. Тут же нужно всего-то иметь два Arduino, несколько резисторов, плюс разъёмы для PS/2 клавиатуры и VGA-монитора.

Для проекта нужно две платы Arduino: один будет основным (или «мастером»), в нём работает интерпретатор Tiny Basic Plus (это порт Tiny Basic на языке Си, адаптированный для поддержки Arduino). Также этот Arduino управляет PS/2 клавиатурой. Вывод из первого Arduino через последовательный порт отправляется на второй Arduino, который с помощью библиотеки

VGAx генерирует VGA-сигнал.

Программу на языке BASIC в собранный нами компьютер можно будет ввести с помощью PS/2 клавиатуры, а результат можно будет посмотреть на VGA-мониторе: разрешение получившегося изображения 24 столбца на 10 строк, размер символов — 5х6 пикселей, доступно 4 цвета.
После введения программы, её можно будет сохранить в энергонезависимой памяти самого Arduino, а также код программы предусматривает управление I/O пинами Arduino.

1. Подключаем основной Arduino с интерпритатором TinyBasic и с PS/2 клавиатурой

TinyBasic Plus и библиотека VGAx работают с Arduino IDE 1.6.4.
Если у вас уже установлена более новая версия, то лучшее решение — загрузить эту версию с официального сайта в формате .zip, и распаковать в отдельную папку. Здесь можно загрузить эту версию для Windows.

Потом нам понадобится библиотека PS2keyboard, её можно загрузить отсюда. После скачивания просто распакуйте архив, и скопируйте его содержимое в «arduino-1.6.4\libraries».

Дальше, загрузите файл TinyBasicPlus_PS2_VGAx.ino, и прошейте его в основной Arduino.
Это версия обычного TinyBasic Plus, где была добавлена поддержка библиотеки PS/2.

Больше информации о TiniBasic Plus и руководства (на английском языке) можно найти тут.

Если на этом этапе нет проблем (в том числе, проблем с совместимостью), то Tiny Basic будет автоматически запущен при включении Arduino. И его можно будет протестировать с помощью последовательного порта на вашем ПК. Для этих целей я использую PuTTY, но вы можете использовать и другую подобную программу, по вашему вкусу.

В настройках нужно правильно установить COM-порт (тот же, что используется в Arduino), и скорость передачи = 4800.

И тут уже можно протестировать нашу систему, набрав какую-нибудь программу на Basic с клавиатуры вашего ПК (позже мы подключим PS/2 клавиатуру напрямую к Arduino).

Для примера, можно набрать:

10 PRINT "Hello, World!"
20 GOTO 10
RUN

Прервать бесконечный цикл этой программы можно с помощью комбинации клавиш Ctrl+C (это не сработает, если мы будем делать это с клавиатуры PS/2).

Теперь подключим PS/2 клавиатуру.

2. Подключаем PS/2 клавиатуру к основному Arduino

Информация и библиотека были взяты из этого материала.

По существу, вам нужно соединить следующие четыре контакта:

Data клавиатуры к Arduino pin 8,
IRQ (clock) клавиатуры к Arduino pin 3;
а также подключить землю (GND) и питание +5V, соответственно.

Я использовал PS/2 разъём cо старой нерабочей материнской платы, его можно легко сдуть с помощью фена.

Распиновка PS/2 разъема есть на рисунке:

3. Загружаем библиотеку

VGAx и код во второй Arduino, и соединяем его с основным

Для начала, загрузите код VGAx-PC.ino и скопируйте его к себе на компьютер в папку с таким же именем.

Потом — загрузите с GitHub бибилиотеку VGAx. Её нужно поместить в подпапку «libraries» Arduino IDE.

ВАЖНО! Эта бибилиотека работает с Arduno IDE 1.6.4 и может быть не совместима с другими, более новыми версиями.

Теперь загрузите VGAx-PC.ino во второй Arduino (я тестировал на Arduino Nano, но с Arduino Uno тоже не должно быть проблем).

Предупреждение, что мало доступной памяти — это нормально для нашего случая.

Если других ошибок нет, то всё в порядке — и можно сделать ещё пару шагов, чтобы получить свой собственный 8-битный ретро-компьютер.

Для этого нужно:

  • два Arduino Uno Rev.3, или два Arduino Nano 3.x (на основе ATmega328)
  • разъем DSUB15, т.е. гнездо VGA или кабель с таким гнездом, который не жалко отрезать
  • резисторы: 2 на 68 Ом и 2 на 470 Ом
  • разъем PS2
  • провода
  • необязательно: макетная плата

Осталось всё соединить по схеме на рисунке, и наш 8-битный компьютер готов!

Видео, как это всё работает:

Создание цветного VGA-видео 640×480 с Arduino

Большинство существующих 8-битных AVR (включая Arduino Nano этого проекта) по умолчанию работают на максимальной частоте 16 МГц. Это 16 000 000 вычислений в секунду… респектабельное число для большинства встроенных приложений.

Стандарт видео VGA, который является отраслевым стандартом по умолчанию «мы всегда можем вернуться к этому», составляет 640 пикселей в ширину, 480 пикселей в высоту и 60 кадров в секунду.

Этот стандарт требует синхронизации пикселей на частоте 25,175 МГц:

25 175 000 > 16 000 000.

Генерация Full VGA видео с Arduino

Тактовая частота была лишь одним из препятствий для осуществления этого (глупого) проекта.

А с помощью хака с удвоением тактовой частоты, который я задокументировал, возможно более высокое разрешение без разгона Arduino. Вы можете достичь примерно 800×600 в 4-битном цвете с частями 16 МГц и 1024×768 в 4-битном цвете для частей с тактовой частотой 20 МГц.

(Если вы готовы отказаться от 2- или 1-битного цвета и потратить кучу денег на микросхемы, которые могут работать с еще более быстрыми тактовыми частотами, вы можете выбрать разрешение HD. Вы столкнетесь с финансовыми ограничениями, прежде чем максимально использовать техническую сторону. )

Каким было предыдущее максимальное разрешение VGA на Arduino?

При жестком кодировании вы можете получить около 512 пикселей в ширину на 20 МГц или около 400 пикселей в ширину на 16 МГц. Эта математика проста: (20/25,175 * 640) или (16/25,175) * 640 на один пиксель за такт.

Моя цель состояла в том, чтобы создать «полноэкранное» видео Arduino VGA. Цвет тоже, чтобы шиповать футбол.

Примечание по видеотехнологиям: человека взломали цветное NTSC-видео из Arduinos, но, как правило, сделали это, только изменив часы на кристаллы 14,31818 МГц. Совместимость с телевизором великолепна, но я ориентировался на VGA и его простые дискретные выходы для красного, зеленого и синего цветов, сохраняя стандартную тактовую частоту 16 МГц.

А какие у вас были цели?

Мои требования к этому проекту:

  • Полноэкранное видео (>= 640 пикселей в ширину) от Arduino
  • Цвет
  • Используйте только имеющиеся у меня детали /PAL/PLA/Что там еще)
  • Без разгона !

Спецификация и схема для 640×480 VGA на Arduino

В своей первоначальной сборке я использовал 6 микросхем, 10 резисторов, один порт VGA и связку перемычек. Первые четыре части относятся к схеме часов, которую я обсуждал на прошлой неделе. И да, я смешиваю логические семьи:

  • HD74LS04P — Не ворота. Используется как Задержка
  • HD74LS08P — И Гейт. Половина XOR
  • HD74LS32P — Или ворота. XOR другая половина
  • SN74F10N – Быстрые вентили Nand с 3 входами. Очистите уродливые часы от взломанного XOR, также используемого как инвертор
  • DM74LS244N — 3 Буфер состояния/линейный драйвер/линейный приемник. Контролируйте, какой из двух пикселей находится на выходной шине.
  • SN74LS373N — 8 защелок типа D. Наш цифровой семплер/выход на резисторы и синхронизатор.
  • Порт VGA — См. сайт Ника Гэммона, как подключить это.
  • Резисторы ~68 Ом. Сигналы синхронизации.
  • Резисторы ~470 Ом. сигналов R/G/B.

Замены в порядке , просто сохраняйте задержку распространения частей менее 32 нс, чтобы вы могли зафиксировать время (если вы сделаете мой взлом часов, вероятно, 20 нс из-за странного рабочего цикла) или около того.

Нажмите, чтобы увеличить
A Примечание/Отказ от ответственности:  Я не гарантирую, что это абсолютно правильно, и что я даже правильно перенес его из моей рабочей копии. Возможно, я неправильно транспонировал, даже не доверяйте картинке на 100%. Прежде чем включить это, проверьте правильность моих соединений, правильность ваших соединений и вы понимаете, что происходит.
DQYDJ не несет ответственности, если вы сломаете какое-либо оборудование, используя эту схему!

Обновленный, улучшенный перечень материалов

Я купил несколько компонентов и удалил два кремниевых элемента из исходной сборки. Если вы создадите эту уменьшенную версию, сам код не изменится.

( Примечание : лучше начать с генератора на 32 МГц и разделить тактовую частоту на 2, чтобы управлять Arduino, чем использовать мой хак для удвоения тактовой частоты. Это сократит ваш счет IC на 2-3!)

Обязательно добавьте резисторы на 470 Ом для красного/зеленого/синего и резисторы на 68 Ом для VSYNC/HSYNC — они не показаны на схеме!

  • 470 Ом резисторов для R/G/B
  • 68 ОМ резисторы для HSYNC/VSYNC
  • 74LS04P — Схема задержки для составления 32 MHZ CHOLC предыдущая защелка/трансивер
  • 74F86N — XOR Gate, заменяет тот, который я построил выше из вентилей And/Or/Not (отсутствует метка — это IC2)
Нажмите, чтобы увеличить

Как вы достигли 640×480 с частью 16 МГц?

Нажмите, чтобы увеличить

Во-первых, я хотел бы поблагодарить трех человек за то, что вдохновили меня на этот проект. Ник Гэммон — первый — его VGA-библиотека стала отправной точкой для этого успешного проекта, и для этой демонстрации требуется его библиотека синхронизации. Его таймеры значительно упростили запись прерываний, необходимых для этого проекта. Его электрические схемы и начальная кодовая база были неоценимы для проверки работоспособности моих ранних прототипов.

Во-вторых, мы должны поблагодарить Хеннинга Карлсена, у которого были отличные шрифты 16×16, доступные для легкого использования в проектах микроконтроллеров. Пожалуйста, ознакомьтесь с его проектами, особенно его проектами, связанными с UTFT, с ресурсами для последовательных дисплеев. Мой генератор сообщений использует один из его шрифтов.

В-третьих, Линусу Акессону (также известному как lft ), который в 2008 году вырезал цветное видео VGA из похожей части. (Его сайт здесь). Вдохновляющий!

Как добиться более высокой частоты пикселей, чем базовая тактовая частота

На самом базовом уровне я рассматривал 8-битный микроконтроллер как два чередующихся 4-битных микроконтроллера , разделяя его вывод на две логических частей за цикл.

Для этой демонстрации у меня было два разных набора красных, зеленых и синих цветов, расположенных так, как вы видите рядом. Вот расположение выводов моего Arduino:

Контакт D7: Красный 1
Контакт D6: Зеленый 1
Контакт D5: Синий 1
Контакт D4: Красный 2
Контакт D3: HSync
Контакт D2: Зеленый 2
Контакт D1 (Tx): Н/З
Контакт D0 (Rx): Blue 2

… это все на порту AVR D.

Как только я получил тактовую частоту 32 МГц, о которой я говорил в своем посте по удвоению тактовой частоты, проект был реализован быстро. Тактовая частота 32 МГц поступает на контакт Latch Enable Pin (11) LS373 . Включение привязано к земле (всегда включено), фактически фиксируя выходы 373 на любое значение, которое представляется каждые 32 нс.

244N использует стандартную тактовую частоту 16 МГц, плюс — тактовую частоту, сдвинутую по фазе на 180 градусов, при этом сам подключен к обоим активациям.

Противофаза означает, что один тактовый сигнал высокий, а другой низкий. Таким образом, на 373N пропускается только один пиксель… и таким образом вы представляете ~810 сэмплов на монитор, тогда как раньше вы могли сделать только половину этого.

Я очистил 640 образцов с большой передышкой.

Упрощение видеосхемы

При отказе от цветопередачи (защелки) можно использовать часы и перевернутые часы в активацию на DM74LS244N — 2 микросхемы.

Некоторых людей будет беспокоить незначительное вздутие чипов на доске. Вы можете получить тактовую частоту 32 МГц с внешним кристаллом и разделить ее на тактовую частоту 16 МГц для Arduino (таким образом, устранив 3 микросхемы).

Я немного подумал об этом, и я не могу придумать способ тактирования более одного пикселя за такт на частоте 25 МГц без какой-то вид помощи активного компонента. (Но, пожалуйста, свяжитесь со мной, если у вас есть способ!)

Можете ли вы избавиться от интегральных схем?

Да, можно было бы избавиться от защелки и буфера и перейти на транзистор только установка .

Я попытался продемонстрировать это с обычными NPN и PNP — 2222s и 3904s и 3906s — но у них нет необходимой скорости переключения. У меня нет более высокоскоростных транзисторов, но я был бы рад, если бы кто-нибудь попытался сделать это с чем-то более быстрым. Я думаю:

2 транзистора на шину для R/G/B, один активный высокий и один активный низкий, затем резисторы 470 Ом в порт VGA.

Если вы это сделаете, вы можете полностью отключить тактовую схему, поскольку мы будем работать на частоте 32 МГц в секунду — низкая тактовая частота И высокая тактовая частота, если ваши транзисторы достаточно быстры.

Не могли бы вы сделать это только с пассивными компонентами?

Хм, возможно, путем введения некоторых своевременных задержек с некоторой причудливой математикой и тщательно отобранными компонентами?

Не знаю, но склонен сомневаться; Я предполагаю, что вы слишком сильно ослабите сигнал, чтобы он был полезен для монитора / телевизора. Я считаю, что должен быть эквивалент кремния/кремния . Мое предположение — это минимальная схема, состоящая из 6-8 транзисторов (PNP / NPN) и нескольких резисторов.

(Пожалуйста, кто-нибудь, попробуйте доказать, что это не так!  Было бы здорово увидеть, как кто-то усовершенствует этот дизайн!)

Загрузите и запустите код

Извините, я похоронил это — я действительно хотел, чтобы все сначала поняли проблемы. Использование простое:

  1. Сжечь предохранитель CKOUT на вашем микроконтроллере AVR — нужно погуглить как это сделать; Я сделал это на Mac, изменив «boards.txt» и выбрав «Записать загрузчик» в Arduino IDE. Это помещает тактовую частоту 16 МГц на контакт D8 для Nano.
  2. Затем возьмите библиотеки таймеров Ника Гэммона.
  3. В-третьих, загрузите наш код, который запускает демонстрацию для приведенного ниже видео, отсюда: Full640x480Video (zip)
  4. Подключите схему — убедитесь, что вы нашли способ получить удвоенные часы. Мы предлагаем PLL или использовать более высокие часы для начала, а затем разделить их для использования Arduino. Вы всегда можете сделать что-то вроде моей схемы удвоения часов, но, пожалуйста, пожалуйста сделай лучше.

Хотите отредактировать текст, сделав его значимым для вас?

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

Нажмите здесь, чтобы попробовать — вам просто нужно скопировать/вставить вывод в файл fontLines16.h и fontLines16_2.h и перезаписать все, что там есть, чтобы увидеть переход сообщения.

(Кроме того, это Javascript, компилирующий C, который вы скопируете и вставите в среду разработки Arduino IDE, работающую на Java, которая скомпилируется в сборку AVR . 🤯)

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

Поскольку вы терпеливо ждали, давайте покажем демо. Мы демонстрируем все 8 цветов — каждый в рядах высотой 10 пикселей, 14-цветную видеорадугу, созданную путем смешивания пикселей, затем несколько (уродливых, с ошибкой синхронизации 27 %) надписей, затем 10 строк синхронизации 640 пикселей красный/белый смешанный, затем синий/белый смешанный.

Полный VGA на демо-версии Arduino!

//www.youtube.com/embed/nmdvhgbsglQ?rel=0

Вот плотная обрезка, чтобы вы могли видеть, что я на самом деле создаю радужный узор шириной 640+ пикселей (спасибо за здоровый скептицизм!):

Полный набор цветных полос от Arduino (Щелкните, чтобы открыть всю ширину)

Если вы все еще не верите, что это возможно (вам должно быть весело на вечеринках!):

  1. Всплывающий список 8-битных инструкций AVR.
  2. Поиск инструкции ‘OUT’. Обратите внимание, что это инструкция с одним тактовым сигналом (16 МГц).
  3. Обратите внимание, что мы рассматриваем для каждого ‘OUT’ как 2 пикселя , используя наше внешнее оборудование (2x16MHz = 32 MHz, , что больше , чем 25,175)

Если вы посмотрите на код, созданный нашей сборкой похоже на целую кучу этого:

  •   // PORTD = B01010100; <--- 010 Зеленый на одном пикселе, 110 Желтый на соседнем
    4c2:    9b b9           out    0x0b, r25    ; 11

С какими проблемами вы столкнулись при использовании Arduino Full VGA?

Просто: образцы, образцы везде . Ошибки на ошибках!

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

Самая большая проблема заключается в том, что мы сейчас переводим «»»32 МГц»»» в стандартную частоту 25,175 МГц. Это не было проблемой, когда люди производили на меньше пикселей, чем 640 (вам гарантировалось, что хотя бы один из ваших пикселей будет сэмплирован). На 32 МГц вы на самом деле потерять данные с цифровым монитором.

Это также достаточно далеко, чтобы вы могли получить странные артефакты… посмотрите на это видео еще раз.

Ошибка огромная: 32/25.175 =~27% ошибок! Можно с уверенностью сказать, что проблема возникает через каждые 3-4 пикселя: монитор будет сэмплировать, пока изменяется защелка, или поймать ее во время ее распространения (от низкого к высокому или от высокого к низкому — это не мгновенно 5v или 0v) и визуализировать цвет темнее, чем мы хотели. Короче говоря: не должно быть вертикальных линий горизонтальных полос сплошного цвета в моем видео.

Третий фактор — технологический — монитор сэмплирует наши дрожащие 32МГц хакнутые часы на частоте 25.175МГц, пытаясь получить 640х480.

Сам монитор? Он рассчитан на разрешение 1920×1080.

Для этого конкретного монитора это не проблема, потому что я могу заставить его отображать двойные пиксели с разрешением 1280×960 и почтовым ящиком по бокам. Но все же, конечно, увеличение пикселей означает, что вы увеличиваете масштаб проблемы, в то время как монитор применяет свои собственные алгоритмы сглаживания.

Итак… ошибки поверх ошибок поверх ошибок.

Как можно улучшить этот проект?

Во-первых… и просто: сделайте более чистые часы. Лучше всего тактировать Arduino на частоте 12,5875 МГц. Второй лучший, должен быть нацелен на более высокую тактовую частоту . Это может быть либо с «нестандартными стандартами» VESA, либо с другими принятыми таймингами (которые не , а 640×480@60 — это золотой стандарт). Например, для 640×480 при 73 кадрах в секунду требуется тактовая частота 31,5 МГц — это всего лишь 1,59 МГц.% ошибка. (Значительная очистка от 27%.) Вы также можете использовать тайминги VESA, ориентированные на 32 МГц — YMMV, и вам придется прочитать спецификации на вашем целевом мониторе.

Во-вторых, вы можете улучшить цвет с помощью четвертого бита цвета для каждого пикселя (помните, мы разделили наш 8-битный процессор на 2 — мы теряем немного!). Это нестандартная палитра, но RGBI выполнима. Вам просто нужно переместить один штифт синхронизации.

В-третьих, используйте внешнюю память . Единственным практическим применением этого кода является глупый взлом веб-сайта (подождите секунду…). Недостаточно оперативной памяти для хранения информации о дискретных пикселях для разрешения 640×480, а самомодифицирующийся код на UC Гарвардской архитектуры, который может работать только с флэш-памяти, — это… неразумно.

Ваша очередь за Arduino VGA!

Итак, теперь получайте удовольствие от кода и схемы! Он выпущен с той же лицензией, что и код VGA Ника Гэммона.

Выйдите и сделайте что-нибудь более интересное, чем плохо сэмплированные цифровые вывески, на которых изображена радуга, а затем вернитесь и поделитесь!

  • Поделиться
  • Твитнуть
  • LinkedIn
  • Электронная почта
  • Распечатать

raspberry pi — Есть ли способ выводить изображения высокого качества на монитор с VGA с помощью Arduino?

Задавать вопрос

спросил

Изменено 1 год, 11 месяцев назад

Просмотрено 309 раз

\$\начало группы\$

Итак, у меня завалялся запасной монитор, и я хотел найти способ сделать из него слайд-шоу. У меня также есть Ардуино Уно. Мне было интересно, есть ли способ сделать несколько снимков с SD-карты (у меня есть экран SD-карты) и вывести их через Arduino на монитор. Поскольку некоторые изображения являются страницами из книги, я хочу, чтобы разрешение было достаточно высоким, чтобы текст можно было прочитать.

Это вообще возможно? Или мне следует перейти к другим вариантам, таким как Rasberry Pi?

(Я новичок на этом сайте и плохо знаю теги, если вы знаете, как их улучшить, заранее спасибо!)

\$\конечная группа\$

4

\$\начало группы\$

Для сигнала VGA требуется тактовая частота пикселей от 25 МГц (для 640×480, обновление 60 Гц) или выше в зависимости от желаемого разрешения. Типичный Ардуино 9Тактовая частота процессора 0039 составляет примерно до 20 МГц (в частности, частота Uno может достигать 20 МГц), поэтому на самом деле он не может генерировать такой сигнал без дополнительного оборудования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *