Оглавление:

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

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

Видео: Один дисплей от первого лица, чтобы управлять ими всеми !: 10 шагов (с изображениями)
Видео: 🤪 VR экзоскелет ИЗ ДЕРЕВА #виар 2024, Ноябрь
Anonim
Image
Image
Один дисплей от первого лица, чтобы управлять ими всеми!
Один дисплей от первого лица, чтобы управлять ими всеми!
Один дисплей от первого лица, чтобы управлять ими всеми!
Один дисплей от первого лица, чтобы управлять ими всеми!

Мотивация

Мне очень нравятся дисплеи POV (постоянство зрения)! На них не только интересно смотреть, но и сложно их развивать. Это действительно междисциплинарная задача. Вам понадобится много навыков: механика, электроника, программирование и так далее!

Я всегда хотел построить свой собственный и сделать его настолько большим и мощным, насколько это возможно. Год назад я это сделал! Это было много и очень сложно сделать. Мне нравятся такие вызовы. Так было весело;-)

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

Я повторил свой дизайн, чтобы максимально упростить его восстановление. Компонентов SMT нет, и все должно паяться новичками. Не поймите меня неправильно, собрать все воедино все еще очень сложно. Но это должно быть выполнимо!

ВНИМАНИЕ! Этот проект содержит светодиоды, которые обновляются с высокой скоростью и потенциально могут вызвать припадки у людей с светочувствительной эпилепсией

Как это работает?

Здесь вы можете прочитать, как в целом работает POV-дисплей.

Сначала нам нужен источник, который передает видеосигнал. В оригинальном дизайне я делал это через WIFI. Я написал программу для захвата экрана компьютера и отправки этих данных на ESP8266 через WIFI. Проблема этого подхода в том, что ESP8266 был слишком медленным, а пропускной способности Wi-Fi было достаточно для 16 FPS. Итак, теперь мы используем ESP32. Я думал, что все проблемы решены, но оказалось, что ESP32 также не предлагает большей пропускной способности через WIFI, чем ESP8266. Однако у ESP32 достаточно вычислительной мощности для декодирования видеопотока. В итоге я отправил изображения JPEG через WIFI на ESP32. Поэтому на ESP32 есть веб-сайт. На этом сайте вы можете выбрать изображения или видео, и затем веб-сайт будет передавать файлы JPEG в ESP32. Для декодирования JPEG требуется много памяти, поэтому у нас тоже есть проблема. Но пока это работает. Возможно, позже я найду лучшее решение.

Далее нам нужно самостоятельно управлять светодиодами. Чтобы это работало, нам нужно знать точное положение светодиодов в каждый момент времени. Поэтому я добавил датчик Холла. При каждом обороте он проходит через магнит и, таким образом, обеспечивает обнаружение. Затем измеряем время вращения. Мы предполагаем, что следующий поворот займет то же время. Поэтому мы можем рассчитать нашу позицию. Этот процесс повторяется снова и снова. Для управления светодиодами мы используем ПЛИС. Мы также могли бы использовать микропроцессор, но он, вероятно, будет слишком медленным. Самые внешние светодиоды необходимо обновлять примерно 10.000 раз в секунду. FPGA легко справится с этой задачей и сделает это с меньшим джиттером.

Если светодиоды нужно обновлять так часто, нам также нужны быстрые светодиоды. В моем первоначальном дизайне я использовал светодиоды APA102. У них частота обновления около 20 кГц. Я пытался получить светодиодные ленты с этими светодиодами, но интернет-продавец прислал мне SK9822 и сказал, что они такие же (это случилось дважды …), поэтому мы будем использовать SK9822. У них только частота обновления 4,7 кГц, но, надеюсь, этого будет достаточно. У них также немного другой протокол. Просто имейте в виду. Итак, ESP32 проталкивает кадры изображения в FPGA. Затем ПЛИС управляет светодиодами.

