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

DIY POV-сфера: LED-световизуализация на Arduino Mega

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

Инструменты

О проекте

POV (Persistence of Vision) — эффект «задержки зрения». Любая лампа на переменном токе мерцает 50/60 Гц, но мозг видит постоянный свет. Используя один ряд быстро вращающихся LED, можно «нарисовать» сферическое изображение.

Используется 58 LED на полусферу (всего 116). Круг печатается на 3D-принтере. Подробности — в видео.

Код

Скетч d_nya.ino использует библиотеку FastLED. Массив kalp[40][75] хранит кадры анимации (сердечко и др.). Прерывание от датчика Холла (пин 3, INT1) синхронизирует вывод кадров с вращением.

#include "FastLED.h"
#define NUM_LEDS 58
#define DATA_PIN 6

unsigned char i, m;
unsigned int wait = 1;
unsigned int wait2 = 10;
byte hall = 0;
CRGB leds[NUM_LEDS];

// 40 кадров × 75 столбцов — битмап анимации
bool kalp[40][75] = {
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
  // ... (остальные 38 строк массива опущены для краткости)
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};

void setup() {
  FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
  attachInterrupt(1, LEDiyak, RISING); // INT1 на пине 3 (Mega)
  for (int i = 0; i < 58; i++) leds[i] = CRGB::Black;
  FastLED.show();
}

void LEDiyak() {
  hall++;
  if (hall > 2) hall = 0;
}

void loop() {
  if (hall > 0) {
    for (m = 0; m < 75; m++) {
      for (i = 0; i < 40; i++) {
        if (kalp[i][m] == 1) leds[i + 7] = CRGB::Green;
        else leds[i + 7] = CRGB::Blue;
      }
      FastLED.show();
      delayMicroseconds(wait);
    }
    // заполнение остальных LED
    for (int i = 0; i < 58; i++) leds[i] = CRGB::Blue;
    FastLED.show(); delayMicroseconds(wait2);
    for (int i = 0; i < 58; i++) leds[i] = CRGB::White;
    FastLED.show(); delayMicroseconds(wait2);
  }
}

Схемы

DIY POV-сфера: LED-световизуализация на Arduino Mega

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

  1. Arduino POV-часы: сборка дисплея на эффекте сохранения образа
  2. Визитка-PCB с игрой «Крестики-нолики» 4×4: руководство по проектированию, сборке и программированию
  3. Многопозиционная система датчиков температуры для интеграции в умный дом
  4. DIY-контроллер паяльника 862D+ — точность и надёжность
  5. MotionSense: умная система обнаружения проникновения на Arduino и ESP8266
  6. Пожарная безопасность 3D-принтера: умная система обнаружения дыма
  7. Сборка портативного дисплея на основе эффекта сохранения изображения с Arduino UNO и ATtiny85
  8. Веб-управляемый IoT-индикатор на Arduino, Yaler и IFTTT
  9. Магнитная левитация на отталкивании с Arduino: Простая схема и DIY-руководство
  10. CoroFence: термический детектор на GridEye + PIR с IoT