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

Данная статья поможет тем, кому необходимо использовать плату Arduino для вывода какой-либо информации на ТВ по НЧ-кабелю (в простонародии — тюльпаны). Правда изображение будет черно-белым, однако и этого будет достаточно для большинства проектов. TV-выход на ArduinoИтак, что необходимо:
— телевизор или монитор с соответствующим входом
— плата Arduino
— резистор 470 Ом
— резистор 1 кОм
— кабель, тюльпаны Также, понадобится библиотека TVout для Arduino и клонов Схема подключения ТВ к ArduinoСхема переходника простейшая. Работать с библиотекой также очень просто:

#include TVout TV; unsigned char x, y; void setup ( ) < TV.start_render( _NTSC ); >void loop ( )

А вот сайт, где Arduino используется как простейшая игровая консоль: http://nootropicdesign.com/hackvision/games.html Скачать скетч PDE Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта cxem.net) Оригинал статьи

#ArduBlock 2.0 — Подключаем телевизор к плате Arduino по AV!

  • tvout.rar (1 Кб)

Теги:

Колтыков А.В. Опубликована: 2012 г. 0 0

Вознаградить Я собрал 0 0

Оценить статью

  • Техническая грамотность

Источник: cxem.net

Arduino и TV выход

Arduino и TV выход

В этом проекте Arduino будем использовать как TV выход для вывода изображения на телевизор, при помощи библиотеки TVout. Платформа Arduino способна выводить только черно-белую картинку. Этого может оказаться достаточно для некоторых проектов и в качестве знакомства с платформой Arduino.

Похожие Arduino проекты:

  • Управление LED подсветкой ТВ пультом
  • Подключение Arduino к компьютеру и его настройка
  • Игры на Arduino

Нам понадобится

arduino-tv-out-craft

  • Плата Arduino — 1шт.
  • Резистор 470 Ом — 1шт.
  • Резистор 1кОм -1шт.
  • AV-разъём (RCA) — 1шт.
  • Мини-макетка — 1шт.

Принципиальная схема

Макет схемы TvOUT для Arduino

arduino и тв

Как подключить Arduino к телевизору

Для начала сделаем RCA переходник для подключения к AV входу телевизора. Необходимо подключить 2 резистора 1 кОм и 470 Ом к центральному контакту коннектора.

arduino-tv-out-craft-st2

Для сборки схемы я использовал мини-макетную плату, которая шла в наборе заказанного на Алиэкспресс. Рекомендую заказывать не отдельно компоненты а сразу наборы, никогда не знаешь, что может пригодится в следующем проекте.

После чего резистор 470 Ом подключить к 7 пину, чтобы подать сигнал Video. Резистор 1 кОм подключить к 9 пину Arduino, чтобы подать сигнал Sync.

arduino-tv-out-craft-st3

Корпус коннектора «тюльпан» подключаем к пину GND на плате Arduino.

arduino-tv-out-craft-st4 arduino-tv-out-craft-st5

Я сделал небольшой удлинитель из проводов папа-мама.

arduino tvout

Осталось залить скетч и подключить разъем RCA к входу AV телевизора.

библиотека tvout

Библиотека TVout для Arduino

Перед тем как писать код программы, необходимо скачать и подключить библиотеку TVout. Скачать ее можно с сайта code.google.com или в прикрепленных файлах ниже. Рекомендую скачивать последнюю библиотеку.

Скачать библиотеку TVout

Если не получается подключить библиотеку через Arduino IDE, распакуйте и поместите ее в папку документы C:UsersUserDocumentsArduinolibraries

Перед тем как писать код, рекомендую ознакомится с библиотекой.

Описание библиотеки TVout для Arduino

Описание библиотеки TVout для Arduino

Функции установки режима

Функция begin() инициализирует вывод видеосигнала (разрешение экрана по умолчанию 128×96).
Синтаксис:
TVOut.begin(mode);
TVOut.begin(mode, x, y);
Параметры:
mode – стандарт видеосигнала:
_PAL – режим PAL;
_NTSC – режим NTSC.
Возвращаемое значение:
0 – в случае удачного соединения, 4 – в случае неудачи (недостаточно памяти для буфера вывода).

Еще по теме:  Код для спутниковых каналов для телевизора

Функции задержки

Функция delay() осуществляет задержку выведенного изображения.
Синтаксис:

TVOut.delay(ms);
Параметры:

ms – задержка в мс с точностью: 20 мс для PAL и 16 мс для NTSC.

Функция delay_frame() осуществляет задержку выведенного изображения.
Синтаксис:

TVOut.delay_frame(frames);
Параметры:

frames – количество кадров для задержки…
Функция полезна для сведения к минимуму или устранения на мерцание экрана, вызванные обновлением экрана.

Функции получения параметров

Функция hres() возвращает горизонтальное разрешение экрана.
Синтаксис:

TVOut.hres();
Параметры:

нет.
Возвращаемое значение:

unsigned char – горизонтальное разрешение экрана.

Функция vres() возвращает вертикальное разрешение экрана.
Синтаксис:

TVOut.vres();
Параметры:

нет.
Возвращаемое значение:

unsigned char – вертикальное разрешение экрана.

Функция char_line() возвращает максимально возможное количество символов в одной строке при выводе текстовой информации.
Синтаксис:

TVOut. char_line();
Параметры:

нет.
Возвращаемое значение:

unsigned char – количество символов.

Основные графические функции

Функция set_pixel() устанавливает цвет пикселя экрана в точке с заданными координатами.
Синтаксис:

TVOut.set_pixel(x,y,color);
Параметры:

x,y – координаты пикселя;
color – цвет пикселя:
0 – черный;
1 – белый;
2 – инвертировать цвет.
Функция get_pixel() получает цвет пикселя экрана из точки с заданными координатами.
Синтаксис:

TVOut.get_pixel(x,y);
Параметры:

x,y – координаты пикселя.
Возвращаемое значение:

color – цвет пикселя:
0 – черный;
1 – белый;
2 – инвертировать цвет.
Функция fill() заполняет экран заданным цветом.
Синтаксис:

TVOut.fill(color);
Параметры:

color – цвет заполнения:
0 – черный;
1 – белый;
2 – инвертировать цвет.
Функция clear_screen() очищает экран, заполняя заданным цветом.
Синтаксис:

TVOut.clear_screen(color);
Параметры:

color – цвет заполнения:
0 – черный;
1 – белый;
2 – инвертировать цвет.

Функция invert() инвертирует содержимое экрана.
Синтаксис:

TVOut.invert();
Параметры:

нет.
Функция shift_direction() сдвигает содержимое экрана.
Синтаксис:

TVOut.shift_direction(distance, direction);
Параметры:

distance – расстояние для сдвига содержимого экрана.
direction – направление сдвига:
UP=0 – вверх;
DOWN=1 – вниз;
LEFT=2 – влево;
RIGHT=3 – вправо.

Функция draw_line() соединяет на экране линией две точки.
Синтаксис:

TVOut.draw_line(x0,y0,x1,y1,color);
Параметры:

x0,y0 – координаты первой точки;
x1,y1 – координаты второй точки;
color – цвет заполнения:
0 – черный;
1 – белый;
2 – инвертировать цвет.
Функция draw_row() заполняет строку указанным цветом между двумя точками строки.
Синтаксис:

TVOut.draw_row(row,x0,x1,color);
Параметры:

row – вертикальная координата строки;
x1,x2 – горизонтальный координаты точек строки;
color – цвет заполнения:
0 – черный;
1 – белый;
2 – инвертировать цвет.
Функция draw_column() заполняет строку указанным цветом между двумя точками столбца.
Синтаксис:

TVOut.draw_column(column,y0,y1,color);
Параметры:

column – горизонтальная координата столбца;
y1,y2 – вертикальные координаты точек столбца;
color – цвет заполнения:
0 – черный;
1 – белый;
2 – инвертировать цвет.
Функция draw_rect() рисует на экране прямоугольник.
Синтаксис:

TVOut.draw_rect(x,y,w,h,color);
TVOut.draw_rect(x,y,w,h,color,fillcolor);
Параметры:

x,y – координаты левой верхней точки;
w,h – ширина и высота рисуемого прямоугольника;
color – цвет границ прямоугольника:
0 – черный;
1 – белый;
2 – инвертировать цвет.
fillcolor – цвет заполнения прямоугольника:
0 – черный;
1 – белый;
2 – инвертировать цвет.
Функция draw_circle() рисует на экране круг.
Синтаксис:

TVOut.draw_ circle(x,y,r,color);
TVOut.draw_ circle(x,y,r,color,fillcolor);
Параметры:

x,y – координаты центра круга;
r – радиус круга;
color – цвет границ круга:
0 – черный;
1 – белый;
2 – инвертировать цвет.
fillcolor – цвет заполнения круга:
0 – черный;
1 – белый;
2 – инвертировать цвет.
Функция bitmap() выводит на экран растровое изображение.
Синтаксис:

TVOut.bitmap(x,y,bmp,w,h);
Параметры:

x,y – координаты левого верхнего угла точки вывода;
bmp – указатель на массив памяти, где хранится картинка;
w,h – ширина, высота выводимого изображения;
Ниже рассмотрим процесс создания кода выводимых растровых изображений.

Функции вывода текстовой информации

Для применения функций вывода текстовой информации требуетя подключение файлов с включенными в библиотеку или пользовательскими шрифтами. Для подключения пользовательского набора шрифтов необходимо в скетче подключить заголовочный файл:
#include
В состав библиотеки включены следующие наборы шрифтов:

Еще по теме:  Кто выпускает телевизоры киви

font4x6;
font6x8;
font8x8;
font8x8ext.
Функция select_font() выбирает шрифт для вывода текстовой информации.
Синтаксис:

TVOut.select_font(font);
Параметры:

font – шрифт, подключенный в скетче.

Функция print_char() выводит символ на экран.
Синтаксис:

TVOut.print_char(x,y,char);
Параметры:

x,y – позиция на экране для вывода символа;
char – символ из текущего шрифта.

Функция set_cursor() устанавливает позицию курсора для вывода текстовой информации на экран.
Синтаксис:

TVOut.set_cursor(x,y);
Параметры:

x,y – координаты для курсора.
Функция print() выводит на экран строку, символ или число.
Синтаксис:

TVOut.print(x,y,string);
TVOut.print(x,y,char,base);
TVOut.print(x,y,int,base).
Параметры:

x,y – координаты курсора.
base – формат вывода:
BYTE = 0;
DEC = 10 (default);
HEX = 16.

Функция println() выводит на экран строку, символ или число и в конце символ перевода строки:
Синтаксис:

TVOut.println(x,y,string);
TVOut.println(x,y,char,base);
TVOut.println(x,y,int,base).
Параметры:

x,y – координаты курсора.
base – формат вывода:
BYTE = 0;
DEC = 10 (default);
HEX = 16.

Функции вывода аудио

Функции вывода звука позволяют отправлять на телевизор через аудиовыход сигнал определенной частоты.
Функция tone() выдает аудиосигнал определенной частоты.
Синтаксис:

TVOut.tone(frequency,duration);
TVOut.tone(frequency).
Параметры:

frequency – частота аудиосигнала;
duration – длительность сигнала.
Функция noTone() прекращает выдачу аудиосигнала.
Синтаксис:

TVOut.noTone().

Программирование видео выхода Arduino

Давайте напишем тестовый код программы.

Источник: indycraft.ru

Arduino и TV

FBXMYQ2GTV9UC6X

Слово от переводчика: когда-то, когда страна и деревья были большими, а воображение просто безграничным, была у меня мечта – возможность выводить изображение с моего программируемого микрокалькулятора Электроника МК-61 (ну, там графики всякие, кривые, картинки ) на экран телевизора. Времена были дикие позднесовковые, и не то что игровая приставка и очень персональный МИКРОкомпьютер («Правец 8Д» или «Специалист» или «Сикнклер»), но и видеомагнитофоны были в диковинку. В общем, народ требовал зрелищ и те, кто помнит цикл учебно – развлекательных публикаций для программируемых калькуляторов под общим названием «Путь к Земле» (журнал «Техника – Молодежи») меня поймут.

Если кратко, то в виде научно-фантастического романа с неплохим сюжетом описывалось путешествие двух идиотов случайных знакомых – профессионального космонавта и мажора кибернетика с Луны на Землю. Отдельной остроты всему сюжету придавало то, что путешествовали они на т.н. «Лунолете», то есть малом космическом судне с химическим двигателем, предназначенным для передвижения в условиях прямой видимости над лунами и прочими небесными телами похожими на биллиардный шар с простым рельефом. В каждом выпуске цикла присутствовало упрощенное правда, но вполне обоснованное математическое описание каждого маневра как в условиях сильной (относительно) гравитации близкого небесного тела, так и при влиянии на небесный снаряд героев гравитаций Земли и Луны, а также программа для расчета очередного этапа полета. В общем, глядеть на циферки на экране калькулятора не то чтоб доставало, но хотелось красивых кривых на экран (как в ЦУПе).

С другой стороны, не будем забывать что даже примитивные микроконтроллеры семейства Arduino на порядок превосходят по производительности не только микропроцессоры тогдашних флагманов – МК-52 и МК-61, но и вычислительные возможности некоторых 8-битовых игровых приставок поздних времен (Atary 2600 и прочих Рембо так точно).

В общем, вступление вышло слегка затянутым, так что перейдем к теме сегодняшнего занятия – выводе видеоизображения с Arduino на экран телевизора.

К сожалению, конструктивные особенности Arduino позволяют выводить только монохромное (черно – белые) изображения, хотя и это может быть полезным в некоторых проектах, а ЧСВ поднимет у нубов так точно…

