Воспроизведение звука при помощи ардуино

Fluffy
Offline
Зарегистрирован: 01.06.2011

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

 

я это так вижу: сэмплы зашиты в памяти контроллера, а сам контроллер по некоторым данным воспроизводит нужный мне сэмпл. может ктото сталкивался с такой задачей? 

26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011
26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011
26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011

вопрос, зачем?

не проще использовать голосовой модуль или простейший mp3 плеер? а управлять им уже дуиной...

Fluffy
Offline
Зарегистрирован: 01.06.2011

нет, не так. есть файл мп3 или wav. его нужно воспроизвести по определенному событию, к примеру срабатывание датчика. видел шилд для ардуино (http://www.cutedigi.com/product_info.php?products_id=4327), но дороговато. 

 

собственно, нагуглил, что аудио файлы можно записать не в память контроллера, а на sd карточку. уже хорошо. остался восрпос воспроизведения звукового файла с карты при помощи ардуино.

 

Fluffy
Offline
Зарегистрирован: 01.06.2011

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

26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011

с карты воспроизводить придется через шилд...

купи mp3 плеер за 500рэ или б/у на "молотке", кнопки управления плеером подключить к дуине и рулить...

или так www.vip-card.ru/voicechip.htm

 

26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011

поподробнее опиши проект, может проще решения найдутся...

26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011

можно дофантазироваться вплоть до нажатия кнопки "пуск" на бабинном магнитофоне при помощи сервы :)

Fluffy
Offline
Зарегистрирован: 01.06.2011

проэкт такой - есть аналоговый датчик.  датчик передает значения контроллеру. контроллер оценивает: если показания датчика такието - то воспроизваести такой звук. если значения такие - то другой звук. 

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

26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011

думаю можно несколько записать.

непонятна фраза: "одновременно может воспроизводиться только один звуковой файл. что не есть хорошо.."

в каком смысле одновременно? нужно запускать синхронно 2 или больше звуковых файла?

еще важно понимать, какой мощности (громкости) нужен звук. Если в наушник - одно, если в цех завода матюкнуться - совсем другое...

Если нужно при разных условиях запускать разные звуки, то можно решить на базе mp3 плеера.

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

но если задачи сложные, надежней шилд mp3 взять...

Fluffy
Offline
Зарегистрирован: 01.06.2011

 шилд взять можно, но больно дорого. дороже самой платы будет. 

 

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

26rus
26rus аватар
Offline
Зарегистрирован: 03.05.2011

может так? www.vip-card.ru/descrip6.htm

или так? www.vip-card.ru/descrip7.htm

или www.vipchip.ru/storefront/

но бюджетно не получится :)

дуина думаю не потянет одновременное воспроизведение...

Fluffy
Offline
Зарегистрирован: 01.06.2011

 жаль, если контроллер не потянет одновременное воспроизведение файлов. в принципе, это исправимо. 

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

 

просто хотелось бы автономно чтобы девайс работал - без компа. спасибо за отзывы)

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Кто мешает купить 2-3-4 ну хоть пять мп3 флеш плееров самых дешевых бэушных через разветвитель портов можно будет одновременно управлять всем этим хозяйством. Аудиовыходы подать на входы усилителей и хоть концерт на площадь) И будет играть и одновременно и последовательно и в любой очередности)

kikia99
Offline
Зарегистрирован: 22.03.2011

 я как понимаю вопрос в том как бы собрать командный модуль к МКС  примерно за 800 рублей  а можно и дешевле. Какие звуки в каком качестве бит рейт  мож вам восмибитки от денди нужны а мож поваротти 32 битный 256 кбс  есть микрухи http://www.chipdip.ru/video.aspx?vid=ID000299882&searchtext=%d0%bc%d0%b8...        еще    http://eicom.ru/catalogue/Integrated_Circuits_(ICs)/Voice_Record_and_Playback/      http://www.dfrobot.com/index.php?route=product/product&path=48&product_id=446   итд  любой организации с любыми хорактеристиками под любые форматы каскадируйте  есть микрухи миксеры  а ардуино это мозг системы он всем рулит но сам ничего не может а так иногда читьаешь и кажется что люди считают что мировые гиганты вступили в зговор и навязывают нам двух четырех и десяти ядерные камни а на самом то деле все может малыш ардуино главное его только правельно запрограмиравать 

Shurup
Offline
Зарегистрирован: 30.05.2011
kikia99
Offline
Зарегистрирован: 22.03.2011

вот наткнулся http://www.sparkfun.com/products/10587 там и примеры есть все просто и доступно 

 

ArtikUA
Offline
Зарегистрирован: 07.01.2012

Сегодня попала в руки моя первая плата Arduino Nano

Сделал вот что, музыка из звездных войн:

 

int d = 0;
void setup() {
  pinMode(14, OUTPUT);
  pinMode(13, OUTPUT);  
}

void beep(int d, int l, int p){
  int to = l / (d / 1000);
  digitalWrite(13, HIGH);
  for (int i=0;i<to;i++){
    analogWrite(14, 0);
    analogWrite(14, 255);
    delayMicroseconds(d);
  }
  digitalWrite(13, LOW);
  delay(p);
}

void loop() {
  beep(3000, 500, 400);
  beep(3000, 500, 400);
  beep(3000, 100, 20);
  beep(3000, 500, 400);
  beep(4000, 500, 200);
  beep(2500, 200, 20);
  beep(3000, 500, 400);
  beep(4000, 500, 200);
  beep(2500, 200, 20);
  beep(3000, 500, 400);
  delay(1000);
}

На A0 и общий провод нужно подключить любой наушник/динамик.

Диод мигает в такт музыке)

Знаю что очень примитивно, но таким новичкам как я, может быть инетересно)

P.S значения подбирал на слух. 

std
Offline
Зарегистрирован: 05.01.2012

вот оно :) только еще бы с SD флешки читать PCM звуки.

carduino.ru
Offline
Зарегистрирован: 06.12.2011

подключай кардридер , библиотека работы с флешкой есть 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Ну... Вам поможет шилд с сетью или GSM-EDGE, потому что вопросы нужно отправлять в Google-IDE, получать от туда текст, парсить его и тогда только пытаться отвечать. Ардуинина сама не справится с распознованием. 

Alexander89
Offline
Зарегистрирован: 02.09.2012

 Не знаю что за Google-IDE, но мне кажеться что имели в виду google speech api. это бесплатный сервис гугла который преобразовывает звук в текст

 

http://habrahabr.ru/post/144535/
 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Да, извините, написал IDE вместо API :( 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

http://www.youtube.com/watch?v=UIwhMklDaE0 жаль в инглише не сильно шарю, там в описании видео есть силка на блог, там более подробней

Rus_adon
Offline
Зарегистрирован: 14.09.2013

Привет всем!! скажите пжл, я новичек в этом деле, и прошу сильно не пинать! скажите пжл, как можно получить сигнал аудио с двух микрофонов, инвертировать и вывести на аналоговые выходы, соответсвующие микрофонам.   очень важно чтобы чтобы сигналы были в противофазе....

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013
Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

чет я ничего не понял .. взять сигналы с микрофонов и вывести их на аналоговые выходы в которые поключены микрофоны?

ну вам полюбому нужен DAC-ADC у ардуино DUE есть встроеный DAC ... но к нему нужен усилитель...

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Инвертировать значение АЦП можно при помощи функции map().

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

26rus пишет:

так? robocraft.ru/blog/arduino/63.html

 

Сделал из миди Rtttl при помощи проги Ringtone-Converter  под скетч что в коментариях к статье любимую мелодию:

char *song = "Pain:d=4,o=5,b=118:8b,8p,8f#6,8b,8g6,8p,8f#6,8e6,8f#6,8p,8e6,8f#6,8g6,8g6,8f#6,8e6,8b,8p,8f#6,8b,8g6,8p,8f#6,8e6,8d6,8p,8e6,8d6,8c#6,8c#6,8d6,8c#6,8b,8p,8f#6,8b,8g6,8p,8f#6,8e6,8f#6,8p,8e6,8f#6,8g6,8g6,8f#6,8e6,8b,8p,8f#6,8b,8g6,8p,8f#6,8e6,8d6,8p,8e6,8d6,8c#6,8c#6,8d6,8c#6";

Звучит почти как в клипе:

http://www.youtube.com/watch?v=B_d1B3u1AsA

Только звук паршиво записался.

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

HWman пишет:
Только звук паршиво записался.

Семён Семёныч - звук прямо в микрофонный разъём звуковой карты пихай через конденсатор 1 микрофарад.

Rus_adon
Offline
Зарегистрирован: 14.09.2013

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

Клапауций
Offline
Зарегистрирован: 10.02.2013

Rus_adon пишет:

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

так, а в чём проблема?

на один пин принимаете сигнал, а на другой выводите как хотите...

вопрос в другом - вы разницу между аналоговым и цифровым сигналом понимаете? - на выходе получится не та пестня, которую спели на вход.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Клапауций пишет:

Семён Семёныч - звук прямо в микрофонный разъём звуковой карты пихай через конденсатор 1 микрофарад.

Влом позится с джеками...

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

HWman пишет:

Влом позится с джеками...

 да, домкраты они тяжелые.. ими звук очень тяжело подымать :)

не товарищ не вкуривает что у аналогового входа есть ограничения по разрешению :) и что этого разрешения не достаточно для аудио :) но таки пусть поиграется и выяснит это опытным путем :)

alexbmd
Offline
Зарегистрирован: 15.01.2016

чето туплю уже под вечер

взял пьезо от компа пытаюсь хоть чтото хоть както услышать... молчит собака.  смотрю в интернете они на разное напряжение бывают.  чаще на 12В. может этот от компа на 12в поэтому и не пищит ? 

хотя на вид такойже как из видео в предыдущем посте

 

сопротивление 18Ом  в тырнете пишут под 30 должно быть

не могу понять толи пьезо не рабочий толи я чтото не так делаю

Logik
Offline
Зарегистрирован: 05.08.2014

alexbmd пишет:

. может этот от компа на 12в поэтому и не пищит ? 

Может. А может и нет.

alexbmd пишет:

 толи я чтото не так делаю

Безусловно. Если Вы хотите чтоб хто-чё посоветовал, давайте больше информации - схемы, исходники,  ссылки на описание железа, фотки, слайды и т.д. Иначе - только задумчиво посочувствуем.

duinor
Offline
Зарегистрирован: 16.01.2016

Они еще бывают пассивными и со встроенным генератором

alexbmd
Offline
Зарегистрирован: 15.01.2016

да вот начал больше читать про них и вижу есть пасивные и активные

объясните пожалуйста в чем различие ? и у тех и у других 2 вывода ?  по громкости они отличаются ? по управлению ? что дает встроенный генератор ?

 

я же в свою очередь к своему, обычный двухногий черненький кругленький как тут на видео чуть выше, подрубил DC5V молчит, подрубил DC12V молчит но начал разогреваться и "пахнуть"  сразу отключил.  должен обычный зумер при 5в шуметь ?

alexbmd
Offline
Зарегистрирован: 15.01.2016

и пока разбираемся с железом давайте паралельно расмотрим второй вопрос:

все детство провел за "zx спектрумом" и но эмуляции голоса даже на сеге не слышал!

https://youtu.be/OpwXzA74bgI?t=29s

насколько сложно/дорого на ардуинке такое качество звука сделать и что для этого надо ? я имею ввиду не голос (его наверно не реально на ардуинке с эмулировать) а вот такое качество музыки как раньше в DOS было или на приставках. т.е оно как бы примитивное но не такое как просто зумер. или через простой зумер такое тоже можно замутить ?

vk007
Offline
Зарегистрирован: 16.06.2015

alexbmd пишет:

да вот начал больше читать про них и вижу есть пасивные и активные

объясните пожалуйста в чем различие ?

Если в общем в двух словах, то активный - это генератор + излучатель, чтобы он запищал на него нужно только подать питание (пищит на одной частоте). В пассивном - только излучатель: как динамик в магнитофоне, какой сигнал подадите, так и будет пищать.

vk007
Offline
Зарегистрирован: 16.06.2015

alexbmd пишет:

насколько сложно/дорого на ардуинке такое качество звука сделать и что для этого надо ?

Несложно и недорого и качеством намного получше можно. Звуковые файлы можно проигрывать с карточки, а если короткие то можно и без (почитайте например тут).

alexbmd
Offline
Зарегистрирован: 15.01.2016

vk007 пишет:

 В пассивном - только излучатель: как динамик в магнитофоне, какой сигнал подадите, так и будет пищать.

этот сигнал - это вольтаж ?  через PWM  ?    какую лесенку смодулируем то и услышим ?

alexbmd
Offline
Зарегистрирован: 15.01.2016

vk007 пишет:

Несложно и недорого и качеством намного получше можно. Звуковые файлы можно проигрывать с карточки, а если короткие то можно и без (почитайте например тут).

про карточку знаю. с карточки не пойдет . это уже дорого.  да и возросшее питание/размеры мне не желательны.  буду питаться от +3,6В@8Mhz/  есть какието варианты  желательно используя внутринию память для мелодии секунд 15 хотябы?

плата посылки всем хороша кроме того что она питается от +5 и выше , плюс нестандартная какаято. хотя последнее думаю преодолимо. но с питанием точно не подходит.

vk007
Offline
Зарегистрирован: 16.06.2015

alexbmd пишет:

есть какието варианты  желательно используя внутринию память для мелодии секунд 15 хотябы?

Для более менее нормального качества воспроизведения wav на 15 сек памяти будет маловато.

А скучные мелодии можно и через tone() играть.

Вот пара интересных ссылок:

https://www.youtube.com/watch?v=liRF4alsvaI

http://radiokot.ru/circuit/digital/game/51/

alexbmd пишет:

плата посылки всем хороша кроме того что она питается от +5 и выше , плюс нестандартная какаято. хотя последнее думаю преодолимо. но с питанием точно не подходит.

этого я вообще не понял

alexbmd
Offline
Зарегистрирован: 15.01.2016

vk007 пишет:

 В пассивном - только излучатель: как динамик в магнитофоне, какой сигнал подадите, так и будет пищать.

 сигнал это - вольтаж ?  через PWM  ?  с какой частотой сколько вольт подадим так и будет пищать ?

esisl
Offline
Зарегистрирован: 21.05.2015

Я делал такой прожект.

Несколько кнопок. Под каждой - своя мелодия.
http://roboforum.ru/forum10/topic15477-45.html#p346001

Вот это конечный вариант. Там есть немного лишнего, потому, что добавлен контроль наличия питания, типа при пропадании питания, переходим на батарейку и сообщаем об этом противным голосом. Вообще код очень неряшливый, быстрей-быстрей лепился, "работает и ладно".

Должен заметить, что звуковой каскад надо делать тщательнЕйе. Я воткнул выход ардуины прямо на вход усилителя, получил дикий свист на частоте дискретизиции :) В принципе не так страшно, но нужно хотя бы емкостями это дело придавить.

 

Кстати. Питаю от 4 В. Не специально, а потому, что под руку попался аккумулятор на 4 В и БП на 5 В.

alexbmd
Offline
Зарегистрирован: 15.01.2016

vk007 пишет:

 если короткие то можно и без (почитайте например тут).

....этого я вообще не понял

я говорю что в линке пишут питание от +5 до +20 а уменя питаться будет от 3,6В. да  и не стандартная она или на всех ардуинах на 11 SCK пине уселитель ?

vk007
Offline
Зарегистрирован: 16.06.2015

1) Скетчу побоку от скольки вольт будет питаться ардуина.

2) Нет, не на всех, из мне известных только на этой. А это принципиально встроен там усилитель или нет? Скетчу и это побоку.

alexbmd
Offline
Зарегистрирован: 15.01.2016

vk007

а) касательно пасивного пьезо сигнал это - вольтаж ?  через PWM  ?  с какой частотой сколько вольт подадим так и будет пищать ?

 

б) касательно ардуины по линку - так плюс этой ардуинки в усилителе.  а питание важно т.к. от 3,6 не заведется. 

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

esisl
Offline
Зарегистрирован: 21.05.2015

Ардуине совершенно по барабану, сколько вольт.

"Аналоговый", вернее ШИМ-выход, по любому будет давать от 0 до 100% питания. И ни чего иного.

"Усиленный" выход означает, что этот выход может давать больший ток. Т.е. можно повесить больше нагрузки. Если выдавать выход с ардуины на усилитель - это "усиление" собаке пятая нога.

Правда можно сделать финт ушами и подать выход на трансформатор :) Я пробовал. Если транс подобрать, то маломощный пьезодинамик, подключённый к высоконапряжёнчатой обмотке орёт как потерпевший. но это всё не очень хорошо.