Теперь светодиоды просто нужно повернуть. Поэтому мы используем двигатель постоянного тока. Этот двигатель управляется ШИМ-сигналом от ESP8266. ESP8266 также подключен через WIFI к ESP32. Поэтому нам нужен только один датчик для измерения скорости вращения. В первоначальном дизайне я использовал два.

Более подробную информацию о системе можно найти в моем видео об оригинальной конструкции.

Инструменты

Я использовал следующие инструменты:

  • 3д принтер
  • Припой
  • Горячий клей
  • супер клей
  • Кабель Micro USB
  • Ножницы
  • Сверло + сверло по дереву 3, 4, 8 и 12 мм
  • Отвертка
  • Плоскогубцы
  • Боковой резак
  • Инструмент для зачистки проводов
  • Принадлежности для краски
  • Наждачная бумага

порядок

Я открыл магазин TINDIE. Так что вы можете купить комплект, если хотите, и помочь мне сделать больше подобных проектов;-)

Охрана труда

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

Обновления

Есть некоторые вещи, которые я хочу улучшить в будущем:

  • Более высокое цветовое разрешение от 12 бит до 24 бит => поэтому нам нужна FPGA с большим объемом ОЗУ =>

    Cmod A7, они совместимы по выводам:-)

  • ESP32 с PSRAM, чтобы избежать проблем с памятью
  • Устранить проблему с кистью…

Запасы

Изготовленные на заказ детали

Вам необходимо их заказать или заказать комплект у меня!

1 * Основная плата (файлы gerber находятся в папке gerber main.zip)

1 * Плата драйвера двигателя (файлы gerber находятся в папке gerber motor.zip)

4 * Corners 3D 1 Print (stl файл находится в папке 3D corner.stl)

1 * Основной держатель печатной платы 3D 3 Печать (файлы stl находятся в папке 3D Holder1.stl, Holder2.stl, Holder3.stl)

1 * Brush Holder 3D 2 Print (файлы stl находятся в папках 3D brush1.stl и brush2.stl)

Стандартные детали

Будьте осторожны, некоторые ссылки включают пакеты по 10 или даже 100 штук.

1м * SK9822 Светодиодная лента с 144 светодиодами / м

1 * Cmod S6 FPGA

1 * разработка Geekcreit 30 Pin ESP32

1 * Geekcreit D1 мини V2.2.0 ESP8266

4 * 74HCT04

5 * DC-DC 5 В 4А

1 * двигатель постоянного тока 775

44 * 100 нф 50 В

9 * 220 мкФ 16 В

10 * неодимовый магнит 10 мм x 2 мм

1 * датчик эффекта Холла

2 * карбоновые Bruches Dremel 4000

2 * Моторные угольные щетки

2 * подшипники 6803ZZ

2 * Крепление двигателя 775

2 * разъем постоянного тока 5,5 x 2,1 мм

1 * блок питания

1 * кнопка 8 мм

2 * штекер XT30PB мужской и женский PCB

2 * штекер XT30 и женский кабель

Резистор 2 * 130 Ом 1/4 Вт

2 * полевой МОП-транзистор IRF3708PBF

2 * 1N5400

1 * однорядный штыревой заголовок

1 * женский заголовок

1 * кабель 30AWG

1 * кабель 22AWG

Строительный магазин

1 * МДФ 500 мм x 500 мм x 10 мм

1 * МДФ 100 мм x 500 мм x 10 мм

4 * МДФ 200 мм x 510 мм x 10 мм

1 * акриловое стекло 500 мм x 500 мм x 2 мм

12 * Металлический уголок 40 мм x 40 мм x 40 мм

40 * Шуруп 3 мм x 10 мм

6 * M3 проставка 12 мм

Винты M3 и M4

Кабель 3 м * 2,5 мм2, однопроволочный / жесткий

Черная краска для МДФ Вуд

Время сборки: ~ 10 часов

Стоимость сборки: ~ 300 €

Шаг 1. Загрузите файлы

Скачать файлы
Скачать файлы

Для начала нам сначала нужно скачать все, что нужно для этого проекта.

Перейдите на страницу выпуска репозитория здесь.

Затем скачайте Release.zip из последнего релиза и распакуйте его на свой компьютер.

Каждый раз, когда я ссылаюсь на файл в этой инструкции, вы найдете его там;-)

Шаг 2: Программирование прошивки

Шаг 2.1: Программирование FPGA

Для программирования ПЛИС нам необходимо установить программное обеспечение от xilinx:

Для Windows 10 необходимо установить: ISE Design Suite для Windows 10 (~ 7 ГБ)

Для Windows 7 или XP вы можете установить: Lab Tools (~ 1 ГБ)

После установки откройте ISE iMPACT и нажмите «Нет», если спросят, а также «Отмена» для новой формы проекта. Подключите плату FPGA Cmod S6 и дождитесь установки драйверов. Дважды щелкните граничное сканирование. Затем щелкните правой кнопкой мыши новое окно и выберите «Инициализировать цепочку». Снова нажмите «Нет» и закройте новую форму. Теперь вы должны увидеть символ «SPI / BPI», дважды щелкните по нему. Выберите файл «SPIFlash.mcs». В новой форме выберите «SPI PROM» и «S25FL128S» и ширину данных «4». Щелкните "ОК". Затем еще раз щелкните один раз на символе «FLASH». Теперь он должен быть зеленым. Затем нажмите «Программа». Нажмите «ОК» в новой форме и подождите. Это может занять несколько минут.

Молодец, ПЛИС готова;-) Можете снова отключить!

Шаг 2.2: Программируйте ESP32

Установите ядро esp32 на Arduino ID, вы можете следовать этому руководству. Рекомендуется V1.0.2.

Необходимые библиотеки:

  • AutoPID от Райана Даунинга V1.0.3 (можно установить поверх диспетчера библиотек)
  • ArduinoWebsockets от Gil Maimon, модифицированные мной (скачайте zip-файл и установите его)

Откройте файл povdisplay.ino в папке povdisplay.

Выберите под панелью инструментов: «DOIT ESP32 DEVKIT V1». Остальные настройки оставьте как есть.

Подключите плату esp32 через USB и загрузите программу.

Шаг 2.3: Программируйте ESP8266

Установите ядро ESP8266 на Arduino ID, вы можете следовать этому руководству.

Библиотеки не нужны!

Откройте файл motordrive.ino в папке motordrive.

В разделе «Панель инструментов» выберите «Стандартный модуль ESP8266». Остальные настройки оставьте как есть.

Подключите плату esp8266 через USB и загрузите программу.

Шаг 3: припой печатных плат

Image
Image
Пайки для пайки
Пайки для пайки
Пайки для пайки
Пайки для пайки
Пайки для пайки
Пайки для пайки

ШАГ 3.1 Паяльная печатная плата драйвера двигателя

Припаиваются следующие компоненты:

  • WEMOS1 (Geekcreit D1 mini V2.2.0 ESP8266)

    • Припаяйте контакты к плате WEMOS.
    • Припаяйте женские разъемы к печатной плате.
  • DCDC (DC-DC 5V 4A)

    • Используйте 4 контакта для формирования контактного разъема и припаяйте преобразователь постоянного тока непосредственно к плате.
    • Будьте осторожны с ориентацией, она должна соответствовать шелкографии
  • CN1 (разъем постоянного тока 5,5 x 2,1 мм)
  • 1N5400

    Будьте осторожны с ориентацией, белая линия на диоде должна быть на той же стороне, что и линия на шелкографии

  • 220u (220 мкФ 16 В)

    Будьте осторожны с ориентацией, белая линия должна быть на противоположной стороне от плюса на шелкографии

  • R1 и R1 (резистор 130 Ом 1/4 Вт)
  • Q1 и Q2 (MOSFET IRF3708PBF)

    Будьте осторожны с ориентацией, металлическая задняя часть должна быть на стороне с толстой линией на шелкографии

  • ДВИГАТЕЛЬ (PCB штекера XT30PB)

    Будьте осторожны с ориентацией, круглый конец должен быть на стороне, отмеченной на шелкографии

  • Светодиоды и тестер (штекерная плата XT30PB)

    Будьте осторожны с ориентацией, круглый конец должен быть на стороне, отмеченной на шелкографии

ШАГ 3.2 Припаяйте основную плату

Припаиваются следующие компоненты:

  • CMODS6 (ПЛИС Cmod S6)

    Должны быть включены заголовки контактов. Припаиваем их к плате

  • ESP (разработка Geekcreit 30 Pin ESP32)

    Используйте женские разъемы и припаяйте их на печатной плате

  • DCDC1 - DCDC4 (DC-DC 5 В, 4 А)

    • Используйте 4 контакта из контактного разъема и припаяйте преобразователь постоянного тока непосредственно к плате.
    • Будьте осторожны с ориентацией, она должна соответствовать шелкографии
  • POWER_TEST (разъем постоянного тока 5,5 x 2,1 мм)
  • D1 (1N5400)

    Будьте осторожны с ориентацией, белая линия на диоде должна быть на той же стороне, что и линия на шелкографии

  • ПИТАНИЕ (XT30PB Plug Female PCB)

    Будьте осторожны с ориентацией, круглый конец должен быть на стороне, отмеченной на шелкографии

  • C1, C3, C4, C6, C7, C9, C10, C11 (220 мкФ 16 В)

    Будьте осторожны с ориентацией, белая линия на конденсаторе должна быть на противоположной стороне плюса на шелкографии

  • C2, C5, C8, C12 (100 нФ, 50 В)
  • IC1 - IC4 (74HCT04)

    Будьте осторожны, чтобы совместить вырез микросхемы с маркировкой на шелкографии

ШАГ 3.3 Горячий клей

Основная плата будет вращаться очень быстро. Поэтому нам нужно приклеить конденсаторы (C1, C3, C4, C6, C7, C9, C10, C11) на печатную плату, чтобы избежать проблем. Просто используйте для этого горячий клей.

Шаг 4: подготовьте полоски

Image
Image
Подготовить полоски
Подготовить полоски
Подготовить полоски
Подготовить полоски
Подготовить полоски
Подготовить полоски

ШАГ 4.1 Разрежьте полоску на кусочки

Ножницами снимите защиту от воды.

Нам нужно четыре КРЫЛА, и каждое крыло содержит четыре группы. Одно КРЫЛО особенное, в нем на один светодиод больше, чем в других.

КРЫЛО1:

  • G1: 5 светодиодов (самая внешняя группа)
  • G2: 6 светодиодов
  • G3: 8 светодиодов
  • G4: 14 светодиодов

КРЫЛО2 - КРЫЛО4:

  • G1: 5 светодиодов (самая внешняя группа)
  • G2: 6 светодиодов
  • G3: 8 светодиодов
  • G4: 13 светодиодов

Поэтому нам нужно 129 светодиодов, а в нашей полосе 144, так что у нас есть некоторый допуск на неправильный разрез;-) В худшем случае вы можете припаять разрез.

Сделайте разрез между светодиодами как можно по центру.

ШАГ 4.2 Припаиваем кабели к светодиодной ленте

К каждому из сегментов светодиодной ленты припаяйте два провода 30AWG на вывод часов и данных. Это две булавки посередине. Будьте осторожны, припаяйте их ко входу светодиодной ленты. Обычно стрелки показывают направление потока данных. Кабели должны быть около полуметра в длину.

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

ШАГ 4.3 Припаять конденсаторы

К каждой группе припаяйте по два конденсатора (100 нФ 50 В) на задней стороне сегментов светодиодной ленты на каждом конце. Для G4 также припаяйте один посередине. Кабели должны проходить под конденсаторами, чтобы оставалось немного места, но не слишком много.

ШАГ 4.4 Соберите крылья вместе

Для каждого КРЫЛА проложите провода от G1 до G2, а затем эти провода через G3 и то же самое с G4.

ШАГ 4.4 Спаяйте группы вместе

Теперь нам понадобится медный кабель (кабель 2,5 мм2 однопроволочный / жесткий). Разрежьте его на восемь частей примерно по 30 см длиной. Зачистите изоляцию всех проводов. Максимально распрямите кабели. Вы можете закрепить один конец винтовой струбциной и, удерживая другой конец плоскогубцами, затем ударить по ним молотком.

Закрепите кабель с одной стороны, чтобы с ним было легче работать. Затем припаиваем к нему первую группу. Совместите сегмент светодиодной ленты с кабелем и припаяйте его с одной стороны к двум конденсаторам. Кабель должен плотно прилегать к светодиодной ленте. Переходите к следующей группе. Будьте осторожны, чтобы расстояние между двумя группами светодиодов также составляло 7 мм. В конце концов, между всеми светодиодами должен быть одинаковый зазор. Продолжайте с двумя другими группами. На последней группе припаяйте к проводу все три конденсатора.

Затем отрежьте кабель на конце. Продолжите с другим кабелем на другой стороне полосы.

Теперь первое КРЫЛО готово! Проделайте то же самое с тремя другими крыльями.

ШАГ 4.5 Согните конденсаторы

Просто согните их все, чтобы полоски стали тонкими.

Шаг 5: припаяйте полоски на основной плате

Image
Image
Припаяйте полоски к основной плате
Припаяйте полоски к основной плате
Припаяйте полоски к основной плате
Припаяйте полоски к основной плате

ШАГ 5.1 Проверьте поляризацию

Для начала нам нужно знать поляризацию светодиодной ленты. Другими словами: где 5V и земля относятся к печатной плате. Это действительно зависит от вашей светодиодной ленты и может быть любым.

Удерживайте одно КРЫЛО на основной плате. Стрелки на светодиодной ленте должны указывать на центр печатной платы. Теперь посмотрите, есть ли 5V на стороне контактов DATA или CLOCK.

Если 5V находится на стороне DATA, все в порядке, и вы можете использовать медь 2,5 мм2, чтобы припаять светодиодную ленту непосредственно к печатной плате.

В противном случае вам нужно использовать кабель 22AWG, чтобы пересечь две стороны. Поэтому припаяйте кабель к светодиодной ленте, перечеркните левую и правую стороны и припаяйте к печатной плате.

ШАГ 5.2 Припаяйте кабель 2,5 мм2

Используйте оставшуюся часть медного кабеля 2,5 мм2 и зачистите все. Припаиваем их к верхней стороне печатной платы. Обрежьте припаянный провод примерно на той же высоте примерно на 1 см.

ШАГ 5.3 Припаиваем первое КРЫЛО

Используйте более длинное КРЫЛО и разместите его на печатной плате (светодиоды 1), как показано на шелкографии. Припаиваем к проводам 2,5 мм2. Сделайте действительно прочные соединения, это приведет к большим усилиям во время вращения! Затем подключите кабели группы 1 к G1 Data и G1 Clock.

Не забудьте припаять разъем питания, как описано выше.

Подключите ESP32 и FPGA (48 и 1 на маркированной стороне) и запитайте плату от источника питания.

Теперь самые внешние светодиоды должны мигать синим (это может занять до 40 секунд). Если нет, проверьте, правильно ли вы соединили ЧАСЫ и ДАННЫЕ.

ШАГ 5.4 Датчик на эффекте Холла

Припаяйте разъем женского штыря (с тремя штырями) к холлу. Позже мы подключим к нему датчик.

Припаяйте датчик (датчик на эффекте Холла) к штыревой вилке. Связи с датчиком и штифтом должны быть около 25 мм.

ШАГ 5.5 Продолжайте с остальными крыльями

Для LEDs2 - LEDs4 == WING2 - WING4 проделайте тот же процесс, что и с WING1.

Время от времени включайте плату и проверяйте, все ли мигает. Схема начинается с самого внешнего светодиода, идет внутрь и начинается снова.

ШАГ 5.6 Баланс

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

Шаг 6: первая краска

Шаг 6.1: сверление

Нам нужно просверлить несколько отверстий:

На плите МДФ 500 * 500 нам понадобится два отверстия. Посмотрите файл Drill_wood_500_500.pdf и просверлите отверстия по плану.

На плите МДФ 500 * 100 нам понадобится много отверстий. Поэтому распечатайте файл Drill_wood_500_100_A4.pdf и выровняйте его по доске. Просто просверлите там, где на бумаге отмечены отверстия.

Шаг 6.2: Покраска

Покрасьте каждую сторону дерева с одной стороны. Для плиты МДФ 500 x 500 это сторона, на которой вы просверлили отверстия.

Покрасьте обе стороны дерева размером 100x500.

Также можно покрасить металлические уголки в черный цвет. Так будет лучше;-)

Остальное покрасим, когда все соберем (снаружи коробки).

Шаг 7: Механическая сборка

Image
Image

Шаг 7.1 Установите печатную плату драйвера двигателя

Печатная плата устанавливается на МДФ-плату размером 100 x 500 мм. Используйте распорки (распорка M3 12 мм) и несколько винтов и гаек m3.

Шаг 7.2 Установите кронштейны

Закрепите два кронштейна (Motor Mount 775) на плате MDF 100 x500 с помощью винтов M4.

Шаг 7.3 Подготовка держателя

Две штанги (подшипники 6803ZZ) необходимо отключить. Нам просто нужны два внешних кольца от него.

Припаяйте провода 22AWG к каждому кольцу. Один черный и один красный.

Возьмите детали, напечатанные на 3D-принтере, и соберите их.

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

Отрежьте два провода на расстоянии 2 см и припаяйте к нему штекер (штекерный кабель XT30 Plug Male Cable). Черный кабель идет в закрытую сторону.

Шаг 7.4 Установите двигатель

Прикрутите двигатель (двигатель постоянного тока 775) к креплению двигателя в середине плиты MDF 100 x500.

Установите держатель на двигатель и плотно привинтите.

Шаг 7.5 Установите кисти

Я планировал использовать щетку Dremel (угольные щетки Dremel 4000). Нам нужен другой уголь (угольные щетки для двигателей), потому что уголь для щеток Dremel имеет слишком высокое сопротивление. Я упустил это из виду в процессе разработки. Поэтому мы используем моторные щетки и шлифуем их до размера щеток dremel.

Отрежьте проволоку от моторной щетки на расстоянии 5 мм от угля.

Затем наждачной бумагой обрезаем уголь до следующих размеров: 8,4 x 6,3 x 4,8 мм.

Одна сторона моторной щетки составляет 6,1 мм, поэтому нам нужно отшлифовать только две стороны.

Вы можете попробовать, если он легко скользит в держателе кисти, тогда все в порядке.

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

Припаяйте провод 22AWG к углю к обоим углям. Используйте красный и черный провод. Вставьте пружину из щетки дремеля.

Вставьте щетки в щеткодержатель. Кисть с красной проволокой входит в верх. Верхняя часть держателя немного толще. Будьте осторожны, чтобы две пружины не касались друг друга.

Прикрепите держатель к основанию с помощью гаек и винтов m3.

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

Мотор должен свободно вращаться.

Проведите два провода между двумя скобами.

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

Припаяйте два провода 22AWG к двигателям и отрежьте их на расстоянии, чтобы легко добраться до печатной платы, и припаяйте к нему гнездо (штекерный кабель XT30). Черный провод идет на изогнутую сторону.

Шаг 8: Готово

Рекомендуемые: