Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

DIY Теневой театр на Arduino и адресной LED-ленте: световое шоу к праздникам

Компоненты и материалы

Arduino 101 (встроенный BLE) 1
Адресная RGB-лента (SparkFun или любая WS2812B) 1
Разъемы barrel jack (male + female) 1+1
Короб для 3×AA с выключателем (SparkFun) 1
AA батарейки 3
Step-up преобразователь 12В (Pololu) — питание Arduino 101 от тех же батарей 1
Обычная бумага A4 (4 листа) — шаблоны фом-кора 1
Картон 100 lb (4 листа A4) — силуэты и домики 1
Фом-кор 3/16" (4 листа 8.5×11") — сцена 1

Инструменты

Приложения и библиотеки

О проекте

Обзор

Arduino 101 + адресная LED-лента + фом-кор + картон = телефонно-управляемый анимированный теневой театр. Электроника не повреждается — потом можно переиспользовать. Wishlist SparkFun с 99% электроники.

Принцип: Лента наматывается на фом-кор в центре сцены. Нижние LED (под сгибом) последовательно зажигаются и светят через отверстия-дырочки — создается анимация «падающего снега». Средние LED направлены в домики наверху (задний и передние). Последний LED (хвост ленты) светит на всю сцену — создает главный тень.

Arduino 101 имеет BLE. Управление через Blynk: цвет в домиках, мерцание огня, яркость главного света.

Часть 1: Электроника

  1. Отрежьте концевой разъем ленты (~1 см), обделайте провода.
  2. Припаяйте к зеленому и желтому проводам прямые pin-разъемы (для Arduino).
  3. Красный провод → VIN стабилизатора Pololu. В GND и VOUT стабилизатора впаяйте pin-разъемы.
  4. Barrel jack male: красный → +, черный → - (от батарейника). Закрутите клеммы.
  5. Barrel jack female: желтый → -, красный → + (от начала ленты).
  6. Подключение к Arduino 101: зеленый → D6, желтый → GND (у пина 13). Стабилизатор: GND → GND, VOUT → Vin Arduino. Не перепутайте! Обратная полярность = дым и запах жженого.

Часть 2: Сборка сцены из фом-кора

  1. Распечатайте шаблоны фом-кора (4 листа А4) и картона (4 листа). Вырежьте детали фом-кора по контурам (ножом переносите линии).
  2. Соберите держатель ленты: наклейте первый LED на дно, намотайте ленту змейкой (3 витка), хвост оставьте свободным, верх зафиксируйте.
  3. Нумерация LED: адресные LED нумеруются от 0. Нижние (анимация) — например, 0,1,2, 20,21,22, 40,41,42. Между сгибом и первым делителем — LED для заднего домика (23). Перед вторым делителем — «огненный» LED (24/25). Сделайте карту нумерации под вашу ленту!
  4. Приклейте держатель на основание фом-кора (центр по длине). Приклейте боковые изогнутые стенки.
  5. Установите световые перегородки (большую у сгиба, меньшую выше — между ними минимум 1 LED). Приклейте верхнюю крышку.
  6. Последний LED ленты приклейте на верхний передний край — это главный теневоющий свет.

Часть 3: Прошивка и Blynk

  1. Подключите USB, соберите схему (батарейник ВЫКЛ). Нужен Arduino IDE с ядром Intel Curie, библиотеки Adafruit NeoPixel и Blynk.
  2. В скетче поменяйте номера LED под вашу карту:
    • int pos[] = {0,1,2,20,21,22,40,41,42}; — анимационные LED (порядок = направление снега)
    • int numLeds = 9;
    • int shadowPixel = 59; (последний на 60-LED ленте)
    • int lightHousePixel = 23; (между перегородками)
    • int firePixel = 24; (перед меньшей перегородкой)
  3. Компилируйте, загрузите, отключите USB, включите батарейник. Должен загореться shadowPixel, анимация побежит. Домики и огонь — по Blynk.
  4. Blynk: установите приложение, нажмите «Scan», отсканируйте QR-код из проекта — интерфейс загрузится сам (BLE виджет + 3 слайдера V0/V1/V2 0-100). Или создайте вручную.
  5. В Blynk: подключитесь к «ShadowTheatre», нажмите Play. После сна телефона может потребоваться переподключение.

Часть 4: Картонные силуэты и финал

  1. Вырежьте фоновый силуэт из картона (острое лезвие! Меняйте часто).
  2. Соберите домики: заднюю стенку на клей, лицевую сторону — наружу (без чернил).
  3. Установите домики на сцену (клей/скотч), задевайте щели — свет должен идти внутрь, а не боком.
  4. Согните боковые части силуэта, приклейте низ к заднему краю основания (печатная сторона от зрителя).
  5. Снежная сцена на задней стенке: вырежьте узоры/дырочки (зубчики, зубочистки, сложные вырезки). Приклейте на изогнутые края — проекционный экран.
  6. Приклейте левую и переднюю стенки. Правую — на скотч (чтобы добраться к выключателю батарейника).

Готово! Найдите темное место со стеной. При включении — тень сцены + падающий снег. В Blynk управляйте главным светом, домиками, огнем.

Скетч (Arduino)

/* Copyright (c) 2016 Intel Corporation. GNU LGPL v2.1+ */
/////////////////////// НАСТРАИВАЕМЫЕ ПАРАМЕТРЫ ///////////////////////
int pos[] = {0, 1, 2, 20, 21, 22, 40, 41, 42}; // LED для анимации снега
int numLeds = 9;
int shadowPixel = 59;      // главный теневоющий LED (последний)
int lightHousePixel = 23;  // LED в заднем домике
int firePixel = 24;        // LED для огня в передних домиках
///////////////////////////////////////////////////////////////////////

#include <Adafruit_NeoPixel.h>
#include <BlynkSimpleCurieBLE.h>
#include <CurieBLE.h>
#define PIN 6

int v0=0, v1=0, v2=0; // значения из Blynk
int fadeup=0, fadedown=0;
int firetimer=0, fireinterval=50, flicker=0;
unsigned long lightcounter=0, timer=0;
int stp=0, stpOld=0, interval=350;
char auth[] = "YourAuthToken"; // для BLE не используется, но оставьте

BLEPeripheral blePeripheral;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); // 60 = длина ленты

void setup() {
  delay(1000);
  timer = millis();
  strip.begin(); strip.show();
  blePeripheral.setLocalName("ShadowTheatre");
  blePeripheral.setDeviceName("ShadowTheatre");
  blePeripheral.setAppearance(384);
  Blynk.begin(auth, blePeripheral);
  blePeripheral.begin();
  interval = 350;
}

void loop() {
  Blynk.run();
  blePeripheral.poll();

  // Главный тень (shadowPixel) — теплый белый, яркость по V2
  strip.setPixelColor(shadowPixel, 200-v2, 160-v2, 160-v2);

  // Огонь (firePixel) — мерцание
  if (millis() - firetimer > fireinterval) {
    firetimer = millis();
    flicker = random(0, 40);
  }
  if (v0 > 1) strip.setPixelColor(firePixel, 80+v0+flicker, v0+flicker, 0);
  else strip.setPixelColor(firePixel, 0,0,0);

  // Свет в заднем домике (lightHousePixel)
  if (v1 > 1) strip.setPixelColor(lightHousePixel, 200-v1, v1, 0);
  else strip.setPixelColor(lightHousePixel, 0,0,0);

  // Анимация снега
  if (millis() - timer > interval) {
    stpOld = stp;
    timer = millis();
    lightcounter++;
    stp = lightcounter % numLeds;
    fadeup = 0; fadedown = 170;
  }
  fadeup += 2; fadeup = constrain(fadeup, 0, 170);
  fadedown -= 2; fadedown = constrain(fadedown, 0, 170);
  for (int i=0; i

Шаблоны для резки (Schematics)

  • Фом-кор: 4 листа А4 — распечатайте, перенесите ножом, вырежьте.
  • Картон: 4 листа A4 — домики, боковины, силуэты.
  • Векторный SVG для лазерной/виниловой резки: 30bn6Le68V1Lpp2spRMw.svg

Производственный процесс

  1. Эволюция и мастерство новогодних гирлянд: от древних традиций к современной инженерии
  2. Светодиоды (LED): от зарождения к 100-летнему ресурсу
  3. Проект Arduino: мелодия Coffin Dance — сборка и воспроизведение вирусного трека
  4. DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
  5. DIY-костюм «Облако»: LED-лента, Arduino Nano и детали SparkFun
  6. Сборка потрясающего 5x5x5 LED-куба на Arduino Mega
  7. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  8. Умная бутылка для воды на Arduino: мониторинг и напоминания в реальном времени
  9. Звукоактивируемый светодиодный дисплей 8 LED на Arduino
  10. Пошаговое руководство: сборка умного четырёхногого робота на Arduino