roboforum.ru

Технический форум по робототехнике.
Текущее время: 20 апр 2025, 09:37

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: DFRduino Player
СообщениеДобавлено: 06 дек 2011, 11:31 
Не в сети
Аватара пользователя

Зарегистрирован: 10 янв 2008, 22:01
Сообщения: 113
Откуда: Москва
Всем привет.

Вопрос собственно вот в чем: как с помощью этой штуки ( http://www.dfrobot.com/wiki/index.php?t ... KU:DFR0112) ) проигрывать нужные мне звуковые файлы, не используя команды типа следующий, предыдущий....(не искать нужный, а сразу проигрывать его) то есть, сказал я ему играть такой то файл, он играет,сказал ему играть десятый файл, он играет...

вот пример сэмпловского кода\


#include <Wire.h>
#include <stdlib.h>
//
//The sd card must be formated at FAT format.
//Create a "sound" directory, put mp3/wav/midi files under the SD card,
//Make sure the length of file name do not exceed 8 letters.



// Play Sound "\sound name\r\n". Return "Play ok\r\n" if success,
// Return "Not found\r\n" if sound track does not be found, Return "over\r\n" if the track has reached its end.
// Pause Play "\:p\r\n" Return "pause\r\n" if success
// Continoue Play "\:s\r\n" Return "start\r\n" if success
// Play next "\:n\r\n" Return "next\r\n" if success,Return "false\r\n" if failed
// Play previous "\:u\r\n" Return "key up\r\n"
// Set the volume "\:v 255\r\n",set the volume, from 0 (minimum)-255 (maximum), Return "vol set ok" if success
/////////////////////////////////////////////////////////////////////////////////
#define ArduinoPlayer_address 0x35 //ArduinoPlayer I2C address 0x35 (default)

void TwiSend(const char *cmd) //I2C Command
{
char len = 0;
len = strlen(cmd); //Calculate the length of the command
Wire.beginTransmission(ArduinoPlayer_address); // ArduinoPlayer I2C address
while(len--)
{
Wire.send(*(cmd++));
}
Wire.endTransmission(); // stop transmitting
}
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
Serial.begin(9600);
delay(2000);//Wait for 2 seconds
Serial.println("Ready");
TwiSend("\\:v 255\r\n"); // set the volume, from 0 (minimum)-255 (maximum)
}

//Receive control command from serial
void loop()
{
int val;
if(Serial.available() > 0)
{
val=Serial.read();
switch(val)
{
case 'p': // Pause
TwiSend("\\:p\r\n");
Serial.println("OK");
break;
case 's': // Continoue to play
TwiSend("\\:s\r\n");
Serial.println("OK");
break;
case 'n':
TwiSend("\\:n\r\n"); // Play next
Serial.println("OK");
break;
case 'u':
TwiSend("\\:u\r\n"); // Play previous
Serial.println("OK");
break;
case 'm': //Play
//The volume must be set before playing the sound
TwiSend("\\:v 250\r\n"); // set the volume, from 0 (minimum)-255 (maximum)
TwiSend("\\yes\r\n");
Serial.println("OK");
break;
default:
break;
}
}
}


То есть // Play Sound "\sound name\r\n". Return "Play ok\r\n" if success,

мне следует написать так:

case '1': // играть файл 1.mp3
TwiSend("\\1.mp3\r\n");
Serial.println("OK");
break;

правильно???
или надо как то по-другому??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DFRduino Player
СообщениеДобавлено: 08 дек 2011, 20:01 
Не в сети
Аватара пользователя

Зарегистрирован: 10 янв 2008, 22:01
Сообщения: 113
Откуда: Москва
все, Разобрался!!! :Yahoo!:
надо писать просто имя файла, без расширения.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DFRduino Player
СообщениеДобавлено: 08 дек 2011, 22:02 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Странная фигня, это типа он не понимает частоту из файла? Ну самый тупой метод - пересемплить файлы с другой частотой, чтоб на компе они звучали басом. Ну или разбираться, возможно гуглить, это ж не от тебя зависит частота, а от прошивки этой дфруни.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DFRduino Player
СообщениеДобавлено: 23 янв 2012, 04:44 
Не в сети

Зарегистрирован: 14 янв 2010, 17:56
Сообщения: 4
Откуда: Украина, Львов
Здраствуйте.

Приобрел на днях DFRduino Player. И немогу понять как его подключить к ардуино.
Если не трудно подкажыте куда какие контакти втыкать (D0, D1).
И как вы разобрались с скоростю воспроизведения?

Заранее благодарен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DFRduino Player
СообщениеДобавлено: 23 янв 2012, 11:10 
Не в сети

Зарегистрирован: 13 янв 2011, 23:41
Сообщения: 75
Это какой-то ужас, зачем. Если китайцы мп3 плеера по 100 рублей продают, там же тупо 4 кнопки, а возможностей в 10 раз больше


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DFRduino Player
СообщениеДобавлено: 01 фев 2012, 17:46 
Не в сети
Аватара пользователя

Зарегистрирован: 10 янв 2008, 22:01
Сообщения: 113
Откуда: Москва
подсоединял я все по этой схеме - http://www.dfrobot.com/wiki/index.php?t ... Player.jpg

а на счет скорости воспроизведения- так и не разобрался...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DFRduino Player
СообщениеДобавлено: 19 фев 2012, 11:47 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
Плату не имею и конкретно аурдинами не увлекаюсь, но ссылка на сайт производителя (на их продукцию) выдает, что нет больше такой страницы и причина видима как раз в фиксе какой-то проблемы.
Если отвлечься от их проблем и подумать о конкретики, то скорее всего они не передают данные о настройках из файла, не до пиленная прошивка (если это wav), а т.к. прямого подключения к аппаратному декодеру нет и ей управляет 168 мега, то получается затык.
По идеи с мп3 таких проблем не должно быть, т.к. информация о хар-х находится в самом потоке..


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO