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

Создание динамической бегущей строки на Arduino Nano и NeoPixel

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

Необходимые инструменты

О проекте

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

Сборка

Схема подключения очень проста: три провода от Arduino Nano к ленте NeoPixel — 5V, земля и сигнальный провод (в примере используется пин 2). Рекомендуется использовать термоусадку для защиты паяных контактов на ленте от отрыва.

Создание динамической бегущей строки на Arduino Nano и NeoPixel

Программирование

В скетче нужно задать количество светодиодов в ленте (переменная numOfLeds), загрузить код в Arduino и протестировать. В примере реализованы три анимации: «бегущий» светодиод, мигание и пульсация яркости — все в белом цвете. Код легко модифицируется для любых цветов и эффектов.

Создание динамической бегущей строки на Arduino Nano и NeoPixel

Механическая часть

Автор использовал два куска картона, вставляемых в корпус автомата. На один клеится лента NeoPixel, второй служит экраном, предотвращающим прямое свечение вниз. Картон заклеивается гофротрубкой (для затемнения), провода и плата фиксируются сзади. Всё устанавливается в корпус, питание подается по USB (в примере — от Raspberry Pi).

Создание динамической бегущей строки на Arduino Nano и NeoPixel

Для лучшего результата марку (прозрачную панель с рисунком) рекомендуется печатать на фото-бумаге или, идеально, заказывать печать на пленке в типографии.

Библиотеки

Код

/* **********************************************************************
 * Marquee lighting with Neopixels by ericBcreator
 * simple script for lighting an (arcade) marquee
 **********************************************************************
 * last update 20181021 by ericBcreator
 *
 * Inspired by an article by sandyjmacdonald
 * https://sandyjmacdonald.github.io/2015/12/02/picade-errata/
 *
 * components:
 * - Neopixel strip
 * - Arduino Nano
 *
 * This code is free for personal use, not for commercial purposes.
 * Please leave this header intact.
 *
 * contact: ericBcreator@gmail.com
 ********************************************************************** */

#include <Adafruit_NeoPixel.h>
#define PIN 2

int numOfLeds = 11;
int minBrightness = 80;
int maxBrightness = 255;
int walkingLedsDelay = 250;
int flashDelay = 250;
int numOfFlashLoops = 3;
int numOfPulseLoops = 10;
int pulseDelay = 20;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(numOfLeds, PIN);

void setup() {
  strip.begin();
}

void loop() {
  walkingLeds();
  flashLeds();
  for (int i = 0; i < numOfPulseLoops; i++)
    pulseBrightness();
}

void walkingLeds() {
  setLedColorsToZero();
  strip.setBrightness(maxBrightness);
  strip.show();
  for (int x = numOfLeds; x > 0; x--) {
    strip.setPixelColor(x, strip.Color(255, 255, 255));
    strip.show();
    delay(walkingLedsDelay);
    strip.setPixelColor(x, 0);
    strip.show();
  }
}

void flashLeds() {
  setLedColors();
  for (int i = 0; i < numOfFlashLoops; i++) {
    strip.setBrightness(maxBrightness);
    strip.show();
    delay(flashDelay);
    strip.setBrightness(minBrightness);
    strip.show();
    delay(flashDelay);
  }
}

void pulseBrightness() {
  setLedColors();
  for (int i = minBrightness; i < maxBrightness; i++) {
    strip.setBrightness(i);
    strip.show();
    delay(pulseDelay);
  }
  for (int i = maxBrightness; i > minBrightness; i--) {
    strip.setBrightness(i);
    strip.show();
    delay(pulseDelay);
  }
}

void setLedColors() {
  for (int x = 0; x < numOfLeds; x++)
    strip.setPixelColor(x, strip.Color(255, 255, 255));
}

void setLedColorsToZero() {
  for (int x = 0; x < numOfLeds; x++)
    strip.setPixelColor(x, strip.Color(0, 0, 0));
}

Схема

Создание динамической бегущей строки на Arduino Nano и NeoPixel

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

  1. Построение доступной беспроводной сети датчиков для дома
  2. Создание интернет-управляемого видеostreaming-робота на Arduino и Raspberry Pi
  3. Оптимизация электрических схем в E3.schematic: умные функции
  4. Управление потолочным вентилятором через Alexa: пошаговое руководство
  5. Мониторинг температуры дома из любой точки через Arduino IoT Cloud
  6. Управление телевизором через Alexa и Arduino IoT Cloud — пошаговое руководство
  7. Интеграция центрального отопления с Arduino: умное управление по OpenTherm
  8. ThimbleKrox: управление мышью с пальца на Arduino Micro и MPU-6050
  9. Arduino MKR1000: полное руководство по распиновке, питанию и старту для IoT
  10. Раскройте передовые возможности автоматизации: почему 3D зрение необходимо для ваших проектов