Оглавление:
- Шаг 1: программирование
- Шаг 2: Код
- Шаг 3: Сборка электроники для контроллера
- Шаг 4:
- Шаг 5:
- Шаг 6:
- Шаг 7:
- Шаг 8:
- Шаг 9:
- Шаг 10:
- Шаг 11: Сборка светового пера
- Шаг 12:
- Шаг 13:
- Шаг 14:
- Шаг 15:
- Шаг 16: Примеры
- Шаг 17: файлы
Видео: Светодиодная ручка RGB для светописи: 17 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Это полная инструкция по сборке инструмента для рисования светом, в котором используется контроллер светодиодов RGB. Я часто использую этот контроллер в своих продвинутых инструментах и думал, что документальный фильм о том, как он построен и запрограммирован, может помочь некоторым людям.
Этот инструмент представляет собой модульное световое перо с RGB-подсветкой, предназначенное для легкого письма, рисования и освещения граффити. Им легко пользоваться, потому что у вас только перо в руке, и вы можете быстро изменить цвет.
Инструмент состоит из:
- чехол, напечатанный на 3D-принтере
- Arduino Micro
- светодиод WS2816B
- два потенциометра (10К или 100К)
- два переключателя
- кнопка
- и некоторые кабели.
Arduino Micro идеально подходит для этого, потому что он чрезвычайно мал и отлично подходит для управления светодиодами RGB. Вы также можете использовать микроконтроллеры даже меньшего размера, такие как LilyPad или даже ATtiny85, но я часто использую Micro, потому что он прост в использовании, поскольку он поставляется с готовым к использованию USB-разъемом. И Arduino, и светодиод питаются от 5 В, поэтому вам нужно позаботиться о правильной поддержке питания. Этот инструмент предназначен для использования четырех аккумуляторных батарей AAA, потому что они обычно имеют напряжение 1,2 В и вместе взятые 4,8 В, которых достаточно для питания как Arduino, так и светодиода. Старайтесь не использовать обычные батарейки AAA, потому что они имеют напряжение 1,5 В, а общее напряжение может быть слишком большим для компонентов и может привести к их повреждению. Если вы хотите использовать обычные батареи, используйте только три, напряжения все равно должно хватить. Я использовал еще одну отличную деталь, напечатанную на 3D-принтере от кого-то другого, для батарейного отсека, которую можно найти здесь: «Сгибание держателей батарей».
Шаг 1: программирование
Сначала вам понадобится Arduino IDE для программирования микроконтроллера, который можно бесплатно загрузить и использовать. На первый взгляд это звучит довольно сложно, но на самом деле все довольно просто. После установки программного обеспечения вы получите простое окно текстового редактора, которое используется для кодирования скетча, загруженного в Arduino. Этот инструмент также использует библиотеку FastLED, которая является отличной и простой в использовании библиотекой, которая позволяет управлять практически любыми типами RGB-светодиодов, которые вы можете купить. После загрузки библиотеки вам необходимо установить, поместив файлы в папку библиотеки, созданную Arduino IDE. Обычно его можно найти в папке «C: / Users {Имя пользователя} Documents / Arduino / libraries», если вы не меняли его. После помещения библиотеки в эту папку необходимо перезапустить среду IDE, если она уже запущена. Теперь мы готовы создать код для контроллера.
Шаг 2: Код
Чтобы сначала использовать библиотеку FastLED, мы должны включить ее в наш код. Это делается в верхней части кода, прежде чем что-либо еще, с помощью этой строки:
#включают
Далее мы собираемся определить несколько констант. Это сделано потому, что эти значения не изменятся во время выполнения кода, а также для того, чтобы он был более читабельным. Вы можете поместить эти значения непосредственно в код, но тогда, если вам нужно что-то изменить, вам придется пройти через весь код и изменить каждую строку, в которой используется значение. Используя определенные константы, вам нужно изменить его только в одном месте и не нужно трогать основной код. Сначала мы определяем контакты, которые используются этим контроллером:
#define HUE_PIN A0
#define BRIGHT_PIN A1 #define LED_PIN 3 #define LIGHT_PIN 6 #define COLOR_PIN 7 #define RAINBOW_PIN 8
Номера или имена такие же, как напечатаны на Arduino. Аналоговые контакты обозначаются буквой A перед номером, цифровые контакты используют только номер в коде, но иногда печатаются на плате с буквой D.
Потенциометр на контакте A0 используется для управления оттенком цвета, потенциометр на контакте A1 используется для управления яркостью. Контакт D3 используется в качестве сигнала для светодиода, поэтому Arduino может отправлять данные для управления цветом. Контакт D6 используется для переключения света, а контакты D7 и D8 используются для установки режима контроллера. Я реализовал режимы в этом контроллере, один просто помещает цвет, определенный цветным потенциометром, на светодиод, а другой будет плавно переходить во все цвета. Далее нам также понадобятся несколько определений для библиотеки FastLED:
#define COLOR_ORDER GRB
#define CHIPSET WS2811 #define NUM_LEDS 5
Набор микросхем используется, чтобы сообщить библиотеке, какой тип светодиода мы используем. FastLED поддерживает практически любые доступные светодиоды RGB (например, NeoPixel, APA106, WS2816B и т. Д.). Светодиод, который я использую, продается как WS2816B, но кажется немного другим, поэтому он лучше всего работает с набором микросхем WS2811. Порядок байтов, отправляемых светодиоду для установки цвета, также может различаться у разных производителей, поэтому у нас также есть определение порядка байтов. Определение здесь просто указывает библиотеке отправлять цвета в следующем порядке: зеленый, красный, синий. Последнее определение касается количества подключенных светодиодов. Вы всегда можете использовать меньше светодиодов, чем вы определяете в коде, поэтому я установил число 5, потому что с помощью этого инструмента я не буду разрабатывать ручки с более чем 5 светодиодами. Вы можете установить это число намного выше, но из-за производительности я оставляю его настолько маленьким, насколько мне это нужно.
Для основного кода нам также понадобится несколько переменных:
int яркость = 255;
беззнаковое int pot_Reading1 = 0; беззнаковое int pot_Reading1 = 0; беззнаковый длинный lastTick = 0; беззнаковый int wheel_Speed = 10;
Эти переменные используются для яркости, показаний потенциометров, запоминания времени последнего выполнения кода и скорости исчезновения цвета.
Затем мы определяем массив для светодиодов, который является простым способом установить цвет. Определенное количество светодиодов используется для установки размера массива здесь:
Светодиоды CRGB [NUM_LEDS];
Позаботившись об определениях, мы можем теперь написать функцию настройки. Это довольно коротко для этой программы:
void setup () {
FastLED.addLeds (светодиоды, NUM_LEDS).setCorrection (TypicalLEDStrip); pinMode (LIGHT_PIN, INPUT_PULLUP); pinMode (COLOR_PIN, INPUT_PULLUP); pinMode (RAINBOW_PIN, INPUT_PULLUP); }
Первая строка инициализирует библиотеку FastLED, используя определения, которые мы установили ранее. Последние три строки сообщают Arduino, что эти контакты используются в качестве входных и что, если они ни к чему не подключены, их напряжение должно быть установлено на высокое значение (PULLUP). Это означает, что мы должны подключить эти контакты к GND, чтобы что-то запустить.
Теперь мы можем заняться основной программой. Это делается в функции цикла. Сначала мы устанавливаем некоторые переменные и считываем показания потенциометров:
void loop () {
статический uint8_t hue = 0; статический uint8_t wheel_Hue = 0; pot_Reading1 = аналоговое чтение (HUE_PIN); оттенок = карта (pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = аналоговое чтение (BRIGHT_PIN); яркость = карта (pot_Reading2, 0, 1023, 0, 255);
Первые две строки устанавливают переменные, которые позже используются для цвета. Два следующих блока заботятся о считывании значений потенциометра. Поскольку вы получаете значение от 0 до 1023, если считываете вывод с помощью «analogRead», но для оттенка и яркости требуется значение от 0 до 255, мы используем функцию «map» для перевода показаний из одной области значений в другую. Первый параметр этой функции - это значение, которое вы хотите перевести, последние четыре - это минимум и максимум регионов, которые вы хотите использовать для перевода.
Далее мы собираемся оценить кнопку:
if (digitalRead (LIGHT_PIN) == LOW) {
Мы сравниваем показания с LOW, потому что мы определили, что контакт будет высоким, если он не срабатывает. Таким образом, если кнопка нажата, контакт будет подключен к GND и будет считаться низким. Если штифты не нажимаются, делать особо нечего.
Сначала займемся освещением светодиода одним цветом:
if (digitalRead (COLOR_PIN) == LOW) {
если (оттенок <2) {FastLED.showColor (CRGB:: Белый); FastLED.setBrightness (яркость); } else {FastLED.showColor (CHSV (оттенок, 255, яркость)); FastLED.setBrightness (яркость); } задержка (10);
Нам нужно оценить цвет булавки, чтобы знать, что мы хотим использовать этот режим. Затем мы можем проверить, какой цвет нам нужен. Поскольку здесь используется цветовая модель HSV, нам нужен только оттенок для определения цвета. Но это также создает проблему, заключающуюся в том, что у нас нет возможности установить белый цвет. Поскольку оттенок 0 и оттенок 255 оба переводятся в красный, я использую здесь небольшой трюк и проверяю, меньше ли показание потенциометра оттенка 2. Это означает, что потенциометр полностью повернут в одну сторону, и мы можем использовать это, чтобы установить белый цвет.. У нас все еще есть красный цвет с другой стороны, поэтому здесь ничего не потеряем.
Таким образом, мы либо устанавливаем белый цвет, а затем яркость, либо устанавливаем цвет на основе значения оттенка, а также яркости.
Впоследствии я добавил небольшую задержку, потому что гораздо лучше дать контроллеру немного простоя для экономии энергии, и задержка в 10 миллисекунд не будет ощущаться.
Далее мы кодируем исчезновение цвета:
иначе, если (digitalRead (RAINBOW_PIN) == LOW) {
wheel_Speed = карта (pot_Reading1, 0, 1023, 2, 30); если (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = millis (); } FastLED.showColor (CHSV (wheel_Hue, 255, яркость)); }
Сначала проверяется контакт для переключения этого режима. Поскольку я не хотел добавлять третий потенциометр для управления скоростью затухания, и поскольку потенциометр оттенка не используется в этом режиме, мы можем использовать этот потенциометр для установки скорости. Снова используя функцию карты, мы можем преобразовать чтение в задержку, которая преобразуется в скорость затухания. Я использовал значение от 2 до 30 для задержки, потому что по опыту это хорошая скорость. Функция «миллис» вернет миллисекунды с момента включения Arduino, поэтому мы можем использовать это для измерения времени. Последнее изменение оттенка сохраняется в переменной, которую мы определили ранее, и каждый раз сравнивается, чтобы увидеть, нужно ли нам снова менять оттенок. Последняя строка просто устанавливает цвет, который должен отображаться следующим образом.
Чтобы закончить код:
} еще {
FastLED.showColor (CRGB:: Черный); }}
Нам просто нужно выключить светодиод, если кнопка не нажата, установив черный цвет и закрыв все открытые скобки.
Как видите, это довольно короткий и простой код, который можно использовать для множества инструментов, использующих светодиоды RGB.
Получив полный код, вы можете загрузить его в Arduino. Для этого подключите Arduino к компьютеру с помощью USB-кабеля и выберите тип Arduino в среде IDE.
В этой инструкции я использую Arduino Pro Micro. После установки модели Arduino вам необходимо выбрать порт, по которому IDE сможет его найти. Откройте меню порта, и вы должны увидеть подключенный Arduino.
Теперь остается только загрузить код в Arduino, нажав вторую круглую кнопку в верхней части окна. IDE построит код и загрузит его. После успешного завершения вы можете отключить Arduino и продолжить сборку контроллера.
Шаг 3: Сборка электроники для контроллера
Поскольку мы позаботились о кодировании Arduino, теперь мы можем собрать аппаратное обеспечение контроллера. Начнем с помещения компонентов внутрь корпуса. Потенциометры входят в два круглых отверстия слева, переключатель питания находится внизу, переключатель режима находится вверху справа, а Arduino входит в держатель посередине.
Шаг 4:
Начните с припайки красного кабеля от переключателя питания к контакту RAW на Arduino. Этот вывод является выводом для источника питания, поскольку он подключен к регулятору напряжения, поэтому, даже если напряжение выше 5 В, этот вывод можно использовать для питания Arduino. Затем припаяйте еще один красный провод к выводу VCC, так как нам нужно напряжение высокого уровня для потенциометра. Припаяйте два белых провода к контактам A0 и A1, которые будут использоваться для считывания показаний потенциометра.
Шаг 5:
Теперь пропустите длинный белый и длинный зеленый провод через отверстие вверху, которые позже используются для подключения светодиода. Припаяйте зеленый к контакту 3 и белый к контакту 6 и прижмите их к Arduino. Припаяйте два черных провода к контактам GND на левой стороне Arduino, они используются для низкого уровня напряжения для потенциометров. Припаяйте два синих провода к контактам 7 и 8, которые будут использоваться для переключателя режимов.
Шаг 6:
Красный кабель, который мы припаяли к выводу VCC, теперь нужно припаять к одному из внешних выводов первого потенциометра. Используйте другой красный кабель, чтобы перейти ко второму потенциометру. Обязательно используйте одну и ту же сторону на обоих потенциометрах, чтобы на обоих потенциометрах была одна и та же сторона. Припаяйте два черных кабеля к другой стороне потенциометров и белые кабели от контактов A0 и A1 к среднему контакту. Потенциометры работают, устанавливая напряжение на среднем контакте равным напряжению между напряжениями, приложенными к внешним контактам, поэтому, если мы соединяем высокое и низкое напряжение, мы можем получить напряжение между ними на среднем контакте. На этом завершена разводка потенциометров, и их можно немного повернуть, чтобы контакты не мешали.
Шаг 7:
Припаяйте черный кабель к среднему контакту переключателя режимов и пропустите длинный черный кабель через отверстие, ведущее к источнику питания. Пропустите еще один длинный черный кабель через верхнее отверстие, который будет использоваться как GND для светодиода.
Шаг 8:
Черный кабель, идущий от источника питания, припаян к другому черному проводу, который подключен к последнему свободному контакту GND Arduino. Припаяйте провод, ведущий к светодиоду, и черный провод на переключателе режимов вместе и, наконец, припаяйте две пары черных проводов, которые у вас теперь есть. Используйте термоусадочную трубку, чтобы изолировать пайку, чтобы предотвратить короткое замыкание внутри контроллера.
Шаг 9:
В качестве последнего шага мы можем припаять два синих провода к переключателю режима. Эти переключатели работают путем подключения среднего контакта к одному из внешних контактов в зависимости от того, на какой стороне находится переключатель. Поскольку контакты 7 и 8 настроены на срабатывание при подключении к GND, мы можем использовать внешние контакты переключателя для контактов, а средний - для GND. Таким образом, всегда срабатывает один из выводов.
Наконец, пропустите красный провод через отверстие питания и припаяйте его к среднему контакту переключателя питания, а другой длинный красный провод через отверстие к светодиоду и припаяйте к тому же контакту переключателя питания, к которому подключен Arduino.
Шаг 10:
Припаяйте силовые кабели к держателю батареи и прикрутите зажим, который удерживает кабели, ведущие к светодиоду. На этом электромонтаж контроллера завершен.
Шаг 11: Сборка светового пера
Поскольку этот инструмент должен быть модульным и использовать разные ручки, нам понадобится соединитель на проводах для светодиода. Я использовал дешевый 4-контактный разъем Molex, который обычно можно найти на кабелях, используемых для вентиляторов в компьютере. Эти кабели дешевы, их легко достать, поэтому они идеальны.
Шаг 12:
Когда я начал подключать контроллер, я не проверял цвета кабелей на разъемах, поэтому они немного отличаются, но их легко запомнить. Я подключил черные провода, питание к желтому, зеленый к зеленому и белый к синему, но вы можете использовать любую комбинацию, которая вам нравится, просто запомните ее и для других ручек. Обязательно изолируйте места пайки термоусадочной трубкой во избежание короткого замыкания.
Шаг 13:
Проденьте длинный красный и длинный зеленый провод через ручку и припаяйте черные провода к одной стороне кнопки и белый провод к другой стороне. Эти кнопки имеют четыре контакта, два из которых соединены попарно. Вы можете увидеть, какие контакты подключены, посмотрев на нижнюю часть кнопки, между парами, которые подключены, есть зазор. Если вы нажмете кнопку, две стороны соединятся с другой. Затем протягивают белый и черный кабель к концу ручки, начиная с отверстия для кнопки. Другой черный кабель протянут вперед. Убедитесь, что у вас достаточно кабеля с обеих сторон для работы.
Шаг 14:
Вставьте кнопку в отверстие и подготовьте остальные кабели. Лучше всего припаять кабели к светодиоду так, чтобы они были обращены к середине светодиода, потому что кабели проходят через середину пера. Припаяйте красный провод к паяльной площадке 5 В, черный провод к паяльной площадке GND и зеленый провод к паяльной площадке Din. Если у вас более одного светодиода, паяльная площадка Dout первого светодиода подключается к Din следующего светодиода и так далее.
Шаг 15:
Теперь нажмите кнопку на передней части ручки и нанесите за нее каплю клея, чтобы она удерживалась на месте.
Теперь вам просто нужно припаять провода на конце ручки к другой стороне разъема, учитывая цвета.
Лучше всего использовать каплю клея и немного ленты, чтобы ослабить натяжение кабелей на конце пера, чтобы они не порвались. На этом сборка светового пера завершена.
Шаг 16: Примеры
Наконец, я хочу показать вам несколько примеров, в которых я использовал этот инструмент. Угловое перо отлично подходит для освещения линий граффити, а прямое перо отлично подходит для рисования и письма в воздухе (к чему у меня мало таланта).
Это основная цель этого инструмента. Как видите, возможности потрясающие, если вы комбинируете с этим инструментом длинные выдержки.
Чтобы начать с такого рода фотографии, попробуйте использовать самые низкие значения ISO, поддерживаемые вашей камерой, и высокую диафрагму. Хороший способ найти правильные настройки - это перевести камеру в режим диафрагмы и закрыть диафрагму до тех пор, пока камера не покажет время экспозиции, примерно равное времени, необходимому для рисования того, что вы хотите добавить в изображение. Затем переключитесь в ручной режим и либо используйте это время экспозиции, либо используйте ручной режим.
Удачи, пробуя это! Это удивительное искусство.
Я добавил эту инструкцию в задачу изобретателей и необычных применений, так что если она вам нравится, оставьте голосование;)
Шаг 17: файлы
Я также добавил модели держателей для ремешков, которые должны быть приклеены к нижней части корпуса контроллера, чтобы вы могли закрепить его на руке, и зажим для ручки, который можно приклеить к крышке, когда ручка вам не нужна. в твоей руке.
Существуют также крышки диффузоров, которые можно использовать, чтобы сделать свет более плавным и предотвратить блики, когда перо направлено прямо в камеру.
Рекомендуемые:
Супер простая ручка для точечной сварки DIY (MOT Battery Tab Welder Pen) 10 $: 7 шагов (с изображениями)
Super Simple DIY Spot Welder Pen (MOT Battery Tab Welder Pen) 10 $: Я просматривал все сайты в Интернете, где продавались ручки для точечной сварки, и видел, как многие из них были собраны вместе. Я наткнулся на набор, который был дешевле остальных, но все же немного больше, чем я мог себе позволить. Потом я кое-что заметил. Все они
Простая ручка регулировки громкости DIY !: 5 шагов (с изображениями)
Простая ручка регулировки громкости своими руками !: У вас есть рабочий стол со звуковой системой далеко от того места, где вы сидите? - Да. Немного покопавшись, я обнаружил, что довольно легко сделать мою собственную мягкую ручку регулировки громкости по дешевке. В этом уроке я покажу вам, как создать ручку регулировки громкости USB f
Ручка для ноутбука: 16 шагов
Ручка для ноутбука: в этой инструкции я расскажу, как можно повысить портативность ноутбука с помощью ручки. Вот мой Dell Latitude CPI, 6,2 фунта сверхмощного портативного компьютера. Честно говоря, при весе 6,2 фунта он не очень портативный. Мне нужно было достать сумку, чтобы таскать ее с собой
Светодиодная ручка с магнитной активацией: 6 шагов
Светодиодная ручка, активируемая магнитом: удобный светильник в ручке, активируемый магнитом. Легкий проект
Управляемая светодиодная система RGB для вашего дома или офиса: 5 шагов (с изображениями)
Управляемая светодиодная система RGB для вашего дома или офиса: вам скучно светить в вашем доме или на рабочем месте? Вы хотите добавить в свою комнату немного энергии или настроения? В этом руководстве показано, как создать управляемую светодиодную матрицу RGB для использования в вашем доме или офисе. Ваш красный, зеленый, синий светодиод d