Jump to content
KoLLnAMe

НЕСТАНДАРТНЫЙ Детектор хлопоков на ардуино. ТОЛЬКО ХЛОПКОВ

Recommended Posts

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

Пытался построить устройство на основе програмного фильтра, по следующему алгоритму : при срабатывании детектора, ардуино записывает в массив состоящий из 500 ячеек каждый такт. Таким образом записал 100 хлопков. Получилась очень грязная картина синусоиды. С Очень расплывчатыми периодами подъема и спада синусоиды. 

На других форумах мне посоветовали сделать аппаратный фильтр звука вместе с программным. Но представления о том как это сделать равны 1- 2 %

На других форумах дали несколько вариантов как решить эту проблема, ниже приведу парочку из них:

"Анализатор спектра на ардуино))), ну даже быстрое преобразование фурье для 8 битного контроллера задача не простая.
Можно попробовать реализовать корреляцию сигналов, но это нужно сделать таблицу, в которую ещё нужно заполнить, далее нужно измерять уровень при помощи АЦП и считать, и организовать смещение массива, вобщем-то тоже нужно постараться.

А если взять компаратор, выставить порог срабатывания при котором он будет переключаться, выход компаратора, повесить на счетчик, скажем того же ардуино, но счетчик будет тактироваться внешним сигналом компаратора, задача просто скажем каждые 50мс смотреть чего там насчитал таймер, если настроить так чтобы за 1 хлопок регистрировал от 3 до 7 переключений, и соответственно если это так, регистрировать хлопок.
PS: сам я это не проверял, это просто идея)))"

Вот второй совет: en555 lm358 что то на них похожее если хлопок то сначала его обработает en555 задаст частоту после два операционника они эту частоту фильтруют по продолжительности импульса после когда импульс сформированный кидаем его на лапку контролера и программно описываем задержку после чего опршиваем лапку и смотрим что там происходит если импульс длица значит разговор если нет значит хлопок ну перд микрофоном я бы еще простой частотный фильтр бы применил 

Как видите, в этих советах нет четких последовательностей. 

Буду очень признателен если вы поможите: 

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

P.S. Я ЗАИНТЕРЕСОВАН В СОТРУДНИЧЕСТВЕ С ЛЮДЬМИ БОЛЕЕ ЗНАЮЩИМИ ЧЕМ Я( В ЭЛЕКТРОНИКЕ).ГОТОВ ОТБЛАГОДАРИТЬ ДЕНЕЖНО. ТЕХ КТО БУДЕТ СОПРОВОЖДАТЬ МЕНЯ В ЭТОМ ПРОЕКТЕ.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Руководство для разработчика приложений на базе STM32WB55

Представив двухъядерные беспроводные микроконтроллеры STM32WB для IoT-приложений, компания STMicroelectronics предлагает разработчикам экосистему, включающую в себя отладочные платы, примеры кода для микроконтроллера, готовое ПО всех уровней и большой массив документации.

Читать статью

Не надо этого. Ваша задача не простого уровня, и реализовать её с нулевыми(близкими к нулю) знаниями навряд получится. Если слова "Ряд Фурье"

"фильтр" для вас мало о чем говорят, стоит либо заплатить, либо засесть за книжки пока не достигните результата. А вы предлагаете чтобы вам тут составили не самую простую схему и ещё обьяснили, как её посчитать. Это требует обьемных знаний и никто этого делать не будет. Я более чем уверен, разве что есть какие-либо готовые варианты.

Edited by Eugene315

Share this post


Link to post
Share on other sites

Я может быть, не правильно разъяснил свою просьбу, тогда искренне прошу прощения. Я и не прошу, чтобы за меня это кто-то делал. Наоборот я прошу чтобы мне указали куда копать. Я придерживаюсь следующей философии. Что книги нужно читать только с целью поиска какой-то конкретной информации. Если я сейчас сяду читать книги (не факт, что те) то я прочитаю тысячи не нужной мне в данный момент информации, из которого ответом на мой вопрос будет 1 % информации. НЕ считаете ли вы, что эта пустая трата времени. Поэтому я действую иным образом. Я составляю список задачь, что за чем куда, только потом начинаю читать книги(конкретные главы) читать статьи и т.д.. Но так как мои познания в этом вопросе близки к нулю, я не в состоянии составить список задачь. Поэтому я искренне прошу человека помочь мне составить такой список. Чтобы знать куда копать. И так как я понимаю, что человек затратит на меня свое время я сказал, что готов к денежному вознаграждению.    

Share this post


Link to post
Share on other sites
                     

DC/DC-преобразователи: принципы работы и уникальные решения Maxim Integrated

Что нового можно сказать про DC/DC? Написаны десятки статей, а самостоятельное изготовление преобразователя мощностью от единиц Вт до нескольких кВт даже в домашних условиях не составляет большого труда. Тем не менее, когда речь идет о микро-, или даже нано-ваттах, проектировщик может столкнуться с рядом трудностей. Разработка устройства с батарейным питанием весьма малой мощности – одна из наиболее актуальных и интересных задач во время всепроникающего интернета вещей. А грамотная схемотехника системы питания не возможна без знания основ работы DC/DC преобразователей. Освежить базовые знания и узнать об особенностях проектирования узлов питания мобильного устройства с оптимальным энергопотреблением можно из следующей статьи

Подробнее

Предположим нужна обработка FFT + внешний дискретный фильтр. Для этого вам понадобятся базовые знания:

о фильтрах, о тригонометрическом ряде фурье, АЦП.

чтобы понимать это вам возможно понадобится знание основ теории цепей и высшей математики. 

Цитата

НЕ считаете ли вы, что эта пустая трата времени.

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

А алгоритм вам уже предложили, в вашем первом посте.Разберитесь с ним.  Для меня например идея прозрачна, у меня есть база.

Придется исследовать из каких гармоник состоит хлопок и в дальнейшем с помощью вычислительных схем сравнивать сигнал. Идея предельно проста.

 

Edited by Eugene315

Share this post


Link to post
Share on other sites

Благодарю, Евгений! Уже, что-то конкретное от вас услышал=) Будем считать вышеуказанные термины, как моей отправной точкой в изучении этого вопроса!

Share this post


Link to post
Share on other sites
Guest MagicianT

Там в посте библиотека приклеена, БПФ на ардуино: http://forum.cxem.net/index.php?/topic/176078-делаем-спектроаналайзер-из-ардуино/

Хлопок - широкополосный сигнал, как подпрыгнет уровень на всех полосах, так и оно. Добавьте IF > и дело в шляпе. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Константин322
      Помогите рассчитать напряжение на Z1 

    • By Merlok Life
      Хочу сделать монстр-машинку с двигателем rs550 с металлическим корпусом на ардуино.
      Подскажите как управлять мотором через ардуино нано? 
       
    • By Геннадий Быков
      Уважаемые электронщики и им сочувствующие!
      Хочу на даче собрать макет морского маяка в человеческий рост. Но для этого необходима схема управляющая светодиодами. Основное, схема должна иметь независимое питание(Солнечная панель) и быть слаботочной (5-9 вольт). Как вижу я. Маяк ориентировочно высотой 1,50-1,80 м. В маяке, с низу до верха 6 окошек (по одному 5мм светодиоду). И на верху сам маяк из 8-ми 0,5 ваттных светодиодов установленных по кругу. С наступлением темноты, включаются диоды на "1 этаже" и раз в 5-10 минут происходит действие. Диоды поэтажно (снизу вверх) начинают загораться (как будто кто-то поднимается вверх по ступеням) и после загорания самого верхнего окна, через пару секунд, включается маяк. Поочередно по кругу (эффект метеора), со скоростью 2-3 сек на круг, делает оборотов 10 и выключается. Потом в обратной последовательности гасятся окошки (светодиоды) сверху в низ и остаются два нижних, периодически и независимо включающиеся и выключающиеся (эффект присутствия). И вновь через 5-10 минут вышеописанное действие. Буду очень признателен любым советам, ссылкам, помощью. Немного умею паять, немного знаю Ардуино. Готов в разумных пределах спонсировать, разработку и сборку.
    • Guest ренат
      By Guest ренат
      Всем здрасти))))
      прошу помощи в написании программы
      мои знания программирования на ардуино основаны на примерах и школьного курса )))
      так вот есть программы 
      int LedPin = 8;             // Подключаем светодиод к порту 13
      int ButPin = 2;             // Подключаем кнопку к выходу 10
      int flag = 0;                // флаг состояния
      int LedPinTime = 100;
      void setup()
      {
        pinMode(LedPin, OUTPUT);   // Инициализируем порт "ledPin" как выходной
      }  
      void loop()
      {
        if(digitalRead(ButPin) == HIGH && flag == 0)      
          {                                              
            digitalWrite(LedPin, !digitalRead(LedPin));
            flag = 1;
          }
        
        if(digitalRead(ButPin) == LOW && flag == 1)
          {
            flag = 0;
          }  
      }
      собрал из кусков, работает )))))
      но не то что мне нужно 
      Мне нужно чтобы при нажатие одной кнопки(без фиксации) светодиод загорался на три секунды ( и не важно держишь ты кнопку или кратковременно нажал, он через три секунды потухнет) 
      помогите кто может))) я в благодарность могу и на телефон денег кинуть )))) спасибо
    • By pingyini
      Всем доброго времени суток. Решил я сделать "умную" электронную сигарету на arduino. Концепция заключается в кнопочном управлении мощностью посредством ШИМ, наличии экрана, и некоторыми защитами в виде ограничения максимального времени нажатия и уход камня в сон (режим пониженного энергопотребления) после N секунд простоя.
      Вводные: по нажатию кнопки запускается ШИМ и управляет полевиком, но в целях защиты я хочу ограничить время выполнения кода до 7 секунд(что бы при случайном зажатии кнопки в кармане не получить травматическую ампутацию конечностей)

      Проблема пришла откуда не ждали - обработка нажатой основной кнопки срабатывает как попало. Нажимая кнопку обработчик может сработать сразу и отработает как по маслу, а может и через 5 нажатий не сработать вовсе.  Проверял в живую на Arduino UNO, Pro Mini (328е Меги) и в Proteus'е. Симптомы одни и те же.  Проблема очевидно в коде но я в упор не вижу в чем может быть загвоздка. Уровень у меня "штота умею" поэтому не судите строго. 
       
      #define pwmPin 5 #define buttonStart 3 #define maxOnTime 7000 //максимальное время выполнения условия нажатой кнопки #define RED_LED 7 #define GREEN_LED 8 int power = 150; //boolean StartState; boolean StartStateFlag; //Флаг кнопки Старт unsigned long pressTime; void setup() { pinMode(pwmPin, OUTPUT); pinMode(buttonStart, INPUT); pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); Serial.begin(9600); //чисто для отладки } void loop() { if (digitalRead(buttonStart) && StartStateFlag && ((millis() - pressTime) <= maxOnTime)) { // (1) если кнопка старт нажата И была отпущена И нажата менее 7 секунд выполняем: analogWrite(pwmPin, power); //запуск ШИМ Serial.println("PWM_ON"); digitalWrite(GREEN_LED, HIGH); digitalWrite(RED_LED, LOW); } else { // (2) иначе StartStateFlag = false; // кнопка небыла отпущена analogWrite(pwmPin, 0); digitalWrite(GREEN_LED, LOW); Serial.println("PWM_OFF"); pressTime = millis(); } if (!digitalRead(buttonStart)) { //(3) если кнопка не нажата analogWrite(pwmPin, 0); //остановка ШИМ Serial.println("PWM_OFF"); digitalWrite(RED_LED, HIGH); StartStateFlag = true; //была отпущена и можно входить в условие с нажатой кнопкой (1) } } И файлы: сам скетч, .elf и .hex для шПротеуса и проект Протеус.
      P. S. ШИМ в Протеусе не работает в принципе, в железе все ОК 
      BUTTON_TEST.ino
      BUTTON_TEST.ino.eightanaloginputs.hex
      BUTTON_TEST.ino.elf
      BUTTON_TEST.ino.with_bootloader.eightanaloginputs.hex
      ButtonTest.pdsprj
  • Сообщения

    • И всё равно я думаю что вы тут скорее про теплоотвод от кристалла больше говорите, а насчёт непосредственно его мощности(чисто кристалла, а не в составе светодиода) должны быть какие-то зависимости. Заметил что у светодиодов с большим и качественны кристаллом намного меньше падение напряжения при одинаковом токе чем у тех у которых он маленький и низкокачественный.  А бОльшее падение напряжения это больший нагрев при одинаковом токе, а он, нагрев, и есть ограничитель.   Так почему нельзя по падению напряжения сказать о допустимой/реальной мощности светодиода?   Вот вам попадались светодиоды с большим и качественным кристаллом, а значит и способные работать на большой мощности, но с высоким падением напряжения? (Речь об одном кристалле, без последовательных соединений.)
    • Aleksandr65 проверьте , не ошиблись ли Вы с номиналами R1.C1  . Они могут быть 3к3 + 0,1мкФ или 330+1мкФ .Иначе , у Вас полностью не открывается симистор и напряжение на двигателе будет ниже искомого .
    • Чтобы узнать самую благоприятную точку светодиода, его критический порог, его условия, в которых ему комфортно работать - максимальное излучение при допустимом нагреве. Нужно будет сжечь, испортить несколько светодиодов для эксперимента. Для этого нужно светодиод насадить на термометр, подключить его к регулируемому источнику тока с контролируемой шкалой, а пучок света направить на какой нибудь измеритель освещёности. Постепенно добавлять ток и смотреть при каком токе освещённость начнём падать, и при какой температуре "загнётся" светодиод. Сожгли один светодиод, записали данные. Берёте другой светодиод и пробуете уже не добавлять столько много тока, как в первый раз и т. д. Что то в этом роде... Закупайте на али коробку светодиодов и вперёд!
    • у тюг не расччитан на непрерывную подачу пара, отпариватель же может непрерывно до 1 часа   В общем без паники))) Не запаримся и не замерзнем. Током тоже никого не шлепнет, защищено УЗО))
    • Способов  на самом деле много: 1. Изучаешь теорию светоизлучающих полупроводниковых переходов, строишь математическую модель, производишь расчет и делаешь умозаключения. 2. Берешь 10...20 образцов, задаешь разный ток  через каждый в требуемом диапазоне, и - поехали: меряешь светоотдачу, температуру и падение напряжения на каждом каждые xx минут. Когда помрет половина (или последний), строишь графики и получаешь ответ на свой вопрос. 3.. Читаешь, что написано в даташите. 4.. Раз в полгода-год задаешь вопрос на форуме и ждешь, когда дадут ответ, который тебе больше всего понравится.
    • И нет и да. Мощность мощности две три (как минимум) больших разницы. А по началу так и определись, а какая тебе из них сей час потребна.
×
×
  • Create New...