0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать простой плеер из Arduino и SD-ридера

Как сделать простой плеер из Arduino и SD-ридера

Автор: SaorY
Дата записи

Доброго дня, мозгоизобретатели! В копилку Arduino-поделок предлагаю простой плеер, собрать который будет полезно и новичку, и опытному мозгочину.

Суть самоделки такова: мелодии считываются с карты и по командно воспроизводятся через последовательное соединение.

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

  • Arduino UNO
  • SD-кардридер
  • динамик

Шаг 1: Код Arduino

Распиновка
** MOSI – pin 11 ** MISO – pin 12** CLK – pin 13** CS – pin 4

Сам код
#include // SD card library

#define Sd_Chip_pin 4

#include // playing the melody library

char val;TMRpcm tmrpcm; // Create a melody function

tmrpcm.speakerPin = 9; // 9 pin to attach digital speakers + leg

// sd module bağlanma return; > >

Шаг 2: Видео

Благодарю за мозговнимание, надеюсь было интересно!

( Специально для МозгоЧинов#Arduino-playing-the-melody-with-the-Sd-card

  • Метки

Что необходимо знать при использовании SD карт с Arduino

Первое. Карты рассчитаны на 3.3 В. При записи данных сила тока может достигать больших значений: до 100 мА и даже больше! Это говорит о том, что надо обеспечить качественное питание 3.3 В для карты. Кроме того, надо иметь источник питания 3.3 В для питания логики. SD карты очень чувствительны — использование резисторов и длинных проводников при подключении приводят к значительному падению скорости передачи данных. Так что используйте максимально короткие коннекторы и избегайте резисторов в цепи питания логики. Вместо этого можно использовать преобразователи уровня на базе чипов HEF4050, 74LVX245 или 74AHC125.

Второе. Есть два режима: SPI и SDIO. SDIO отрабатывает быстрее, но реализовать его при работе с Arduino сложно. SPI режим гораздо проще наладить при работе с любым микроконтроллером. Для подключения в режиме SPI понадобится всего четыре пина (более детально мы рассмотрим этот вопрос дальше).

SD карты выпускаются в двух форм-факторах: microSD и SD. Подключение, программа, структура и т.п. Для них одинакова. Единственное отличие — размер. Micro SD карты значительно меньше по габаритам.

Третье. SD карты представляют из себя чип с отдельными секторами. То есть, определенной структуры, которую вы обязаны использовать нет. Это значит, что карту можно отформатировать под файловую систему Linux, GFAT (DOS) или Mac. На ней вообще может отсутствовать файловая система! При этом 99% компьютеров, камер, MP-3 плееров, GPS-навигаторов для использования требуют формат файловой системы FAT16 или FAT32. Загвоздка заключается в том, что в микроконтроллерах вроде Arduino выделяется относительно большой процент памяти при работе со сложными файловыми системами.

Преобразование файлов в формат .wav для вашего аудиоплеера Arduino

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

Читать еще:  Простой и безопасный пуск мотора сварочным инвертором

Небольшая инструкция для того, чтобы сделать песни совместимыми с аудиоплеером на Ардуино:

  1. Загрузите музыкальный файл или введите ссылку на песню или аудиофайл, который нужно преобразовать. Вы даже можете выбрать файлы из Dropbox или Google Диска.
  2. В дополнительных настройках измените разрешение бит на 8 бит.
  3. Измените частоту дискретизации до 16000 Гц.
  4. Измените аудиоканалы на моно.
  5. Нажмите «Показать дополнительные параметры» («Show advanced options»).
  6. Установите формат PCM как 8-битный — PCM unsigned 8-bit.
  7. Нажмите «Преобразовать» (Convert), и файлы будут преобразованы!

Библиотека ардуино для работы с SD и microSD

Для удобства работы с внешними накопителями данных в среде Arduino IDE доступны уже готовые библиотеки. Ничего дополнительно скачивать или устанавливать в большинстве случаев не понадобится.

Для подключения библиотеки в скетче нужно использовать инструкцию include:

Библиотека SPI нужна для правильной работы устройств, подключаемых по SPI.

Библиотечные функции нужно для считывания и записи данных на карту. Библиотека может поддерживать SD и SDHC карты.

Имена записываются в формате 8.3, то есть 8 знаков для названия, 3 для расширения. Путь к файлу записывается с помощью слэшей «/».

Встроенные примеры библиотеки SD

В Arduino IDE встроены готовые примеры для быстрого изучение функций бибилотеки:

  • Card Info – это извлечение информации, хранящейся в SD карте. С ее помощью можно узнать, в какую файловую систему отформатирована карта, наличие свободного места, какие данные записаны.
  • Yun Datalogger – позволяет записывать лог-данные с трех сенсоров на карту.
  • Datalogger – регистрирует и созраняет данные, полученные с датчика на карту.
  • Dump File – считывание данные с карты, передает их в серийный порт.
  • Files – создает и удаляет данные. Существует функция file.write(), которая помещает записанные данные в буфер. Перемещение информации на карту происходит при вызове функций flush() или close(), поэтому важно закрывать его после каждого открытия файла, иначе данные будут потеряны.
  • Read Write – записывает и считывает файлы с карты.

Функции библиотеки SD

Ардуино-библиотека SD содержит различные функции, с помощью которыми можно управлять данными. Функции класса SD:

  • begin() – функция инициализирует библиотеку, присваивает контакт для сигнала.
  • exists() – призвана проверить, имеется ли на карте необходимая информация.
  • mkdir() – позволяет создать нужную папку на карте памяти.
  • rmdir() – с помощью этой функции можно удалить папку. Важно, чтобы удаляемая папка была пустой.
  • open() – позволяет открыть файл, который нужен для записи или чтения. Если нужный файл отсутствует на карте, то он будет создан.
  • remove() – удаляет любой файл.

В ответ на все эти функции должно прийти одно из значений – true, в случае удачного завершения операции и false при неудаче.

Создание, редактирование и удаление файлов.

Для работы с файлами в ардуино существует класс File. В него входят функции, которые предназначены для записи и чтения информации с карты:

  • available() – проверяет наличие в файле байт, которые доступны для чтения. В ответ приходит количество места, которое доступно для чтения.
  • close() – закрывает файл, перед эти проверяет, сохранены ли данные на карту.
  • flush() – функция позволяет убедиться, что данные записаны на карту.
  • name() – возвращает указатель на имя.
  • peek() – считывает байты данных, при этом не перемещает указатель на следующий символ.
  • position() – находит текущее положение указателя в файле.
  • print() – выводит данные в отдельный файл.
  • println() – печатает данные в файл до места, где появляется символ перевода каретки и пустая строка.
  • seek() – меняет положение текущей позиции в файле.
  • size() – выводит информацию о размере данных.
  • read() – считывает информацию.
  • write() – производит запись в файл.
  • isDirectory() – с помощью этого метода происходит проверка, является ли файл директорией, то есть каталогом или папкой.
  • openNextFile() – выводит имя последующего файла.
  • rewindDirectory() – возвращает к первому файлу в директории.
Читать еще:  Как сделать внешний USB жесткий диск

Для корректной работы платы нужно проследить, чтобы был сконфигурирован SS выход.

Скетч примера работы с SD библиотекой ардуино

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

Как работает аудиоплеер?

Ардуино в приведенной ниже схеме загружает файлы .wav с карты micro-SD. Затем он генерирует сигнал и выводит его через динамик, подключенный к цифровому выходу 9. Это позволяет динамику создавать звуки и воспроизводить музыку. В этом уроке вы можете запрограммировать аудиоплеер Ардуино так, чтобы он играл ваш любимую песню или мелодию.

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

Сэмплов в секунду (Гц): 16000 (16 КГц)
Канал: Моно
Бит на сэмпл: 8

Шаг 3: Подготовьте SD-карту

Загрузите Zip-файл и распакуйте его.

Здесь вы получите «SD форматер»

установите форматтер SD на вашем компьютере.

Теперь подключите вашу карту к ПК через USB картридер.

Откройте форматтер SD-карты.

Выберите диск SD-карты, затем нажмите на формат.

В следующем шаге откройте SD-карту.

Прошлый аудио файл, который мы конвертировали в файл .wav

Переименуйте файл в «Test.wav».

9 ответов к “Как сделать простой плеер из Arduino и SD-ридера”

Да как-то не уважительно га русскоязычном форуме не по-русски изъясняться. На польском форуме ляпни, так сразу «От курва. »

Друзья, дело не в уважении наверное…. От лица администрации закрываю на это глаза — лишь бы человек был хороший и мысли верные выражал. 60% конечно же читателей вряд ли поймёт о чем он, но… оставим на его усмотрение. Каждый отвечает за себя, а мы следим за порядком в целом.

може все ж отримаю допомогу ? і все ж піду з видаленням акаунта ? ідей все менше, а народ більше хвилює моя мова, а не те що можу знати. то не добре. якщо мені треба, лізу на китайскі на мексиканскі сайти, при умові що я по їх не «ботю» для ардуін використаю специфічний екранчик, були проблеми з бібліотеками, і ніхто не міг допомогти, пішов на сайт програмерів, мені важко писати російскою. я читаю але практично не пишу, або дуже безграмотно. а спілкувався довелось. мені треба в мене немає вибору. тому кому треба — той прочитає. а тут задаєш питання автору а він губиться, не розуміючи ні те що постить ні те про що спитали. думаю останній мій коммент . спробую більше не писати. звісно якщо не отримаю допомогу і мене таки видалять 🙂

для тех кто не в теме

может все же получу помощь ? и все же пойду с удалением акаунта ? идей все меньше, а народ больше волнует мой язык, а не то что могу знать. то не хорошо. если мне надо, лезу на китайские на мексиканские сайты, при условии что я по не их «ботю» для ардуино использую специфический экранчик, были проблемы с библиотеками, и никто не мог помочь, пошел на сайт програмерив, мне трудно писать по русски. я читаю но практически не пишу, или очень безграмотно. а общался пришлось. мне надо, у меня нет выбора. поэтому кому надо — тот прочитает. а здесь задаешь вопрос автору а он теряется, не понимая ни то что спросили, ни то о чем спросили. думаю последний мой коммент . попробую больше не писать. конечно если не получу помощь, и меня все же удалят:)

