Световой меч на Ардуино своими руками

Представляем очередной проект на плате Arduino Nano «Световой меч со звуками Звездных войн». Расскажем, как в домашних условиях сделать световой меч своими руками со звуками из культового фильма Звездные войны. Световой меч (lightsaber) будет интересно изготовить самостоятельно не только детям, но и взрослым. Схема lightsaber и подробная технология изготовления проекта размещена далее.

Видео. Световой меч своими руками на Ардуино

Вся электронная начинка светового меча на Ардуино (плата Arduino Nano, микросхема М5450В7, мини mp3 плеер, аккумулятор и т.д.) размещены в рукоятке. Свечение lightsaber происходит от 30 светодиодов — драйвер светодиодов М5450В7 позволяет включать до 34 светодиодов, используя всего два цифровых выхода на Ардуино для управления. Звуки звездных войн можно проигрывать с SD-карты или флэшки.

Как сделать световой меч своими руками

Фото. Световой меч Звездных войн своими руками
Фото. Световой меч Звездных войн своими руками

Для этого проекта нам потребуется:

  • плата Arduino NANO;
  • микросхема М5450В7;
  • модуль DF Player Mini;
  • светодиоды;
  • тактовая кнопка
  • включатель;
  • аккумулятор на 12В;
  • проволока диаметром 2-3 мм;
  • прозрачная пластиковая труба;
  • геоткань или пароизоляция;
  • клей, термопистолет;
  • провода и изолента.

Изготавливаем световой меч (lightsaber)

1. Изготовление светящейся части лазерного меча

Для начала следует выпрямить кусок проволоки диаметром 2-3 мм и длиной 700 мм и разметить маркером места спайки светодиодов. В проекте было использовано 30 красных светодиодов (можно сделать до 35 светодиодов, если используется микросхема М5450В7 dip40), поэтому светодиоды были припаяны к проволоке через каждые 20 мм. В итоге светящаяся часть меча получится порядка 60 см.

Изготовление лазерного меча из светодиодов своими руками
Фото. Изготовление лазерного меча из светодиодов своими руками

На фото представлена пошаговая инструкция изготовления лазерного меча своими руками в домашних условиях. Лучше всего использовать провода с минимальным сечением, поскольку в итоге 30 проводов (это значительный пучок) будут идти к ножкам микросхемы М5450. Начинать монтаж светодиодов следует с верхушки меча, плюсовая ножка припаивается к проволоке, а минус идет на микросхему.

Фото. Распиновка микросхемы М5450В7 dip40
Фото. Распиновка М5450В7 dip40 (ножка 19 и 20 соединены резистором)

На этой картинке указана распиновка микросхемы М5450В7 с 40 контактами. Как видите, питание микросхемы производится от платы Arduino с выхода 5V, управление световым мечом осуществляется за счет использования двух ножек (DATA и CLOCK). В итоге, используя всего два цифровых выхода на Ардуино, мы можем управлять включением и выключением 34 светодиодов лазерного меча.

2. Подключение микросхемы М5450В7 к Arduino Nano

Для самостоятельного изготовления светового меча в домашних условиях используется плата Arduino Nano. Благодаря своим миниатюрным размерам, она легко поместится внутрь полой ручки меча. На этом этапе следует припаять провода от микросхемы М5450 к портам платы Ардуино и подключить тактовую кнопку для включения/выключения светодиодов, чтобы проверить работоспособность сборки.

Фото. Схема подключения микросхемы М5450В7 к Arduino Nano
Фото. Схема подключения микросхемы М5450В7 к Arduino Nano

После сборки схемы по образцу (смотри фото выше), загрузите следующий скетч, размещенный под видео. Обратите внимание, что тактовая кнопка используется для подачи сигнала на Pin2, здесь мы использовали делитель напряжения на резисторе. При отпущенной кнопке на Pin2 не поступает ток, при нажатии на кнопку на Pin2 поступает ток 5V. К ножкам микросхемы L1 — L34 подключаются светодиоды.

Для проверки светодиодов и М5450В7 вы можете загрузить следующий скетч.

// устанавливаем контакты для драйвера М5450В7
#define DATA  6
#define CLOCK 7

#define NUM_LEDS 34 // задаем количество светодиодов
const uint32_t mask = 0b11111111111111111111111111111111;

void setup()
{
  pinMode(DATA, OUTPUT);
  pinMode(CLOCK, OUTPUT);
  pinMode(2, INPUT);
}

void loop()
{
MM5450(0b00000000000000000000); // все светодиоды выключены

if (digitalRead(2) == 1) {
      for(char i = NUM_LEDS-1; i >= 0; i--) // зажигаем светодиоды
      {
        MM5450(mask>>i);
        delay(20); // задержка зажигания светодиодов
      }
}

if (digitalRead(2) == 0) {

      for(char i = 0; i <= NUM_LEDS; i++) // тушим светодиоды
      {
        MM5450(mask>>i);
        delay(20); // задержка выключения светодиодов
      }
}
}

void MM5450(uint32_t data)
{  
  digitalWrite(DATA, HIGH);
  digitalWrite(CLOCK, LOW);
  digitalWrite(CLOCK, HIGH);

  for(byte i = 0; i < NUM_LEDS; i++)
  {
    if(data & (1UL<<i)) digitalWrite(DATA, HIGH);
    else digitalWrite(DATA, LOW);
    digitalWrite(CLOCK, LOW);
    digitalWrite(CLOCK, HIGH);
  }

  digitalWrite(DATA, LOW);

  for(byte i = 0; i < 35-NUM_LEDS; i++)
  {

    digitalWrite(CLOCK, LOW);
    digitalWrite(CLOCK, HIGH);
  }
}

3. Подключение модуля DF Player Mini к Arduino Nano

Полную распиновку DF Player Mini вы можете посмотреть в занятии «Подключение DF Player Mini к Arduino». Данный модуль позволяет проигрывать музыкальные файлы в формате MP3 с microSD карточки или с флэшки (в данном проекте мы использовали флэшку с записанными звуками из фильма Звездные войны). Для Mini MP3 плеера потребуется установить библиотеку DFPlayer-Mini-Mp3.h, а также SoftwareSerial.h.

Схема подключения модуля DF Player Mini к Arduino Nano
Схема подключения модуля DF Player Mini к Arduino Nano

В этом мини проекте на Ардуино Nano решено было отказаться от использования SD-карты. Несмотря на то, что подключение флэшки к DF Player Mini требует места и усложняет проект, ее использование оправдано. Во-первых, у всех есть старые флэшки с маленьким объемом памяти, которые уже не используются. Во-вторых, сделать запись и перезапись звуков на флэш-память более удобно, чем на  SD-карту.

Для проигрывания звука светового меча в проекте был использован динамик от наушников, т.к. модуль DF Player Mini уже имеет встроенный усилитель. Все провода подключаются к модулю DF Player Mini и к плате Ардуино Nano с помощью двух-трех пиновых разъемов для удобства разборки схемы при необходимости. Питание лазерного меча на Ардуино Nano производится от аккумулятора 9V Крона.

4. Сборка лазерного меча на Arduino Nano

Все звуковые файлы «mp3» со звуками светового меча из фильма Звездные войны вы можете скачать у нас. Также вы можете сами подобрать необходимые звуки и нарезать их в любом аудио редакторе.  Файлы следует сохранять в папке «mp3» на флэшке или SD-карте. Все mp3 файлы должны иметь имя с номером в четырех символьном формате. Например, «0001.mp3» или «0001-lightsaber.mp3».

Этапы сборки светового меча на Ардуино
Этапы сборки светового меча на Ардуино

Скетч для игрушечного меча из звездных войн

Скачать архив со скетчем и звуками звездных войн можно здесь

#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>

// Устанавливаем контакты для драйвера
#define  DATA  6
#define  CLOCK 7

// Задаем количество светодиодов на мече
#define NUM_LEDS 34
const uint32_t mask = 0b1111111111111111111111111111111111;
unsigned long led;

boolean working = true;

void setup()
{
// Задаем режим работы портов
  pinMode(DATA, OUTPUT);
  pinMode(CLOCK, OUTPUT);
  pinMode(2, INPUT);

// Устанавливаем громкость динамика
  mp3_set_serial (Serial);
  mp3_set_volume (30);
  delay(20);
}

void loop()
{

// когда кнопка нажата включаем светодиоды со звуком
  if (digitalRead(2) == 1 && !working)
  {
    for (char i = NUM_LEDS - 1; i >= 0; i--)
    {
      MM5450(mask << i);
      delay(10);
    }
    mp3_play (2);
    delay(200);
    working = true;
  }

// когда кнопка отпущена выключаем светодиоды со звуком
  if (digitalRead(2) == 0 && working)
  {
    for (char i = 0; i <= NUM_LEDS; i++)
    {
      MM5450(mask << i);
      delay(10);
    }
    mp3_play (3);
    delay(200);
    working = false;
  }
}

void MM5450(uint32_t data)
{
  digitalWrite(DATA, HIGH);
  digitalWrite(CLOCK, LOW);
  digitalWrite(CLOCK, HIGH);

  for (byte i = 0; i < NUM_LEDS; i++)
  {
    if (data & (1UL << i)) digitalWrite(DATA, HIGH);
    else digitalWrite(DATA, LOW);
    digitalWrite(CLOCK, LOW);
    digitalWrite(CLOCK, HIGH);
  }
  digitalWrite(DATA, LOW);

  for (byte i = 0; i < 35 - NUM_LEDS; i++)
  {
    digitalWrite(CLOCK, LOW);
    digitalWrite(CLOCK, HIGH);
  }
}

Дизайн ручки лазерного меча можно легко найти в интернете. Также данный проект можно самостоятельно усовершенствовать, например, добавить светодиоды — припаять параллельно к каждой ножке микросхемы М5450В7 dip40 по 2-3 светодиода или добавить светодиод в рукоять меча. Более сложный вариант — это добавить в проект гироскоп и выводить звуки при каждом взмахе мечом.


1 Star2 Stars3 Stars4 Stars5 Stars (19 votes, average: 4,63 out of 5)
Загрузка...

9 комментариев для “Световой меч на Ардуино своими руками

    1. Заказать можно здесь (от 10 шт) — ru.aliexpress.com/item/Free-shipping-10pcs-M5450B7-M5450B-M5450-IC-LED-DISPLAY-DRIVER-40-PDIP-Best-quality/1879963249.html?spm=2114.30010708.0.474.bzQjGf

      Можно спросить в радио магазине по названию М5450В7.

  1. Я дилетант в делах программирования, да и вообще в микросхемах, скажите, можно ли к этой плате подключить светодиодную ленту? Чтобы не морочиться со спайкой диодов?

    1. LED-лента питается от 12 Вольт, Ардуино может выдавать только 5 Вольт. Можно включать светодиодную ленту через силовое реле, только плавно включать LED-ленту уже не получится. Чтобы не морочиться с пайкой диодов, возьмите аккумулятор на 12В, кнопку и LED-ленту — меч готов.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *