Соберем аудиоплеер. Что нам для этого понадобится? Во-первых, нам нужен "мозг", который будет все контролировать. В качестве такого мозга возьмем Arduino. Во-вторых, нам нужно будет откуда-то считывать данные. В качестве такого носителя данных возьмем компактные мини SD-карты. И, конечно же, динамики для воспроизведения звука. Еще запрограммируем пульт для дистанционного управления.
Сначала разберемся как подключить SD карту к Arduino. Есть специальные SD Card Shield, в которых выведены все контакты. Но такие шилды стоят денег, а я думаю у каждого где-нибудь завалялся адаптер для подключения мини SD-карты в разъем для полноразмерной SD-карты. Они, как правило, идут в комплекте. Распиновка у них следующая
Как видим, SD-карты работают от напряжения 3.3 вольта, а у Arduino высокий логический уровень это 5 вольт. По-хорошему, надо бы использовать тут делители напряжения или стабилизаторы. Хорошая статья есть на сайте Паяльник. Но так как у меня не оказалось под рукой ни стабилизаторов, ни резисторов нужных номиналов, то на свой страх и риск я напрямую припаял провода к этим выводам.
Две земли соединил между собой, чтобы подключать только одну из них. Вывод MISO соединяем с 12 пином, CLK - с 13, MOSI - с 11 и CS - c 4 пинами.
Воспроизводить звук на Arduino будем при помощи библиотеки TMRpcm. Особенностью этой библиотеки является то, что она может воспроизводить только файлы в 8 битном 8-32 кГц WAV-формате. К сожалению, программно Arduino не сможет быстро раскодировать MP3 поток, поэтому для воспроизведения MP3 файлов надо купить отдельный шилд с декодером. В 8 битных WAV-файлах амплитуда колебания кодируется 8 битами, которые легко считать в 8 битные регистры Arduino для последующей отправки уже на пины. Лучше всего конвертировать файлы в этот формат у меня получилось с помощью утилиты Wav Sample Rate Converter.
Усилитель двухканальный, а библиотека может выводить только моно звук. Поэтому нам понадобится немного изменить аудио провод: припаяем только землю и один любой канал. В принципе, два канала можно соединить в одном, но я оставил один нетронутым на случай, если потом понадобится задействовать его тоже.
Землю (черный провод) воткнем в GND, а канал (белый провод) - в 9 пин.
Звук можно напрямую или через резистор подавать на плюс динамика, а можно сделать простейший усилитель на одном транзисторе. Но для более качественного звучания нам понадобится усилитель получше. Возьмем колонку на усилителе TDA2822M из вот этой статьи. Пока что у нас получается следующая картина
Далее разберемся с пультом дистанционного управления. У меня завалялся какой-то пульт от китайской mp3 магнитолы. Я буду использовать его, а вы можете взять любой пульт от телевизора, потому что мы будем использовать библиотеку IRremote, которая поддерживает практически все форматы кодирования. В качестве ИК приемника я возьму VS 1838В. Вот его распиновка
Левая ножка будет подключена ко 2 пину Arduino, средняя к GND, а правая к 5 вольтам. Хорошую статью про то как подключать ИК -приемник тоже можно найти на сайте Паяльник.
С железом разобрались, теперь разберемся с управлением. Что нам нужно от пульта? Нужны функции воспроизведения, паузы, регулировки звука и выбора песни. Можно подключить еще монитор, выводить на него список файлов, выбирать нужный с помощью стрелочек "вверх-вниз" на пульте, но пока сделаем проще. Сделаем так, чтобы при нажатии кнопки "следующий" у нас играл следующий по списку файл, а при нажатии на кнопку "предыдущий" мы начинали проигрывание с первого файла. Нам потребуется узнать у какой кнопки какой код. После загрузки скетча "player.ino" при нажатии на кнопку вы сможете увидеть ее код в консоли. После этого надо будет поправить файл "Buttons.h" с вашими кодами
И вот он - конечный результат
Прикрепленные файлы:
- player.zip (1 Кб)
Комментарии (2) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
Ох уж эти ардуинщики, скетч накарябать это пол дела, как по мне слабовато для статьи и фото мутные