Что такое pov дисплей
Думал ли ты о том, как круто было бы оказаться в шкуре героя какого-нибудь фильма? Стрелять в плохих парней, гонять на крутой тачке, бегать от призраков или стать президентом.
Сегодня мы расскажем, что такое съёмка от первого лица и как снять так, чтобы зритель глубоко погрузился в действие фильма.
Что дальше?
В этот примере мы показали самое простое применение персистенции. Добавив механическую конструкцию, увеличив количество и разнообразив цвета светодиодов можно собрать более сложные и интереснее устройства. А если использовать RGB-светодиоды, можно собрать полноценный виртуальный дисплей в воздухе.
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 4.0 International
Хотите выделиться в толпе велосипедистов? Используя знания из прошлых проектов, соберём простой велокомпьютер и покажем скорость прямо на колесе байка.
Что нам понадобится?
Принцип работы
Вы можете спросить, как я планирую управлять 48 светодиодами (16 красных, 16 зеленых, 16 синих) при помощи драйвера-микросхемы с IC с 16 выходами?
Я собираюсь зажигать только один цвет за один раз.
Представьте себе одну строку изображения в колесе. Эта строка состоит из красных, зеленых и синих точек. За один раз будет загораться один цвет, но они будут чередоваться так быстро, что вам будет казаться, что вы видите одну строку.
Если поочередно зажигать всю строку каждым из цветов, то вы не увидите эти цвета, а увидите белую строку.
Для контроля ширины этой строки в колесе, нам надо контролировать только то, сколько раз эта строка повторяется.
Поскольку драйвер светодиодов с открытым стоком, то он работает с RGB светодиодами с общим катодом. Я использовал дешевые RGB светодиоды из Китая.
Шаг 2: Электрическая схема
Изготовление печатной платы
Для проекта понадобится изготовить печатную плату.
Если вы не знаете, как сделать печатную плату, то в интернете есть куча статей на эту тему.
Есть несколько методов изготовления печатных плат. Некоторые люди немного меняют технологию в рамках одного метода.
Методы известные мне:
Фоторезист - метод, который я использую. С помощью этого метода можно достичь высокого уровня детализации.
ЛУТ - вы будете использовать лазерный принтер.
"Press&Peel" – мне не нравиться этот метод и уровень получаемой детализации.
Общим для всех методов является то, что плату нужно травить.
Вот последовательность действий при изготовлении платы:
1 – Печать рисунка платы на прозрачной пленке. В Eagle перейдите в меню ULP -> CAMtoPrint;
2 – Подготовка текстолита и применение фоторезиста, например Positiv 20;
3 – Экспонирование меди с фоторезистом через прозрачную пленку с рисунком;
4 – Проявление фоторезиста;
5 – Проверка на ошибки;
6 – Травление платы;
7 – Обрезание платы;
8 – Сверление.
Исходный код
Как собрать?
Изучите проект POV-бегущей строки. Бегущая строка для велосипеда основана на этом проекте. Вместо акселерометра используйте цифровой датчик линии. Он замеряет скорость велосипеда и служит началом координат для отображения строки на колесе.
Возьмите макетную плату Breadboard PCB на 400 точек и соберите устройство из восьми таких пикселей. Припаяйте светодиоды к пинам Espruino Pico A8 , A6 , A7 , B1 , B10 , B13 , B14 и B15 через резисторы 220 Ом. Правильно подобрать сопротивление резисторов поможет статья в конспекте-Arduino. Припаяйте Espruino Pico и провода питания датчика линии.
Разместите плату, датчик линии и аккумулятор на колесе. Закрепите с помощью пластиковых стяжек.
Установка на колесо
Теперь мы установим POV на колесо.
Я думаю, что он может быть установлен на любое 20", 24" и 26" колесо. К сожалению, во время разработки у меня не было других колес, и я ориентировался на 26".
Для установки POV понадобится:
Куски пенопласта или резины.
Кабельные стяжки или другие крепления.
Магниты.
Любые другие вещи, которые могут оказаться полезными.
Сделайте отверстия в кусках пенопласта/резины и для стяжек. Закрепите его на спицах, убедившись, что светодиоды перпендикулярны колесу.
Датчик Холла
Если вы, как и я, используете удлинитель для датчика, вы можете разместить датчик и магнит в любом месте, которое вы считаете нужным.
Убедитесь, что магнит находится в радиусе чувствительности датчика. Это важно, если вы хотите получить изображение.
Сцена из Doom.
POV дисплей (Эффект инерции зрительного восприятия) – это забавный и интересный способ отображения текста, который парит в воздухе.
Что посмотреть и где вдохновляться?
Как собрать?
Так как акселерометр общается с управляющей электроникой по протоколу I²C, а на плате Iskra Mini эти пины не выведены, сделаем это сами. Для этого возьмите штырьковые соединители, откусите от них два пина и припаяйте с обратной стороны платы Iskra Mini к пинам A4 (SDA) и A5 (SCL) .
Пины питания +5V и земли GND платформы Iskra Mini соедините с помощью проводов «папа-папа» с рельсами питания и земли макетной платы соответственно.
Пины питания V и земли G акселерометра с помощью проводов «папа-папа» соедините с рельсами питания и земли макетной платы соответственно.
Сигнальные пины D и C акселерометра с помощью проводов «папа-мама» соедините с пинами A4 (SDA) и A5 (SCL) платы Iskra Mini.
Возьмите 8 красных светодиодов и установите их в ряд на макетную плату.
Далее с помощью резисторов 220 Ом соедините катоды светодиодов с рельсой земли макетной платы.
В продолжение используя провода «папа-папа» соедините аноды светодиодов со 2 по 9 пин платы Iska Mini.
Переверните макетную плату. Возьмите кабель питания от батарейки Крона и соедините одну часть с Кроной, а вторую — с гнездом питания 2,1 мм с клеммником. Далее подключите в клеммник два провода «папа-папа». Теперь аккуратно отклейте защитную плёнку от breadbord и закрепите всю собранную конструкцию на липкой части макетки.
контакт − клеммника — на GND платы Iskra Mini.
В итоге получилась схема, приведенная ниже.
Демонстрация работы устройства
Алгоритм
Функция обработки прерывания вычисляет скорость движения велосипеда. Зная интервал времени между текущим и предыдущим оборотами, скорость можно рассчитать по формуле:
Угол сектора колеса, внутри которого будет отображаться скорость, определяет время свечения светодиодов. Чем меньше угол сектора, тем меньше время свечения.
Угловая частота вращения колеса вычисляется по формуле: Чем больше скорость колеса, тем меньше время свечения светодиодов.
Что такое POV и зачем нужно так снимать?
Съёмка от первого лица , « вид из глаз », POV (в переводе с английского, « point of view » — « точка зрения ») — операторский приём, когда зритель видит то же, что и герой сцены.
Камера расположена как будто внутри его головы. В конце добавили список фильмов и видео, в которых можно найти этот приём.
Основная задача съёмки от первого лица — погрузить зрителя в процесс и дать возможность увидеть действие глазами героя.
Помимо эффекта погружения, этот прием удобен тем, что экран не загораживает широкая спина персонажа, и зритель может увидеть больше пространства.
Пайка компонентов
После изготовления платы, необходимо припаять компоненты.
При пайке платы ориентируйтесь на схему и рисунок платы.
Я рекомендую сначала припаять микроконтроллер с обвязкой, и проверить его. Не забудьте припаять перемычку!
Затем припаяйте светодиоды, TLC5940 и все остальные компоненты.
Хорошо закрепите отсек для батарей, иначе они могут отлететь.
Драйвер TLC5940
TLC5940 это микросхема, которая управляет питанием 16 светодиодов. Она имеет 4096 уровней серого.
Максимальный ток светодиода
Вы можете ограничить ток, протекающий через светодиоды, меняя значение . Для расчета резистора, вы должны знать максимальное значение тока для светодиодов (I_max).
R_iref=39/I_max
Я использовал резистор 2.2Ом, ограничив ток 17.7мА.
Что нам понадобится?
Исходный код
Шаг 1: Компоненты, необходимые для выполнения проекта
Для изготовления POV дисплея понадобится:
- Микроконтроллер Arduino UNO + среда разработки Arduino IDE
- Программа Processing (при использовании компьютера для последовательной передачи данных)
- Android устройство (при использовании Android приложения для последовательной передачи данных)
- Bluetooth модуль
- 8 x светодиодов любого цвета
- 8 x 220 Ом резисторов
- 9В DC двигатель
- 9В батарея.
Как снять?
По большому счёту варианта два :
- шлем с камерой
- просто съёмка, как бы от лица героя
Алгоритм
Если ускорение превышает норму и направленно справа налево выводим буквы в обратно порядке зеркально отраженные.
Что нужно знать?
Использование шлема с камерой осложняется тем, что оператору одновременно приходится быть актёром , а это сильно ограничивает художественный потенциал сцены. Учитывай также, что «носитель» обычно не смотрит в камеру , это технически сложно осуществить.
Чтобы построить кадр, подключи удалённый монитор для профессионального оператора. Дистанционно оператор будет видеть, что попадает в кадр, и сможет давать рекомендации, как перемещать камеру.
В шлеме хуже слышно окружающий звук — команды режиссера можно не услышать или услышать не четко. Поэтому важный момент — связь с тем, кто носит камеру. Рация с гарнитурой или даже просто телефон с наушниками решат эту проблему.
У шлема с камерой есть один существенный минус — дефицит универсальных конструкций для крепления профессиональных камер на голове . Поэтому инженерам зачастую приходится самим разрабатывать эти конструкции под определённую камеру и её навес.
Часто для основы используют мотоциклетный шлем . В нем есть уплотнения, хорошо фиксирующие шлем на голове. Также он довольно прочный и можно повесить больше оборудования.
Если носить камеру будут разные люди, то попробуй сделать так, чтобы камера всегда была на одной высоте . Рост «носителей» может сильно варьироваться и зритель обязательно это заметит.
Шея довольно быстро устает, боли могут появится уже через 10 минут активного использования, а на следующий день шея скорее всего будет болеть. Хотя бы за неделю до съёмок носитель «шлема» должен подготовиться физически — начать качать шею и провериться у врача.
Старайся не использовать максимальное количество оборудования на голове. Часть оборудования можно вынести за спину, например, аккумуляторы. Как показывает практика, снимать больше 15 минут без перерыва сложно, поэтому обязательно делай как можно больше перерывов.
Важный момент! Съёмка от первого лица не обязательно должна сниматься только с помощью шлема. Если у тебя есть сцены, которые можно снять без шлема — снимай без него .
В этом случае оператор с камерой и стабилизатором будет ограничен в движениях. Да, он не перелезет через забор, не сядет за руль и не сможет быстро бегать. Но это не всегда нужно делать. Зато оператор будет напрямую управлять процессом и ставить кадр.
Демонстрация работы устройства
Шаг 3: Загрузка Arduino скетча
Скетч позволяет записывать текст по вашему выбору с предварительно запрограммированными буквами. Вам просто необходимо вызвать функцию printLetter(), записать букву или цифру по вашему выбору между скобками. Количество вводимых букв и цифр не ограничено.
Вы также можете использовать приложение Processing или Android приложения, просто кликнув на блоках, которые появляются в обоих приложениях для отрисовки вашей собственной формы, которая будет мгновенно отображаться на вашем POV дисплее благодаря Bluetooth для беспроводной последовательной передачи данных. Вместо записи букв и цифр между скобками функции printLetter (), вы можете записать printLetter(shape);
Красочные колеса!
Ура! Теперь я могу рисовать картинки, анимацию и различные эффекты на колесах.
В будущем я надеюсь написать программу, которая будет преобразовывать изображение в матрицу данных, которая используется в прошивке. Кроме того, в будущем будет добавлен интерфейс связи между устройством и компьютером и добавлена память для хранения изображений.
Прошивка микроконтроллера
Теперь вы можете прошить микроконтроллер.
Я использую USBtinyISP от ladyada.
Я разрабатывал этот проект так, чтобы он был совместим с Arduino. Вы просто можете использовать FTDI USB- TTL232 кабель. Однако это может не работать, т.к. я не тестировал это.
Также есть TLC5940 библиотека для Arduino от Алекса Леоне.
Текущая прошивка может отображать только одно изображение, которое легко настроить. Графические данные считываются из программной памяти.
В будущем я планирую попробовать SPI EEPROM подключенный к последовательному порту. Таким образом, я смогу хранить очень много изображений и анимации.
В этой версии есть также небольшая обратная связь для синхронизации изображения со скоростью колеса.
Сколько места необходимо для изображения?
В зависимости от необходимого уровня детализации. Под уровнем детализации подразумевается количество делений на вашем колесе.
Если вы хотите использовать 100 делений, то вы делите колесо линиями каждые 3.6 градусов.
Чем больше делений, тем тоньше строка.
Для одного изображения 100 строк:
192 бит на цвет * 3 цвета на линию = 576 бит / 72 байт для каждой линии
72 байта / линия * 100 строк = 7200 байт / изображение, ~ 7 Кбайт / изображение.
Шаг 4: Приложение Processing (Последовательное соединение с ПК)
Для тех, кто не знает, что такое Processing:
Processing представляет собой язык программирования, среду разработки и онлайн сообщество. Начиная с 2001 года, Processing развивает компьютерную грамотность, связанную с технологией визуального искусства. Данный язык первоначально был создан как программный блокнот для набросков кода и для того, чтобы научить основам компьютерного программирования с визуальным контекстом; далее Processing превратился в среду разработки для профессионалов. В настоящее время существует сотни тысяч студентов, художников, дизайнеров, исследователей, и энтузиастов, которые используют Processing для обучения, создания прототипов и опытных образцов.
Я зачастую использую Processing для создания приложений, которые позволяют связываться с Arduino через последовательно соединение Serial Communication.
Приложение Processing позволяет начертить любую форму по вашему выбору, нажав на белый блок. При этом вы увидите результат на вашем POV дисплее, даже если он вращается с большой скоростью.
Для использования приложения Processing вам необходимо настроить bluetooth на вашем компьютере. Если bluetooth уже настроен, то пропустите данный шаг. Однако вам необходимо изменить COM порт в вашем скетче Processing на соответствующий порт вашего bluetooth адаптера. В качестве адаптера можно использовать встроенный Bluetooth модуль или внешнюю bluetooth заглушку (проверьте, что она совместима с вашей операционной системой).
Далее необходимо подключить bluetooth модуль к Arduino, т.е. перейти в менеджер Bluetooth Manager на вашем компьютере и кликнуть на "Add a connection" (Добавить соединение) или нечто подобное, и далее выбрать соответствующее устройство.
После состыковки модулей вам необходимо получить номер COM порта, который используется Bluetooth модулем Arduino при подключении к вашему компьютеру, далее открыть "POV_processing" и под функцией "Void setup()" заменить "COM40" на номер соответствующего COM порта, который вы получили.
Что дальше?
Добавьте в проект Bluetooth-модуль HC-06 и меняйте текст строки со смартфона прямо на ходу.
Не хотите зависеть от внешнего света при работе с инфракрасным датчиком? Замените его на датчик Холла, а на раму велосипеда прикрепите магнит.
Используйте больше светодиодных линеек и создавайте сложные картины на колесе своего железного коня.
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 4.0 International
Инструменты и компоненты
Вы должны иметь основные инструменты для:
- изготовления печатной платы.
- пайки.
- программирования микроконтроллеров (оборудование и программное обеспечение)
Электронные компоненты
- 1x микроконтроллер ATmega328P/ATmega168.
- 1x светодиодный ШИМ драйвер TLC5940/TLC5941.
- 16x RGB светодиодов с общим катодом.
- 1x A3213.
- 3x NPN транзистора PN2222.
- Разные резисторы, конденсаторы, кнопки и разъемы (смотрите схему и плату).
Приблизительная стоимость с учетом изготовления платы в домашних условиях: ~35$
Принципиальная схема RGBike POV (2-ой вариант с освещением колеса с двух сторон):
Файлы схем и печатных плат для 1-го и 2-го варианта устройства вы можете скачать внизу статьи.
Шаг 5: Android приложение (Последовательное соединение с Android устройством)
Для управления POV дисплеем я запрограммировал Android приложение, используя комплект разработки Android Studio Development Kit. Несмотря на то, что данное приложение может работать на почти всех Android устройствах (смартфонах, планшетах и т.д.), примите к сведению, что корректность работы гарантируется на устройствах, с версией android не ниже JellyBean 4.2.
RGBike POV - это устройство RGB POV эффектов, которое может сделать даже начинающий, в домашних условиях.
Продается несколько моделей готовых POV дисплеев:
- SpokePOV от производителя Adafruit
- m132s от Monkeylectric.
- Monkeylectric недавно анонсировала m464q.
Дисплей от SpokePOV одноцветный, а m132s, как я понял, не имеет возможности отображения изображений. Кроме того, я считаю, что эти дисплеи слишком дороги, тем более, что я не буду его использовать часто.
Я решил сделать POV-устройство самостоятельно, из тех компонентов которые у меня были, не тратя дополнительные деньги.
Характеристики RGBike POV:
- 16 RGB (Red (красный) + Green(зеленый) + Blue(синий)) светодиодов.
- Совместимость с Arduino (не проверено на поздней версии проекта).
- Односторонняя печатная плата, которую можно изготовить в домашних условиях.
- Использование выводных компонентов, которые могут паять начинающие.
- Датчик Холла, используемый для синхронизации изображения;
- Наименьшее возможное количество компонентов.
- К сожалению, изображение есть только на одной стороне колеса (возможно, будет исправлено в будущем).
- Подходит для 26" колес, у меня не было возможности проверить его на 20" и 24" колесах.
Обновление: Я обновил печатную плату, теперь светодиоды освещают обе стороны колеса, однако на другой стороне текст будет отображаться неверно.
Если вы не умеете что-либо из перечисленного выше, надеюсь данная статья будет хорошим мотиватором для изучения всего этого.
Читайте также: