Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Подписаться Еще от автора:
Проекты Fusion 360 »
После создания лампы Minecraft для моего 7-летнего ребенка его младший брат захотел чего-то похожего. Ему больше нравится SuperMario, чем Minecraft, поэтому его ночник будет показывать спрайты из видеоигр.
Этот проект основан на проекте Neoboard, но детали можно распечатать на 3D-принтере, и Arduino не нуждается в SD-карте для чтения изображений (они могут храниться во флеш-памяти).
Запасы
- 1x плата arduino (подойдут Uno или Nano)
- 2x нить накала (черная для основного корпуса и прозрачная для диффузоров). Даже если вам нужен другой цвет для своей подставки, вам все равно понадобится черная нить для части светодиодных разделителей. Я использовал PLA.
- 1 кнопка
- 1 резистор 300-500 Ом (для вывода данных полосы)
- 1x 1000 мкФ конденсатор (для защиты полосы от резких изменений тока)
- 1 матричная панель 16x16 светодиодов
- Типовые материалы для изготовления (клей, дюпоновые провода, самоспающиеся разъемы, винты M4 и т. Д.)
Шаг 1. Загрузите код и обработайте изображения
Вы можете получить код из репозитория GitHub.
Внутри уже есть профили Platformio для плат Arduino Uno и Nano.
Для обработки изображений мы воспользуемся обработкой (подойдет графический интерфейс или инструмент cli). Код обработки считывает изображение размером 16x16 и преобразует все цвета пикселей в массив uint8, отсортированный по типу подключения светодиодной матрицы.
В 99% случаев для корректной обработки изображений вам потребуется только:
- Измените значение на переменные inputFilename и outputFilename.
- Скопируйте содержимое файла outputFilename и вставьте его в /src/sprites.h
Внутри кода Arduino вам также необходимо изменить
- Значения LEDS_PIN, BUTTON_PIN и TOTAL_SPRITES
- Возможно, тип светодиода в конструкторе полосы … но не должен быть обычным
- И `` переключатель '' внутри функции changeSprite (), чтобы показать все ваши изображения
Как вы видите в объявлении массивов, мы используем ключевое слово PROGMEM для хранения данных во флеш-памяти вместо SDRAM. Таким образом, нам не нужна SDCard для хранения информации о цвете изображения.
Как вы можете видеть на изображении выше, для хранения кода и 10 изображений SuperMario требуется всего около 11 Кбайт, поэтому есть много места для большего количества изображений (и даже больше, если вы используете плату MEGA2650).
Шаг 2: Распечатайте все детали
Я разработал детали с помощью Fusion360. Вы можете скачать их здесь:
Или, если вам нужны только файлы STL, они доступны в Thingiverse:
Заднюю крышку легко напечатать, а подставке нужны только опоры (но в зависимости от того, как вы ее разместите, вам понадобится больше опор или комбинация принтер / нить, способная печатать большие мосты).
Для диффузора изначально я думал, что использование гладкого листа с покрытием и шаблона кривой Гильберта даст наилучшие результаты, но я протестировал различные комбинации слоев, разрешения, листов и шаблонов, и я получил лучшие результаты, используя прозрачный PLA. накаливания от BQ с такими настройками:
- лист: лист с порошковым покрытием
- слои: 3
- разрешение: 0,2
- Картина: прямолинейная
Но, в зависимости от вашей нити накала, производителя светодиодов в вашей матрице, расстояния от диффузора до светодиода и если между вашими светодиодами есть полное разделение, ваши результаты могут отличаться. Не спрашивайте меня, почему я стал экспертом в этой микро-нише:)
Я использовал опцию PrusaSlicer, чтобы вручную изменить цвет во время печати, чтобы переключаться между прозрачными и черными нитями, поэтому у меня диффузор и светодиодный разделитель в одной части (не нужно их склеивать).
Шаг 3. Подключите все
Подключить все детали проще простого: подключите плату и светодиодную матрицу с помощью USB-кабеля 5 В, а затем подключите кнопку и вход полосы к обозначенным портам на плате.
Помните, что чтобы не повредить матрицу, рекомендуется добавить к ее подключению конденсатор и резистор.
Если все сделано правильно, то в матрице вы увидите счастливого пингвина:)
Чтобы убедиться, что все работает правильно:
- Изображение должно иметь черный фон с синим градиентом.
- В углах есть зеленые стрелки
- Стрелка в нижнем левом углу расширена двумя красными пикселями.