HandMade32.ru - сделай своими руками

Лампа призма на Arduino c Bluetooth управлением


Видео:


Приветствую всех читателей, авторов и прочих посетителей сайта «У самоделкина». Сегодня я поделюсь инструкцией по изготовления настольной лампы в виде призмы. Основой будут служить адресные светодиоды WS2812. Это уже второй вариант такой лампы. Инструкцию по изготовлению первой версии вы найдете здесь.

В отличие от первой версии, контролером в этой лампе или ночнике будет Arduino. Также вставим туда Bluetooth модуль для связи с внешним миром. Для управления будем использовать приложение от не безызвестного AlexGyver. Также, как и в первой версии лампы, возьмем светодиодную ленту WS2812 с плотностью 60 диодов на метр. Всего понадобиться 120 диодов, то есть 2 метра. В инструкции от первой версии данной лампы, я упустил несколько важных моментов, сегодня я исправлю сие досадное недоразумение.

Бегом за покупками:
— Arduino Pro Mini 5V
— Bluetooth модуль (HC-05 или HC-06)
— Соединительные провода
— Небольшой обрезок пластиковой трубки диаметром 6 мм (подойдет и тоньше)
— Пластик матовый или «молочный»
— Гофрированный картон
— USB-TTL
— USB коннектор
— Блок питания 5 V, минимум 2 A
— Пилка по металлу
— Термоклеевой пистолет
— Паяльник, канифоль, припой и тд. и тп.
Шаг 1 Собираем корпус лампы.
Корпус что в первой версии что во второй одинаковые. Поэтому идем по ссылке

И выполняем все из «Шаг 1 Подготовка основы и светодиодов.».
Вырезаем картонку:
Лампа призма на Arduino c Bluetooth управлением
Складываем ее в форме призмы:
Лампа призма на Arduino c Bluetooth управлением
Скотча светодиодной ленты не всегда достаточно, лучше обклеить картонную основу двусторонним скотчем:
Лампа призма на Arduino c Bluetooth управлением
Теперь можем наклеивать светодиоды, клеим их параллельными линиями, все в одном направлении:
Лампа призма на Arduino c Bluetooth управлением
Не забываем вывести провода от первой полосы:
Лампа призма на Arduino c Bluetooth управлением
Именно в этом шаге я и забыл написать об изготовление финишного покрытия пластиком. Исправляюсь. Нам необходим пластик толщиной от 2 до 5 мм. Пластик должен быть матовый или как его еще называют «молочный». Его можно заказать в интернет магазине или aliexpress. А можно сделать как я. Взять пластик от ненужного ЖК монитора. Разобрав старый ЖК монитор или телевизор вынимаем матрицу. Аккуратно разбираем саму матрицу, там должно быть несколько слоев светофильтров (пленок) и матовый рассевающий пластик. Вот именно из такого я сделал данную лампу. Достав такой пластик вырезаем из него три прямоугольника. Если вы хотите, чтобы светодиоды были видны как точки, как у моей лампы, пластик надо клеить вплотную к светодиодам. В таком случаем прямоугольники должны быть 137 х 95 мм. Выглядят примерно так:
Лампа призма на Arduino c Bluetooth управлением
Можно сделать так, чтобы светодиоды сливались в один источник света, тогда необходимо пластик закрепить на расстоянии 10 — 20 мм от светодиодов. Для этого прямоугольники надо вырезать размером 137 х 110 мм. Пластик лучше всего резать ручной ножовкой по металлу. Получается долго, зато надежно. Электролобзик лучше не использовать, так как из-за быстрого движения пилки, пластик будет нагреваться, плавиться и налипать на пилку, ломая тем самым пластик и делая место реза не аккуратным.
В итоге должно получиться так:
Лампа призма на Arduino c Bluetooth управлением
Шаг 2 Электронная часть.
Как я уже говорил, основой будет Arduino Pro Mini.
Лампа призма на Arduino c Bluetooth управлением
Брать следует версию с питанием от 5 вольт. Чтобы Arduino занимала меньше сета, штекеры не стоит распаивать. Bluetooth модулей сейчас много, я думаю подойдет любой. Я буду настраивать и писать от HC-05.
Лампа призма на Arduino c Bluetooth управлением
Забегая вперед скажу, версий скетча для Arduino будет несколько. В зависимости от скетча будут разные варианты подключения Bluetooth модуля к Arduino.

Итак, если вы хотите, чтобы у Arduino была одновременно связь и с компьютером, и с Bluetooth модулем – выбирайте скетчи с программным портом связи (в названиях скетча будет написано SoftSeriel). В этих скетчах с компьютер Arduino связана по обычным (аппаратным TX RX), а с модулем Bluetooth связана через программную реализацию линии связи. В таких скетчах подключение следующее:
Arduino Bluetooth
D7 (TX) – RX
D8 (RX) – TX
5V – VCC
GND –GND
В названиях скетчей, где невозможно одновременное подключение компьютера и Bluetooth модуля, будет написано просто BT. Для заливки этих скетчей к Arduino подключается USB-TTL. А для работы к тем же контактами подключается HC-05. То есть подключение следующее:
Arduino Bluetooth
D1 (TX) – RX
D0 (RX) – TX
5V – VCC
GND –GND
Во всех скетчах лента подключается одинаково. Не забывайте, что ленте нужно питание. И ленту, и Arduino, и HC-05 (HC-06) будет питать от одного USB провода. Нельзя подключать эту лампу к порту USB компьютера или ноутбука. Максимально допустимый ток на USB портах 500 мА. Этого недостаточно для нормальной работы лампы. Подключать можно к зарядкам с USB портом или блокам питания с выходом 5 В и минимум 2 А.
Лампа призма на Arduino c Bluetooth управлением
Сигнальный провод от светодиодной ленты (Din) подключаем к D5 Arduino.
Лампа призма на Arduino c Bluetooth управлением
Шаг 3 Настройка Bluetooth модуля.
Теперь перейдем к настройке Bluetooth модуля. Модули бывают очень разные:
Лампа призма на Arduino c Bluetooth управлением
Но все они подключаются одинаково. И для начал необходимо подключить к его USB-TTL следующим образом
USB-TTL — Bluetooth
TX – RX
RX – TX
5V – VCC
GND –GND

Открываем окно терминала или монитор порта в Arduino IDE. В настройках терминала надо установить скорость 38400, и поставить отправку NL и CR. Насчет скорости могу ошибаться, так как разные модули идут с разными по умолчанию скоростями. Если модуль не получает и не принимает ничего, ищите нужную скорость, методом тыка. Для HC-06 скорость 9600, NL и CR не нужен. Если вы все сделали правильно, попробуйте отправить команду:
AT

Должен прийти ответ «ok». Если пришло, значит можно продолжать настройку модуля. Меняем имя модуля, чтобы знать к чему вы подключаетесь командой:
AT+NAME<имя>

Теперь необходимо задать скорость работы канала связи Bluetooth. Для скетча «GyverMatrixOS» это 9600. Вводим следующую команду:
AT+UART=9600,0,0

Для всех остальных скетчей нужна скорость 57600. Устанавливаем ее командой:
AT+UART=57600,0,0

Если вы запутались в настройках, верните их к заводским, введя команду:
AT+ORGL

Чуть не забыл! Модули рекомендую покупать сразу распаянные на DIY плате, для удобно подключения к Arduino:
Лампа призма на Arduino c Bluetooth управлением

Шаг 4 Подготовка программ.
Для редактирования и заливки скетча нам понадобиться Arduino IDE. Последнюю версию, которой всегда можно скачать с официального сайта программы.

В нее надо добавить следующие библиотеки: Adafruit_NeoPixel, Adafruit_GFX_Library и SoftwareSerial. Вы можете воспользоваться менеджером библиотек, найти в нем нужные и установить. Менеджер находиться в Arduino IDE меню «Скетч» — «Подключить библиотеку». Или можете скачать их в следующих архивах:

adafruit_gfx_library.rar
adafruit_neopixel.rar
softwareserial.rar

Если вы хотите использовать скетч «GyverMatrixOS», вам необходимо зайти на сайта AlexGyver-а на страницу проекта и скачать архив со скетчем и всеми необходимыми библиотеками оттуда.

Шаг 5 Скетчи.
Как и обещал у меня несколько скетчей. Самый простенький. Для даже не понадобиться Bluetooth модуль. Просто заливаете его в Arduino, подключаете ленту без Bluetooth модуля. И радуетесь новому ночнику, который будет менять по кругу большое количество, разных эффектов:
ard_prizma.rar

Яркость можно поменять только в скетче в стоке:

strip.setBrightness(10);

Просто, надежно. Включил в розетку и все готово.

Следующий скетч работает по аппаратному последовательному порту, команды можно отправлять с компьютера, через терминал. Или подключив Bluetooth модуль через приложение:
ard_prizma_bt.rar

Скетч работающий по программному последовательно порту, можно подключить HC-05 (HC-06) и компьютер одновременно.
ard_prizma_bt_softserial.rar

Для любителей большого количества эффектов и большого функционала (в том числе пару игр и прочее) советую воспользоваться скетчем «GyverMatrixOS», скаченного с сайта проекта.

Настройки для нашей призмы для скетча «GyverMatrixOS»:
USE_BUTTONS 0 // использовать физические кнопки управления (0 нет, 1 да)
BUTT_UP 3 // кнопка вверх
BUTT_DOWN 5 // кнопка вниз
BUTT_LEFT 2 // кнопка влево
BUTT_RIGHT 4 // кнопка вправо
LED_PIN 5 // пин ленты
BRIGHTNESS 10 // стандартная макcимальная яркость (0-255)
WIDTH 15 // ширина матрицы
HEIGHT 8 // высота матрицы
MATRIX_TYPE 1 // тип матрицы: 0 — зигзаг, 1 — последовательная
CONNECTION_ANGLE 3 // угол подключения: 0 — левый нижний, 1 — левый верхний, 2 — правый верхний, 3 — правый нижний
STRIP_DIRECTION 2 // направление ленты из угла: 0 — вправо, 1 — вверх, 2 — влево, 3 — вниз
SCORE_SIZE 0 // размер букв счёта в игре. 0 — маленький (для 8х8), 1 — большой
FONT_TYPE 1 // (0 / 1) два вида маленького шрифта
GLOBAL_COLOR_1 CRGB::Green // основной цвет №1 для игр
GLOBAL_COLOR_2 CRGB::Orange // основной цвет №2 для игр
Шаг 6 Настройка телефона для управления.
Для управления лампой воспользуемся телефоном. Для моего скетча подойдет любая программа для работы с Bluetooth, например «Arduino Bluetooth Control». Ее можно скачать с «Google Play»

Для скетча от AlexGyver понадобиться его собственная программа, ее также можно скачать на телефон или планшет с «Google Play»

Лампа призма на Arduino c Bluetooth управлением

administrator

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.