Шаг первый. Детали и ПО

F75Z06EGTUYA5J9

Вам понадобятся:

Детали и агрегаты:

  1. Микроконтроллер Arduino
  2. Телевизор (без него точно никуда)
  3. Макетная плата или шилд для Arduino
  4. 2 резистора номиналом 470 Ом и 1 Ком
  5. 2 двухпиновых монтажных переходника папа-папа
  6. Экранированный телевизионный кабель с тюльпаном на конце
Еще по теме:  LED телевизор 32 telefunken tf led32s78t2 отзывы

Программное обеспечение:

  1. Среда разработки/прошивки Arduino. Официальная ссылка
  2. Библиотека для обработки вывода ТВ – изображения.

Шаг второй. Сборка

FLI1M9ZGTQVP3E5

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

FXV5DJCGTQVP3EX

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

FV0WWAPGTV9WNAR.LARGE

Sync — цифровой вывод 9 микроконтроллера

Video — цифровой вывод 8 микроконтроллера

GND — вывод GND микроконтроллера

Шаг третий. Программирование

Самая веселая часть – программирование.

FY2D3X5GTUYA7I6

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

Текс программы для ленивых тех, кому лень перенабирать код с копии экрана:

#include TVout TV; unsigned char x, y; void setup ( ) < TV.start_render( _NTSC ); >void loop ( )

Предполагается, что базовые принципы работы и программирования Arduino – подобных микроконтроллеров вам известны, так что автор решил не растекаться мыслью по древу, порекомендовав ознакомится с командами библиотеки ниже:

  • begin(mode) Начало вывода информации на экран. Разешение стандартное — 128х96
  • begin(mode,x,y) Начало вывода информации на экран. Разешение определяется пользователем аргументами x,y
  • end() Очистка видеобуфера
  • force_vscale(sfactor) Force the number of times to display each line.
  • force_outstart(time) Force the time to start outputting on an active line.
  • force_linestart(line) Force line to start outputting on.
  • set_vbi_hook(func) Set the function to be called once per vertical blanking period.
  • set_hbi_hook(func) Set the function to be called once per horizontal blanking period.
  • hres() Команда возвращает значение горизонтального разрешения,
  • vres() Команда возвращает значение вертикального разрешения,
  • char_line() Команда возвращает значение количества символов, которые поместятся в строку.
  • set_pixel(x,y,color) Установка цвета пикселя по заданным координатам
  • get_pixel(x,y) Установка пикселя с заданными координатами в качестве точки отсчета.
  • fill(color) Заливка экрана заданным цветом.
  • clear_screen() Очистка экрана.
  • invert() Инвертирование изображение на экране.
  • shift(distance,direction) Прокрутка экрана на заданную дистанцию в любом из 6 направлений.
  • draw_line(x0,y0,x1,y1,color) Создание прямой с координат (x0,y0) до координат (x1,y1).
  • draw_row(row,x0,x1,color) Заполнение строки с координатами от x0 to x1 заданным цветом.
  • draw_column(column,y0,y1,color) Заполнение столбца с координатами от у0 до у1 заданным цветом.
  • draw_rect(x,y,w,h,color,fillcolor) Отображение прямоугольника с началом в координатах (x,y) с размерами(h,w), и заполнение заданным цветом.
  • draw_rect(x,y,w,h,color) Отображение прямоугольника с началом в координатах (x,y) с размерами(h,w).
  • draw_circle(x,y,radius,color,fillcolor) Отображение окружности с центором в координатах (x,y) с радиусом (RADIUS) и его заполнение заданным цветом
  • draw_circle(x,y,radius,color) Отображение окружности с центором в координатах (x,y) с радиусом (RADIUS).
  • bitmap(x,y,bmp,i,width,height) Отображение заданного изображения в координатах..
  • print_char(x,y,c) Печать символа в координатах (x,y).
  • set_cursor(x,y) Установка позиции для вывода слеующего символа.
  • select_font(font) Установка шрифт для вывода текста.
  • print() Вывод текста.
  • println() Вывод пстой строки.
  • printPGM() Вывод строки с текстом из памяти программы.
  • tone(frequency) Тональный сигнал с заданной частостой.
  • tone(frequency,duration) Тональный сигнал заданной частоты и длительности.
  • noTone() Прикращение вывода тонового сигнала.

Шаг четверый. Завершение

FBXMYQ2GTV9UC6X

Или все же старт? Возможностей и способов использования ТВ – вывода Arduino на самом дела масса, не говоря уже про простое использование Arduino в качестве игровой приставки.

Источник: mozgochiny.ru

Оцените статью
Добавить комментарий