Читать еще:  Простой лабораторный блок питания

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

Описание модуля для SD карты памяти

Работа с памятью SD в ардуино не представляет особых трудностей. Самым простым способом является подключение готового модуля и использование стандартной библиотеки. С этого варианта мы и начнем.

Использование готового модуля обладает различными преимуществами. Это довольно простое и удобное средство для работы с большим объемом данных. Он не требует особых навыков в подключении, все разъемы подписаны прямо на плате. За удобство приходится платить, но стоимость модуля относительно не велика, его легко можно найти по доступным ценам в российских и зарубежных интернет-магазинах.

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

  • Диапазон рабочих напряжений 4,5-5 В;
  • Поддержка SD карты до 2 Гб;
  • Ток 80 мА;
  • Файловая система FAT 16.

Модуль SD-карты реализует такие функции как хранение, чтение и запись информации на карту, которая требуется для нормального функционирования прибора на базе микроконтроллера.

Естественно, у недорогих модулей карт памяти есть и недостатки. Например, самые дешевые и распространенные модели поддерживают только карты до 4Гб и почти все модули позволяют хранить на SD карте файлы объемом до двух гигабайт – это ограничение используемой в большинстве моделей файловой системы FAT.

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

Платы Arduino для работы с SD

Для работы с SD card существует несколько различных плат:

  • Arduino Ethernet – эта плата оснащена специальным модулем для вывода данных. Для выхода CS используется контакт 4. Для правильной работы нужно применять команду SD.begin(4).
  • Adafruit Micro-SD – это отладочная плата, которая используется при работе с Micro-SD картами.
  • Sparkfun SD – закрепляется сверху Ардуино, для выхода CS использует 8 контакт. В новой версии платы есть соединение с 3.3 В и встроен шестиразрядный инвертор.

Другие полезные функции

Есть и другие полезные функции для работы с SD картой. Некоторые из них мы приведем ниже:

  • Если вы хотите проверить наличие файла на носителе, используйте функцию SD.exists(«имя_файла.txt»), которая вернет значение true или false.
  • Удалить файл можно с помощью функции SD.remove(«имя_файла.txt»). Но будьте аккуратны! Файл удалиться полностью. Никакой «корзины» или резервной копии для восстановления не останется.
  • Создать подпапку можно с помощью функции SD.mkdir(«/имя_новой_папки»). Очень удобно для структуризации ваших данных на начальном уровне. Если папка с таким именем уже существует, ничего не произойдет. Не забывайте, что вы можете воспользоваться функцией SD.exists() перед созданием папки для проверки.

Несколько полезных функций для работы с файлами:

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector