15.03.2012, 20:09 | #1 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Arduino и воспроизведение Wav
В этом проекте я использовал Arduino Nano
В этой версии контроллера уже есть встроенный усилитель, и динамик можно подключать на пин SPK Файлы для воспроизведения должны быть с частотой 12000Гц или 11000Гц. Для улучшения их качества звучания они программно интерполируются до частоты 62000Гц Отличительные особенности этой библиотеки: 1-Воспроизведение звука производится на частоте 62000Гц, что дает кучу преимуществ . 2-Не требуется фильтр, для фильтрации частоты семплинга. 3-Производится программная интерполяция звука что улучшает качество звука 4-Используется только один таймер контроллера 5-Производится программная обработка и удаление щелчка при включении и выключении воспроизведения 6-Воспроизведение звука производится в фоновом режиме и не влияет на ход выполнения основных программ в цикле Loop _delay_ms используется как раз для того что бы выдерживалась пауза пока воспроизводится звук PHP код:
Билиотеку нужно скачать, распаковать и поместить в папку ..\arduino-0023\libraries\PlaySound Библиотека PlaySoundSD- для воспроизведения звуков с карты памяти Обладатели Arduino Nano V.7, могут получить программу конвертера Wav2Hex файлов для личного использования. Программа конвертирует из звукового файла *.wav, в формат понятный компилятору *.h Для получения программы пишите мне в личку Собираю прикольные wave звуки для Arduino Присылайте свои варианты wave, тем самым Вы пополните банк звуков Онлайн конвертер bin - hex |
20.10.2012, 14:54 | #2 |
Junior Member
Регистрация: 20.10.2012
Сообщений: 12
Вес репутации: 0 |
Глупый вопрос можно? У вас код на PHP я так понял. Там у вас переменная speakerpin2 - объявлена, а pseakerpin - не объявлена - это ошибка? И среда arduino понимает php? Просто я искал мануал по Carduino v7.0? не могу понять как из среды Arduino обратится к выводу (новому) - SPK.
|
20.10.2012, 16:23 | #3 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Нет, этот код не на PHP
Это тег PHP, я его использую для лучшей читаемости кода Сегодня выложу библиотеку для воспроизведения файлов на Arduino Nano V7 Вам будет проще ее использовать, хотя код тоже рабочий |
21.10.2012, 00:16 | #4 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Выкладываю библиотеку PlaySound и пример скетча
для Arduino Nano V.7 В примере воспроизводится голосовая реклама Код:
#include <util/delay.h> #include <PlaySound.h> #include "test.h" void setup(){} void loop() { PlaySound::startPlayback((uint8_t *)test, test_length); _delay_ms(2500); //пауза, так как звук выполнятся в фоновом режиме } |
21.10.2012, 00:48 | #5 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Пользователи форума с весом репутации 200 и выше, также обладатели Arduino Nano V.7, могут получить программу конвертера
из *.wav в формат *.h |
21.10.2012, 14:18 | #6 |
Junior Member
Регистрация: 20.10.2012
Сообщений: 12
Вес репутации: 0 |
А вы в чем компилите? Я попытался запустить код в среде Arduino (родная, которая на языке processing основана) ругается на библиотеку PlaySound.cpp конкретно на строку PORTB &= B11110111; - говорит - 'd1111011' - was not declared in this scope.
Я так понял что вы на Си компилите. А чем компилите, в чем работаете? |
21.10.2012, 14:23 | #7 |
Junior Member
Регистрация: 20.10.2012
Сообщений: 12
Вес репутации: 0 |
И где можно взять синтаксис языка, не пойму как обращаться к пинам контроллера, с цифровыми и аналоговыми - все понятно, digitalWrite -Read, analogWrite-Read - операторы а дальше номер пина. Т.е.
int pin=2; дальше в теле проги digitalWrite(pin,High); и усе... номера пинов нанесены на плату. А вот как обратится к пину SPK? Не пойму.. |
21.10.2012, 17:33 | #8 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Я компилирую в arduino-0023
Вы библиотеку положили в папку ..\arduino-0023\libraries\PlaySound ? В этой папке должно находится 2 файла PlaySound.cpp и PlaySound.h Простой пример использования выхода Spk или он же D11 PHP код:
|
21.10.2012, 23:24 | #9 |
Junior Member
Регистрация: 20.10.2012
Сообщений: 12
Вес репутации: 0 |
А ну да, библиотеки не туда вложил, я их вложил в папку со скетчем. Попробую завтра заново. А spk и D11 - разве не разные пины? Я чего то не понимаю тогда с нумерацией, я фотку прикрепил там. И на плате четко отмаркированно d11 и spk отдельно... Или они параллельные? Только SPK с большей пропускной способностью по току?
|
22.10.2012, 00:15 | #10 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Пин Spk имеет выход с открытым коллектором, на транзисторном ключе с максимальной нагрузкой до 500мА и напряжением питания до 20в
К нему можно подключать не только динамик, но и любую другую нагрузку с током не более 500мА и напряжением до 20в Как SPK подключен к пину D11, смотрите на изображении |
Здесь присутствуют: 6 (пользователей: 0 , гостей: 6) | |
|
|