8 битный Имперский марш на ARDUINO

Kulhaker478

Админ качалки
Регистрация
2 Июн 2018
Сообщения
55
Реакции
59
Привет , сегодня в этой теме я покажу как сыграть 8 битный (или что то на него похожее) Имперский марш с помощью платформы ARDUINO и бузера-пищалки от материнской платы
Этой темы не было если не тема spais спасибо)

Что такое ARDUINO я расскажу в отдельной теме , а пока что я покажу как что скачать и куда подсоединить

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

У меня китайский клон uno с чипом от nano. Дрова соответственно нужны для nano
Пожалуйста войдите или зарегистрируйтесь чтобы просматривать скрытый текст.
если у вас другая версия платы или ещё какой-то геморрой стучите в лс
Скачиваем и устанавливаем тут всё по стандарту

Как установите драйвер заходите в диспетчер устройств и ищем пункт COM и LPT порты
И видим устройство в моём случаи USB SERIAL CH340 и рядом COM порт к которому подключена плата, опять же в моём случаи это порт 3, но у вам может быть какой угодно !

Посмотрели к какому порту подключена плата и запомнили , потом нам это пригодится

Далее для загрузки кода в ARDUINO воспользуемся официальной программой ARDUINO IDE
Пожалуйста войдите или зарегистрируйтесь чтобы просматривать скрытый текст.
(версии для всех систем что очень приятно) и устанавливаем , установка стандартная, по крайней мере для шиндовс)

После установки запускаем программу и видим главное окно.
Вставляем код и выбираем COM порт к которому подключена ваша плата


Также выбираем версию своей платы и процессор

Жмём кнопочку загрузить (стрелочка) и код загружается в плату
Если в ходе загрузки кода не произошли ошибки то в логе снизу нам выдаст информацию сколько памяти занимает код (скетч)

Скачали, загрузили , но кто будет нам песню воспроизводить ?

В моём случае это пищалка от мат платы.
Кто не знает что такое pc спикер ознакомитесь с историей -
Пожалуйста войдите или зарегистрируйтесь чтобы просматривать скрытый текст.

Что касается схемы подключения, всё просто (как два пальца обоссать)
На плате есть множество пинов ввода-вывода которые настраиваются в коде
По нашему коду (который я прокомментировалXD) видно что спикер подключаем 10 пину на плате
Выглядит оно примерно так

Думаю на этом всё код для загрузки ниже

Не прощаюсь)

Код:
const int speakerPin = 10; // Пин к которому подключен спикер

// Ноты
const int c = 261;
const int d = 294;
const int e = 329;
const int f = 349;
const int g = 391;
const int gS = 415;
const int a = 440;
const int aS = 455;
const int b = 466;
const int cH = 523;
const int cSH = 554;
const int dH = 587;
const int dSH = 622;
const int eH = 659;
const int fH = 698;
const int fSH = 740;
const int gH = 784;
const int gSH = 830;
const int aH = 880;

// Пищание <ton> время <time> в мс с небольшой паузой чтобы не образоволась каша
void beep(int ton, int time)
{
  tone(10, ton, time);
  delay(time + 20);
}

// Настройки которые применяются при старте
void setup()
{
  // Отключить спикер (чтобы не пищал)
  noTone(10);
}


// Цикл
void loop()
{
    beep(a, 500);
    beep(a, 500);
    beep(a, 500);
    beep(f, 350);
    beep(cH, 150);
    beep(a, 500);
    beep(f, 350);
    beep(cH, 150);
    beep(a, 650);

    delay(150);


    beep(eH, 500);
    beep(eH, 500);
    beep(eH, 500);
    beep(fH, 350);
    beep(cH, 150);
    beep(gS, 500);
    beep(f, 350);
    beep(cH, 150);
    beep(a, 650);

    delay(150);


    beep(aH, 500);
    beep(a, 300);
    beep(a, 150);
    beep(aH, 400);
    beep(gSH, 200);
    beep(gH, 200);
    beep(fSH, 125);
    beep(fH, 125);
    beep(fSH, 250);

    delay(250);

    beep(aS, 250);
    beep(dSH, 400);
    beep(dH, 200);
    beep(cSH, 200);
    beep(cH, 125);
    beep(b, 125);
    beep(cH, 250);

    delay(250);

    beep(f, 125);
    beep(gS, 500);
    beep(f, 375);
    beep(a, 125);
    beep(cH, 500);
    beep(a, 375);
    beep(cH, 125);
    beep(eH, 650);


    beep(aH, 500);
    beep(a, 300);
    beep(a, 150);
    beep(aH, 400);
    beep(gSH, 200);
    beep(gH, 200);
    beep(fSH, 125);
    beep(fH, 125);
    beep(fSH, 250);

    delay(250);

    beep(aS, 250);
    beep(dSH, 400);
    beep(dH, 200);
    beep(cSH, 200);
    beep(cH, 125);
    beep(b, 125);
    beep(cH, 250); 

    delay(250);

    beep(f, 250);
    beep(gS, 500);
    beep(f, 375);
    beep(cH, 125);
    beep(a, 500);
    beep(f, 375);
    beep(cH, 125);
    beep(a, 650);
    // Конец песни

    noTone(10);  // Отключаем спикер
    delay(10000); // Задержка в мс после которой цикл повторится по новой
}
 
Последнее редактирование:

Shyravi

Вымышленный персонаж
Регистрация
2 Июн 2018
Сообщения
18
Реакции
39
Конечно , я не считаю это супер - годными авторскими статьями , которые я бы почитал с удовольствием. Но , это было написано с нуля , в это были вложенны силы человека , видно , что в этом он шарит. Однозначно лаек
 
Сверху Снизу