Вы находитесь на странице: 1из 12

Урок 15

Плеер на Arduino

К уроку прилагаются дополнительные материалы, которые вы


можете скачать по ссылке.

2
Плеер на Arduino

Плеер на Arduino
На базе Arduino и различных модулей можно раз-
рабатывать не только роботов и датчики для умного
дома, но и любые другие электронные устройства. На
основе Arduino можно собрать принтер, весы и даже
кофейный автомат! Давайте создадим на Arduino пле-
ер, который будет проигрывать аудиофайлы с карты
памяти (рис. 1)!

Рисунок 1

3
Урок 15

Нам понадобится модуль для чтения SD-карт (рис. 2)


и усилитель LM386 (рис. 3).

Рисунок 2 Рисунок 3
А вот и схема проекта (рис. 4).

Рисунок 4
После сборки запрограммируем плату. Сначала нам
понадобиться библиотека TMRpcm. Ее можно найти в до-

4
Плеер на Arduino

полнительных материалах или скачать на GitHub: http://


bit.ly/2E90ZZm. Добавим библиотеку, нажав Sketch —
Include Library — Add .ZIP Library (рис. 5).

Рисунок 5
Теперь можно приступить непосредственно к напи-
санию кода. Подключаем библиотеки и объявляем пере-
менные:

#include "SD.h"
#include "TMRpcm.h"
#include "SPI.h"
#define SD_ChipSelectPin 4

TMRpcm music;

int song_number = 0;

boolean debounce1 = true;


boolean debounce2 = true;
boolean play_pause;

5
Урок 15

Функция setup():

void setup() {
music.speakerPin = 9;
Serial.begin(9600);

if (!SD.begin(SD_ChipSelectPin)) {
Serial.println("SD fail");
return;
}

pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);

music.setVolume(5);
music.quality(1);
}

И функцию loop(), где будут обрабатываться дей-


ствия пользователя:
void loop() {

Если была нажата кнопка 1:

if (digitalRead(2) == LOW && debounce1 == true)


{
song_number++;
if (song_number == 5) {
song_number = 1;
}
debounce1 = false;
Serial.println("KEY PRESSED");
Serial.print("song_number=");
Serial.println(song_number);

6
Плеер на Arduino

Функция music.play() может принимать один или два


аргумента. Первый — название файла — является обя-
зательным. Второй — с какой секунды будет воспроиз-
веден файл.

if (song_number == 1) {
music.play("1.wav", 10);
}

if (song_number == 2) {
music.play("2.wav", 33);
}

if (song_number == 3) {
music.play("3.wav");
}

if (song_number == 4) {
music.play("4.wav", 25);
}
}

Если нажата кнопка 2:

if (digitalRead(3) == LOW && debounce2 == true)


{
music.pause();
Serial.println("PLAY / PAUSE");
debounce2 = false;
}
if (digitalRead(2) == HIGH)
debounce1 = true;
if (digitalRead(3) == HIGH)
debounce2 = true;
}

7
Урок 15

Перейдем к тестированию устройства. Для этого нам


понадобится четыре файла *.wav. Скачать аудиофайлы
вы можете с YouTube Audio Library: http://bit.ly/2PxPPCJ.
Скорее всего, аудиофайлы, которые есть у вас, имеют
формат *.mp3. Вы можете воспользоваться конвертером
для смены расширения. Он доступен по следующей ссыл-
ке: http://bit.ly/2RGnRr5. Нажмите Choose File, выберите
­аудиозапись, а затем нажмите Convert File (рис. 6).

Рисунок 6

8
Плеер на Arduino

Конвертируйте все файлы и назовите их так, как ука-


зано в коде: 1.wav, 2.wav, 3.wav, 4.wav. Скопируйте их на
карту памяти и убедитесь в том, что устройство функци-
онирует должным образом.
Также вы можете воспользоваться сервисом Freesound,
где можете найти файл в формате .wav: https://freesound.
org/search/.
А вот несколько примеров электронных устройств,
которые были сделаны на Arduino:
■■ Принтер на основе Ардуино (рис. 7):

Рисунок 7

9
Урок 15

■■ Весы на основе Ардуино (рис. 8):

Рисунок 8

10
Плеер на Arduino

11
Урок 15
Плеер на Arduino

© Компьютерная Академия «Шаг»


www.itstep.org

Все права на охраняемые авторским правом фото-, аудио- и видеопро-


изведения, фрагменты которых использованы в материале, принадле-
жат их законным владельцам. Фрагменты произведений используются
в иллюстративных целях в объёме, оправданном поставленной задачей,
в рамках учебного процесса и в учебных целях, в соответствии со ст. 1274
ч. 4 ГК РФ и ст. 21 и 23 Закона Украины «Про авторське право і суміжні
права». Объём и способ цитируемых произведений соответствует
принятым нормам, не наносит ущерба нормальному использованию
объектов авторского права и не ущемляет законные интересы автора
и правообладателей. Цитируемые фрагменты произведений на момент
использования не могут быть заменены альтернативными, не охраня-
емыми авторским правом аналогами, и как таковые соответствуют
критериям добросовестного использования и честного использования.
Все права защищены. Полное или частичное копирование материалов
запрещено. Согласование использования произведений или их фраг-
ментов производится с авторами и правообладателями. Согласованное
использование материалов возможно только при указании источника.
Ответственность за несанкционированное копирование и коммерческое
использование материалов определяется действующим законодатель-
ством Украины.

Оценить