Как отправить звук динамику

Вот как вы предварительно выбираете строку в UITableView:

[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition: UITableViewScrollPositionNone];

Установите indexPath в качестве строки, которую вы хотите выбрать, а затем выполните вызов метода, как указано выше.

6
задан Peter Mortensen 26 September 2011 в 20:09
поделиться

7 ответов

Сегодня легко и дешево воспроизводить файлы MP3 с 8-битного микроконтроллера. Вам потребуется устройство памяти (например, SD-карта) и набор микросхем MP3. См., Например, эту статью . Вы можете найти еще много на avrfreaks . Там вы также можете найти статьи о воспроизведении звуков без внешнего чипа.

Вы можете воспроизводить базовые звуки с широтно-импульсной модуляцией (PWM), но для настоящей песни вам понадобится ЦАП. Я видел проекты, в которых файлы MP3 воспроизводились с использованием только ЦАП и программного обеспечения, но в них использовались более мощные микроконтроллеры ARM.

2
ответ дан 8 December 2019 в 14:46
поделиться

Предполагая, что у вас есть несжатый 8-битный монофонический файл с частотой 22,1 кГц:

1) Удалите заголовок
2) Каждую 1/22 100 секунды:
2.1) Прочитать 8 бит
2.2) Используйте ЦАП, чтобы преобразовать его в диапазон напряжения динамика
2.3) Отправьте его на динамик

Это даст вам звук качества [22,1 кГц / 8 бит / моно] и представляет собой простой способ воспроизвести реалистичные сэмплы.

Все эти частотные составляющие необходимы для различных синтезаторов. Динамик ПК, например, фактически однобитный. Чтобы иметь разные амплитуды (кроме «нет» и «максимум»), могут потребоваться некоторые уловки, такие как широтно-импульсная модуляция (сместите частоты, как вы сказали, чтобы диафрагма динамика фактически имела больше положений, чем два).

Но вам не нужно об этом беспокоиться. Все, что вам нужно сделать, это выдать около 22 100 или 44 200 звуковых образцов в секунду на динамик, скажем, 8 или 16 бит на образец для обозначения амплитуды.

7
ответ дан 8 December 2019 в 14:46
поделиться

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

1
ответ дан 8 December 2019 в 14:46
поделиться

Если вы используете Arduino, вы можете купить Lady Ada's WaveShield за 22 доллара США. Леди Ада предлагает множество Arduino вещей, которые стоит купить. Некоторые примеры - GPS, Ethernet и пошаговые / серво щиты.

0
ответ дан 8 December 2019 в 14:46
поделиться

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

0
ответ дан 8 December 2019 в 14:46
поделиться

На ATMega128 недостаточно места, чтобы делать что-нибудь слишком необычное. Самый простой способ подключить динамик (маленький 2 дюйма или меньше) - через резистор. Проверьте текущую потребляемую мощность выхода и соответственно рассчитайте R.

---------------------- +V
    |
    \
    / R
    \
    /              ----------
    |              |
    |   ------     |
    ----|    |-----| Microcontroller
        /    \     |
       --------    |
        Speaker    ---------

Что касается воспроизведения тонов, при простом переключении выхода будет получен простой стилфон звучание Crapolla. Вы можете использовать широтно-импульсную модуляцию для получения приближений любого аналогового звука (слишком сложного, чтобы вдаваться в подробности, и AtMega, вероятно, не будет иметь достаточно затяжки или памяти). Это был метод, используемый для создания аудиодрайверов для ПК без звуковая карта (только встроенный динамик) в старые добрые времена ...

0
ответ дан 8 December 2019 в 14:46
поделиться

Я пробовал нечто подобное. Во-первых, у вас НЕ будет достаточно памяти на микроконтроллере для хранения настоящей песни. Для этого вам понадобится внешняя память. Это означает использование интерфейса SPI для внешней флэш-памяти или EEPROM или чего-то еще. SD тоже хорош - я считаю, что это интерфейс в стиле SPI . Существует код для интерфейса ATMegas с SD-картами.

Вторая важная задача - получить данные в надлежащем формате. Я бы сделал это с помощью широтно-импульсной модуляции (ШИМ) для создания различных уровней напряжения. Я считаю, что у вас есть 16-битный ШИМ на этом микроконтроллере, поэтому вы можете иметь 16-битную точность воспроизведения звука. Если у вас проблемы с пространством, вы можете использовать 8-битный ШИМ. Таким образом, ваши звуковые данные должны быть в 8- или 16-битном формате PCM, где 0x0000 - самое низкое значение, а 0xFFFF - самое высокое. Если вам нужна высококачественная музыка, вам потребуется частота дискретизации 44 кГц, чтобы получить все хорошие гармоники и тому подобное. Я считаю, что это PCM - так же, как он называется на ПК.

Итак, у вас будут все эти значения - за пять минут музыки у вас будет 5 * 60 * 44000 = 13 200 000 16-битных значений, что является 211 200 000 бит (211 мегабит, 26,4 мегабайт). Это ваши требования к хранилищу необработанных данных. Возможен вариант MP3 - для этого есть внешние микросхемы, но у вас все равно будет много места.

Таким образом, каждую 1/44000 секунды вы обновляете значение в регистре PWM. Ваша частота ШИМ должна быть выше на 4 или 5, то есть на 5 циклов ШИМ на значение.

Это ' Ваш общий алгоритм - обновите значения в регистре PWM и дайте ему идти до конца. Вам понадобится как минимум фильтр на выходе - ограничьте частоты слышимым диапазоном 20 кГц (больше, если вы аудиофил). RC-фильтр будет работать, но я бы выбрал активный фильтр, ПОТОМУ ЧТО, если вы используете ШИМ, ваш выходной диапазон будет от 0 до 5 В, как правило, со средним напряжением около 2,5 В. Динамикам не нравятся уровни постоянного тока - только сигналы. Симпатичные синусоидальные волны со средним напряжением 0. Таким образом, ваш активный фильтр должен будет регулировать уровни напряжения и использовать двойные источники питания для обеспечения отрицательного напряжения. Вы также можете усилить сигнал для мощного накачивающего баса. Только не выдувайте из колонок.

MP3, вероятно, лучшая альтернатива PCM. Существуют чипы: http://www.sparkfun.com/commerce/product_info. php? products_id = 8892

Однако это целый микроконтроллер. И он у вас уже есть. Но давайте посмотрим правде в глаза - ATMega не собирается в ближайшее время делать MP3 самостоятельно, как бы вы его ни раскрутили.

Похоже, что упомянутый выше волновой экран в основном делает это - использует SD-карту для хранения PCM и внешний усилитель для звука. Удачи!

4
ответ дан 8 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: