HoloCubic — многофункциональный прозрачный дисплейный стол
Видеопрезентация: https://www.bilibili.com/video/BV1VA411p7MD/
Примечание от автора: Это обновление видео, чтобы смягчить неловкость из-за двухмесячной задержки, я создал интересную маленькую вещь в выходные!
Как видно из видео, интересная особенность этого проекта заключается в использовании дифракционной призмы для создания эффекта псевдоголографии. Это небольшое устройство имеет множество функций, поскольку оно оснащено Wi-Fi и Bluetooth, что позволяет реализовать множество сетевых приложений. В этом репозитории я предоставляю вам фреймворк для разработки и некоторые базовые функции (погода, количество подписчиков и т. д.), на основе которых вы можете создавать свои собственные приложения.
Проект основан на аппаратном обеспечении ESP32PICO-D4, практичном микроконтроллере от Espressif, который использует SiP-упаковку, позволяющую создать плату размером с монету; программное обеспечение основано на библиотеке lvgl-GUI. Я перенёс драйвер дисплея ST7789 с разрешением 1,3 дюйма и 240x240 пикселей и использовал MPU6050 в качестве устройства ввода, имитируя кодировщик с помощью датчиков для взаимодействия.
В настоящее время нет особых требований к печатной плате. Файлы печатных плат можно сразу отправлять на производство, двухслойные платы недороги, а компоненты BOM являются стандартными, стоимость всей платы составляет менее 50 юаней.
Файлы «Hardware» содержат две версии схем печатных плат:
Датчик внешней освещённости был исключён, потому что новый корпус будет изготовлен из металла с использованием ЧПУ. Этот датчик легко перекрывается и не используется часто.
Изготовление корпуса в соответствии с выбранной версией. Файлы «3D Model» включают четыре версии корпусов:
Naive Version: Версия, показанная в видео. Простой дизайн, подходящий для 3D-печати.
Bilibili Version: Корпус в форме кубка Bilibili, подходит для Naive Version. Не рекомендуется для пользователей, не являющихся участниками Bilibili.
Metal Version: Улучшенная версия Naive Version с более компактным и элегантным дизайном. Рекомендуется использовать ЧПУ для изготовления.
Ironman Version: Новый дизайн в стиле Железного человека, разработанный совместно с другом. Возможно, в будущем будет производиться под совместным брендом.
Изготовление корпуса Ironman требует сложных процедур, таких как пескоструйная обработка и анодирование, и стоит дорого (около 1000 юаней за комплект). Если у вас есть возможность, вы можете изготовить его самостоятельно.
Для тех, кто хочет получить версию Ironman, мой друг, специализирующийся на изготовлении клавиатур, предлагает ограниченное количество комплектов. Его магазин называется Xikii, и он имеет большой опыт в производстве персонализированных клавиатур. Вы можете следить за ним.
Программное обеспечение в основном разработано на базе Arduino. Если вы использовали Arduino IDE, просто установите библиотеки в каталог библиотек Arduino.
Я использую Visual Micro для разработки на Visual Studio, так как я более знаком с этой средой. Вы можете выбрать любую среду разработки, которая вам нравится.
Вам потребуется изменить код в официальной библиотеке, чтобы использовать её:
Сначала установите поддержку ESP32 для Arduino (есть много руководств на Baidu). Затем в файле src/SPI.cpp
в папке esp32\hardware\esp32\1.0.4\libraries\SPI
измените значение miso
на 26:
if(sck == -1 && miso == -1 && mosi == -1 && ss == -1) {
_sck = (_spi_num == VSPI) ? SCK : 14;
_miso = (_spi_num == VSPI) ? MISO : 12; // Изменить на 26
_mosi = (_spi_num == VSPI) ? MOSI : 13;
_ss = (_spi_num == VSPI) ? SS : 15;
Это связано с тем, что на плате используются два аппаратных SPI для подключения дисплея и SD-карты. По умолчанию MISO для HSPI равен 12, но это используется для установки уровня флэш-памяти при включении питания, и если он установлен неправильно, чип не сможет запуститься. Поэтому мы меняем его на 26.
Эту проблему также можно решить, изменив настройки чипа, но этот процесс необратим, поэтому не рекомендуется.
Кроме того:
Поскольку проект создавался в спешке, код может быть грязным. Репозиторий содержит только шаблон кода после настройки всех драйверов, на основе которого вы можете разрабатывать свои приложения.
Я буду постепенно обновлять код приложения в Visual Studio.
В папке «Software» находится проект Visual Studio, который можно открыть в Visual Studio (требуется установка компонентов C++). После запуска вы сможете эмулировать интерфейс LVGL на вашем компьютере. После внесения изменений вы можете скопировать код на плату.
Это избавляет от необходимости перекомпилировать прошивку Arduino каждый раз, когда вы вносите изменения, повышая эффективность разработки.
Папка «ImageToHolo» содержит скрипт Python для преобразования изображений в формат, используемый HoloCubic.
Поскольку ресурсы изображений занимают много места, их невозможно сохранить на флеш-память ESP32. Я внедрил поддержку файловой системы FAT в LVGL, чтобы изображения можно было хранить на SD-карте.
Официальный инструмент для преобразования доступен по адресу: https://lvgl.io/tools/imageconverter, выберите формат «Indexed 4 colors».
Однако официальный инструмент может конвертировать только одно изображение за раз, и вам нужно загружать и скачивать файлы, что неудобно. Поэтому я написал свой собственный скрипт для пакетного преобразования.
Ресурсы изображений, используемые HoloCubic, имеют расширение «.bin». Вы можете поместить преобразованные изображения на SD-карту и загрузить их следующим образом:
lv_obj_t* imgbtn = lv_imgbtn_create(lv_scr_act(), NULL);
lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_PRESSED, "S:/dir/icon_pressed.bin");
lv_imgbtn_set_src(imgbtn, LV_BTN_STATE_RELEASED, "S:/dir/icon_released.bin");
Здесь «S» обозначает корневой каталог SD-карты (обратите внимание, что «S» пишется заглавными буквами), а остальная часть пути соответствует пути в Linux.
Этот скрипт основан на реализации W-Mai/lvgl_image_converter.
Если вы не хотите устанавливать среду Python, вы также можете использовать предварительно скомпилированный исполняемый файл для конвертации. Просто перетащите изображения формата jpg/png/bmp на значок «holo конвертер.exe», и будут созданы соответствующие файлы .bin.
Скачать конвертер:
Ссылка: https://pan.baidu.com/s/11cPOVYnKkxmd88o-Ouwb5g Код извлечения: xlju
Я использовал призму размером 25,4 мм x 25,4 мм x 25,4 мм. Её можно найти на Taobao, цена около 80 юаней.
Установка дифракционных призм может быть сложной задачей. Использование клея может привести к появлению водяных знаков на экране, поэтому рекомендуется использовать OCA-клей. Это специальный клей, используемый для приклеивания экранов в процессе полного ламинирования. Он недорогой и эффективный.
Однако OCA-клей очень прочный, будьте осторожны при работе с ним, чтобы избежать пузырьков воздуха, иначе его будет трудно удалить после склеивания.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )