====== Аудио плеер на Cortex M0+ через DAC ====== {{ :projects:play-music-dac:play-music-dac_overview.png?nolink |}} Платформы Arduino с ядром Cortex-M0 позволяют воспроизводить звуковые дорожки с карты памяти через цифро-аналоговый преобразователь на пине ''A0''. ===== Что понадобится? ===== ==== Для Arduino семейства MKR ==== * [[amp>product/arduino-mkr-zero?utm_source=man&utm_campaign=arduino-mkr-zero&utm_medium=wiki|Arduino MKR Zero]] * [[amp>product/microsd-16gb?utm_source=man&utm_campaign=arduino-mkr-zero&utm_medium=wiki|MicroSD карта]] * [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=troyka-amplifier-d&utm_medium=wiki|Кабель USB (A — Micro USB)]] * Активная акустическая колонка ==== Для Arduino M0 и Arduino M0 Pro ==== * [[amp>product/arduino-m0?utm_source=man&utm_campaign=arduino-mkr-zero&utm_medium=wiki|Arduino M0]] или [[amp>product/arduino-m0-pro?utm_source=man&utm_campaign=arduino-mkr-zero&utm_medium=wiki|Arduino M0 Pro]] * [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=arduino-mkr-zero&utm_medium=wiki|Troyka Slot Shield]] * [[amp>product/troyka-sd?utm_source=man&utm_campaign=arduino-mkr-zero&utm_medium=wiki|SD картридер (Troyka-модуль)]] * [[amp>product/microsd-16gb?utm_source=man&utm_campaign=arduino-mkr-zero&utm_medium=wiki|MicroSD карта]] * [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=troyka-amplifier-d&utm_medium=wiki|Кабель USB (A — Micro USB)]] * Активная акустическая колонка ===== Аудиофайл ===== Подготовьте файл для воспроизведения: - Скачайте и установите программу для конвертации аудиоформатов [[https://www.audacityteam.org/|«Audacity»]] - Сконвертируйте требуемый музыкальный файл в формат ''WAV'' с характеристиками: - Режим: моно - Частоте дискретизации: 88200 Гц - Количестве бит в сэмпле: 8 бит - Скопируйте полученный файл на SD-карту. ===== Как собрать? ===== В зависимости от управляющей платформы соберите схему проекта. ==== Схема для Arduino MKR Zero ==== {{ :projects:play-music-dac:play-music-dac_arduino-mkr-zero.png?nolink |}} ==== Схема для Arduino M0 и Arduino M0 Pro ==== {{ :projects:play-music-dac:play-music-dac_arduino-m0.png?nolink |}} ===== Пример кода ===== Для работы примера — установите библиотеку [[https://www.arduino.cc/en/Reference/AudioZero|AudioZero]] из менеджера библиотек. // библиотека для работы шины SPI #include // библиотека для работы c картой microSD #include // библиотека для воспроизведения музыки с помощью Arduino на ядре Cortex M0+ #include // на плате Arduino MKR Zero флешка подключена к SPI1 // выбираем в качестве пина CS определение SDCARD_SS_PIN #define SS_PIN SDCARD_SS_PIN // если у вас плата Arduino M0 или Arduino M0 Pro // выбирайте 8 пин // #define SS_PIN 8 void setup() { // открываем монитор Serial-порта Serial.begin(9600); // ждём открытия Serial-порта while(!Serial); // выводим сообщение в Serial-порт о поиске карты памяти Serial.println("Initializing SD card..."); // если microSD-карта не была обнаружена while (!SD.begin(SS_PIN)) { // выводим сообщение об ошибке Serial.println("Card failed, or not present"); // ждём одну секунду и повторяем попытку delay(1000); } // выводим сообщение об успешной поиске карты памяти Serial.println("Card initialization is OK"); // выставляем частоту воспроизведения AudioZero.begin(2 * 44100); } void loop() { // открываем wave-файл с карточки microSD File myFile = SD.open("dac-m0.wav"); if (!myFile) { // если файл не открылся, пишем об ошибке и останавливаем код Serial.println("Error opening music file..."); while (true); } // выводим сообщение о начале воспроизведения Serial.print("Playing music from DAC"); // воспроизводим файл AudioZero.play(myFile); // выводим сообщение об окончании проигрывания файла Serial.println("End of file. Thank you for listening!"); // останавливаем код while (true); }