ARDUINO Цветомузыка на Arduino. Обсуждение проекта

vova1906

✩✩✩✩✩✩✩
9 Фев 2020
12
0
@OffroadRUS, писк платы свидетельствует, что что-то происходит с питанием, как бы не спалить ее еще. Дело точно не в прошивке, и быть в ней не может. А чем питаешь, отдельный блочек, или юсб? Поскольку такие траблы возможны, если питать от одного источника питания. Часть напряжения попадает не туда, куда нужно.
 

vova1906

✩✩✩✩✩✩✩
9 Фев 2020
12
0
Соединить скетчи светомузыки и амбилайт никто не пробовал?
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
Забыл библиотеку кинуть. Перезалил.


Разобрался. То я кидал их по одному, а разархивировав все в 1 папку компиляция прошла.
Не знаю точно, в скетче они закомментированы и исполюзуются строки Гайвера. Методом тыка глюк исчез. У меня зависание вылазило в первых двух режимах. При прошивке скетчем Алекса нормализовалось. Поковыряв несколько строк, перепрошивка больше не потребовалась.

То схема заимствованна у @technotrasher, просто я использовал те же выводы, но кнопки там лишние, точнее одна. Вторая должна работать в режиме переключения эффектов, но я не проверял) куча мелочевки в виде резисторов и конденсаторов, кроме микрофонного, тоже лишние. Как-нибудь перерисую схему. А вместо микрофона можно использовать что угодно, ленту, светодиоды, тот же микрофон. Это просто пин, куда можно подключать что угодно. Но я его не задействовал)

Ссылка выше, архив тыкай
не куча. конденсаторов. я уже указал что лишнее. читать внимательнее описание. а не сначала делать - потом думать.
 

vova1906

✩✩✩✩✩✩✩
9 Фев 2020
12
0
@technotrasher, так перерисуй схему) по сути можно использовать чисто гайверский метод, без всяких доработок. Интересно, может и не лишние. Они снимают часть частот, а с другой стороны ограничивают паразитное постоянное напряжение на выходе.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
Зачем перерисовывать. просто перемычки и не ставить пару конденсаторов. я переработал. скетч. вот это важно!!!
 

OffroadRUS

✩✩✩✩✩✩✩
28 Мар 2020
14
0
новая проблема. Ардуино реагирует на музыку с 60 уровня звука, а я в наушниках и как то мне уши жалко свои. как сделать так сто бы она реагировала хотя бы с 40 а лучше с 20 или 30 уровня громкости?
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
новая проблема. Ардуино реагирует на музыку с 60 уровня звука, а я в наушниках и как то мне уши жалко свои. как сделать так сто бы она реагировала хотя бы с 40 а лучше с 20 или 30 уровня громкости?
переписывать алгоритм. это если программно. если аппаратно поставить переменный резистор в канал звука. у меня например наушники с регулятором звука. на микшере погромче на наушниках поменьше. все ок.
 

gadjed

✩✩✩✩✩✩✩
4 Дек 2019
26
1
еще раз всем привет! вопрос всё тот же с поста #1,012 , почему то не приходит сигнал ни с колонок ни с телефона на ардуино. менял пины, на а3 а4 входа сигнала, и менял ардуино, пробовал так же использовать внутренне опорное напряжение 1,1в. в бестолку. кто может подсказать куда копать? подсоединял так же наушники к ардуино чтобы что то услышать- ничего не слышно
 

OffroadRUS

✩✩✩✩✩✩✩
28 Мар 2020
14
0
переписывать алгоритм. это если программно. если аппаратно поставить переменный резистор в канал звука. у меня например наушники с регулятором звука. на микшере погромче на наушниках поменьше. все ок.
вот было бы не плохо алгоритм переписать, заодно про экспериментируем че будет
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
вот было бы не плохо алгоритм переписать, заодно про экспериментируем че будет
И тут же напишет народ - мы тут нашли на помойке старый плеер, взяли накидным монтажом все соединили. кусок кода непонятно куда вставили. из одной прошивки в другую, так как сами ничего в программировании не понимаем. и оно вот не работает. а виноват тот кто писал код. мы разбираться ни в чем не будем. учиться тоже. и думать за нас нужно. :)
Ну а по теме - повысим чувствительность. но теперь и шумы будем слушать! то есть прибор будет реагировать на каждый чих и шум. я все же рекомендую поставить на наушники регулятор. а вообще потенциометром регулировать пробовали? там же есть регулятор.
 

viktor001

★✩✩✩✩✩✩
14 Окт 2019
113
36
Вы постоянно хотите что то урезать да выбросить из схемы. Оставить один процессор и пусть он нам желания выполняет. Не прокатит!
Хотите стоящий гаджет иметь? - соблюдайте хотя бы минимальные требования схемотехники.
Поставьте в конце концов копеечный китайский усилитель на входе. Это будет своего рода "линейный вход" с возможностью выставить оптимальный уровень амплитуды для адекватной работы ацп ардуины.
И раз уж вы паяете и собираете схемы, то прикупите как минимум мультиметр, а то мы тут только гадаем, что и как у вас там напаяно и почему звук не доходит до ардуины.
 
  • Лойс +1
Реакции: technotrasher

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
Вы постоянно хотите что то урезать да выбросить из схемы. Оставить один процессор и пусть он нам желания выполняет. Не прокатит!
Хотите стоящий гаджет иметь? - соблюдайте хотя бы минимальные требования схемотехники.
Поставьте в конце концов копеечный китайский усилитель на входе. Это будет своего рода "линейный вход" с возможностью выставить оптимальный уровень амплитуды для адекватной работы ацп ардуины.
И раз уж вы паяете и собираете схемы, то прикупите как минимум мультиметр, а то мы тут только гадаем, что и как у вас там напаяно и почему звук не доходит до ардуины.
Ну хоть кто то меня поддержал. бо тут были уникумы у которых даже компа нет. с телефона пытались прошить... Я считаю так - если взялся за что то интересное - нужно делать на совесть! и... придется потратиться. и придется учиться. или лучше не браться.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
@gadjed,
Несите. :) ща разберёмся. а вот удаленно... это нереально почти. где то есть ошибка, но найти её сможете только сами.
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
@technotrasher,
День добрый) Две недели курю твою прошивку, намучился если честно, но вроде худо бедно работает) Версию 5 еще не пробовал, но глянул в код. Отсюда пару вопросов (ибо с 4 версии в этой части ничего не изменилось).

В инструкции указано, что ручные настройки - это кнопки 1-2 и 3-4. Но во вкладке remoteTick, если я всё правильно понимаю, используются кнопки 1-2 и 4-5. А еще выходит, что эти пары кнопок делают тоже самое (вроде минус упущен, я сравнил с прошивкой донором). Думаю, что надо бы исправить. Еще есть пару неточностей в комментах, но это мелочи. Если надо будет, напишу.

C++:
switch (IRdata) {
      // режимы

      case BUTT_1: buttonTickLed ();
        if (settings_mode) {
          if (line_mode == true) LOW_PASS_mic = smartIncr(LOW_PASS_mic, 5, 0, 1000);
          else LOW_PASS_line = smartIncr(LOW_PASS_line, 5, 0, 1000);
        }
        else this_mode = 0;
        break;

      case BUTT_2: buttonTickLed ();
        if (settings_mode) {
          if (line_mode == true) LOW_PASS_mic = smartIncr(LOW_PASS_mic, 5, 0, 1000);
          else LOW_PASS_line = smartIncr(LOW_PASS_line , 5, 0, 1000);
        }
        else this_mode = 1;
        break;

      case BUTT_3: buttonTickLed (); this_mode = 2; break;

      case BUTT_4: buttonTickLed ();
        if (settings_mode) {
          if (line_mode == true) SPEKTR_LOW_PASS_mic = smartIncr(SPEKTR_LOW_PASS_mic, 2, 0, 100);
          else SPEKTR_LOW_PASS_line = smartIncr(SPEKTR_LOW_PASS_line, 2, 0, 100);
        }
        else this_mode = 3;
        break;

      case BUTT_5: buttonTickLed ();
        if (settings_mode) {
          if (line_mode == true) SPEKTR_LOW_PASS_mic = smartIncr(SPEKTR_LOW_PASS_mic, 2, 0, 100);
          else SPEKTR_LOW_PASS_line = smartIncr(SPEKTR_LOW_PASS_line, 2, 0, 100);
        }
        else this_mode = 4;
        break;
И еще вопрос, кто-то пробовал добавить эффект "Огонь" из очередного проекта Алекса? Я начал пробовать, но там другая библиотека, может кто-то что-то подскажет? Или может уже кто-то сделал или доказал, что не получится (например не влезет).

 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
да. четко пишите где какие неточности и что упущено. я проверю.
огонь никто не добавлял. и думаю вообще никто этим не занимается.
но - fireLinear: линейный огонь вдоль ленты - на кнопке 0 в моей прошивке есть же. переключать режимы #
В инструкции указано, что ручные настройки - это кнопки 1-2 и 3-4. - что это за вопрос. что значит ручные настройки? где в инструкции. в самом скетче сверху или в доп. инструкции?
 

viktor001

★✩✩✩✩✩✩
14 Окт 2019
113
36
Я буду очень рад если поможете с проблемой, в личке
По моему вы явно обозначили свою проблему. Раз сигнал не доходит до ардуины, то надо искать где затык. Это либо нет контакта где он должен быть, либо есть контакт где его не должно быть. Вам надо проверить ваше соединение в разветвителе. Отключите провода от ардуины и проверьте наушником есть ли звук на этих проводах. Так же надо проверить наличие напряжения на пинах А1 и А2 или какие там у вас по входу сигнала. Напряжения там не должно быть, но у многих как и у меня оно там было (порядка 1.2 вольта). Лечится подключением этого пина через резистор 10 кОм на массу. Пины входа ардуины желательно отделить от источника сигнала конденсатором.
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
@technotrasher,

Вкладка Animation
5 строка - "горомкости"
25 строка - "горомкости"
229 строка - режимы 9 и 10 перепутаны местами

Вкладка colorMusic_v5_Effect_Mic_and_Line.h
112 строка - надо написать "безумие случайных вспышек 2"
156 строка - Сбита нумерация в комментах

Есть еще парочка пожеланий:
Добавить просто белую подсветку, допустим на режиме стробоскопа (причем первый режим подсветка, а второй стробоскоп, что бы можно было быстро включить), с двумя регулировками: яркость и температура. Если что, то сам буду пилить, когда доделаю, могу поделиться.

Эффекты огня в режиме именно Line, а не Linear. Аналогично. Пытаюсь курить мануалы, пока что получается не очень.

А еще у меня аппаратно реализована несколько иная схема. У меня вместо тактовой кнопки переключения микрофона стоит двухпозиционный тумблер. В одной позиции питание подается на микрофон, пин кнопки и зеленый диод, а в другой позиции на красный диод(на самом деле просто двухцветный диод). В данный момент работу схемы реализую тем, что выпилил из кода "тактовую кнопку" и добавил в Loop строчку постоянной проверки пина: "line_mode = digitalRead(4);". Буду рад, если добавишь в свою прошивку более элегантный способ. Опять же, если я его напишу, то могу поделиться.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
508
227
Вкладка Animation
5 строка - "горомкости" - орфография исправлена.
25 строка - "горомкости" - готово.
229 строка - режимы 9 и 10 перепутаны местами - не перепутано. рекомендую к прочтению http://maxima-library.org/knigi/genre/b/387683?format=read

Вкладка colorMusic_v5_Effect_Mic_and_Line.h
112 строка - надо написать "безумие случайных вспышек 2" исправил
156 строка - Сбита нумерация в комментах - исправил.
Добавить просто белую подсветку, допустим на режиме стробоскопа (причем первый режим подсветка, а второй стробоскоп, что бы можно было быстро включить), с двумя регулировками: яркость и температура. Если что, то сам буду пилить, когда доделаю, могу поделиться. - такой режим есть. номер 7. можно сделать - запоминание белого при включении на режиме 7. на этом режиме сразу. у меня оранжевый. мне так нравится.

Эффекты огня в режиме именно Line, а не Linear. Аналогично. Пытаюсь курить мануалы, пока что получается не очень. - для этого нужно разобраться в новых библиотеках. в этой - FastLED.h, а тут еще и MicroLED. мне было сложно сходу. я отложил пока. но если будет интересно - сделаю.

В данный момент работу схемы реализую тем, что выпилил из кода "тактовую кнопку" и добавил в Loop строчку постоянной проверки пина: "line_mode = digitalRead(4);". Буду рад, если добавишь в свою прошивку более элегантный способ. Опять же, если я его напишу, то могу поделиться. - костыль. ничего элегантного не вижу. максимум я могу сделать - включение микрофона с пульта. НО! там есть нюанс. прибор все равно придется трогать перед переключением "микрофон - линейный вход". причина - попробуйте подумать.
Когда что то напишите - делитесь. пока что все доработки - исправление орфографии.
 

Slenk

★★★★★★✩
21 Янв 2020
382
591
34
Краснодар
@technotrasher,
По поводу перепутанных режимов не понял, ну да ладно.
По поводу кнопки/тумблера меня не поняли, тоже ладно))
Про белый цвет принял, но все же попробую запилить так, как написал.

Ну и собственно "Огонь". Два доп режима. Версия первая, без дополнительных настроек с пульта (теперь уже и с ними, но выложу когда-нибудь позже, после окончательной оптимизации и сборки проекта).

Вкладка colorMusic_v4_Effect_Mic_and_Line

Гдени-нибудь в настройках перед #include "FastLED.h" добавить

C++:
// огненные эффекты
//==========================================================
// настройки пламени
#define HUE_GAP 21            // заброс по hue
#define SMOOTH_K 0.15         // коэффициент плавности огня (для второго режима)
#define FIRE_STEP 15          // шаг огня
#define FIRE_HUE_START 0      // начальный цвет огня (0 красный, 80 зелёный, 140 молния, 190 розовый)
#define FIRE_MIN_BRIGHT 70    // мин. яркость огня
#define FIRE_MAX_BRIGHT 255   // макс. яркость огня
#define MIN_SAT 245           // мин. насыщенность
#define MAX_SAT 255           // макс. насыщенность

#define ZONE_AMOUNT NUM_LEDS  // количество зон (для второго режима)
byte zoneValues[ZONE_AMOUNT];
byte zoneRndValues[ZONE_AMOUNT];

int counter = 0;
//==========================================================
Где-нибудь после #include "FastLED.h" добавить

C++:
// огненные эффекты
//==========================================================
// возвращает цвет огня для одного пикселя
CRGB getFireColor(int val) {
  // чем больше val, тем сильнее сдвигается цвет, падает насыщенность и растёт яркость
  return CHSV(
           FIRE_HUE_START + map(val, 0, 255, 0, HUE_GAP),                         // H
           constrain(map(val, 0, 255, MAX_SAT, MIN_SAT), 0, 255),                 // S
           constrain(map(val, 0, 255, FIRE_MIN_BRIGHT, FIRE_MAX_BRIGHT), 0, 255)  // V
         );
}

// возвращает цвет огня для одного пикселя (для второго режима)
CRGB getFireColor2(int val) {
  // чем больше val, тем сильнее сдвигается цвет, падает насыщенность и растёт яркость
  return CHSV(
         
           FIRE_HUE_START + map(val, 20, 60, 0, HUE_GAP),                              // H
           constrain(map(val, 20, 60, MAX_SAT, MIN_SAT), 0, 255),                 // S
           constrain(map(val, 20, 60, FIRE_MIN_BRIGHT, FIRE_MAX_BRIGHT), 0, 255)  // V
         );
}
//==========================================================
Строка с переменными
unsigned long main_timer, hue_timer, strobe_timer, running_timer, color_timer, rainbow_timer, eeprom_timer;
Изменить на:
unsigned long main_timer, hue_timer, strobe_timer, running_timer, color_timer, rainbow_timer, eeprom_timer, prevTime, prevTime2;


Вкладка colorMusic_v4_Effect_Mic_and_Line.h

13 Строка - изменить кол-во эффектов на 9

Где-нибудь добавить:

C++:
// --- плавный огонь на шуме Перлина
void fireLinePerlin() {
  // двигаем пламя
  if (millis() - prevTime > 20) {
    prevTime = millis();
    for (int i = 0; i < NUM_LEDS; i++) {
      leds[i] = getFireColor((inoise8(i * FIRE_STEP, counter)));
    }
    counter += 20;
  }
}
//==========================================================

// --- каждый светодиод – независимый источник огня (алгоритм Гайвера)
void fireLine() {
  // задаём направление движения огня
  if (millis() - prevTime > 100) {
    prevTime = millis();
    for (int i = 0; i < ZONE_AMOUNT; i++) {
      zoneRndValues[i] = random(0, 10);
    }
  }

  // двигаем пламя
  if (millis() - prevTime2 > 20) {
    prevTime2 = millis();
    int thisPos = 0, lastPos = 0;
    for (int i = 0; i < ZONE_AMOUNT; i++) {
      zoneValues[i] = (float)zoneValues[i] * (1 - SMOOTH_K) + (float)zoneRndValues[i] * 10 * SMOOTH_K;
      leds[i] = getFireColor2(zoneValues[i]);
    }
  }
}
//==========================================================
В конце добавить:
case 7: fireLinePerlin(); break; //8 плавный огонь на шуме Перлина
case 8: fireLine(); break; //9 каждый светодиод – независимый источник огня (алгоритм Гайвера)
 
Изменено: