Ардуино - запись звука

Обсуждаем контроллеры компании Atmel.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

_write() только два последних вызова оставить, первый не надо!

Добавлено after 3 minutes 5 seconds:

Код: Выделить всё

void _write() // Для update WAV header with final filesize/datasize
{
    rec.write(recByteSaved & 0xff);  rec.write((recByteSaved >> 8) & 0xff);  rec.write((recByteSaved >> 16) & 0xff);  rec.write((recByteSaved >> 24) & 0xff);
}

 void StopRec() // stop recording process, update WAV header, close file
 { 
    cbi(TIMSK2, OCIE2A); // disable timer interrupt

    /// Start update WAV header with final filesize/datasize ///
    rec.seekSet(4);
    _write();
    rec.seekSet(40);
    _write();
    rec.close();
    /// End update WAV header with final filesize/datasize ///
    digitalWrite(ledStart, LOW); // turn off recording LED
    digitalWrite(ledStop, HIGH); // light stop LED
    recPressed = 0;
}
Добавлено after 6 minutes 33 seconds:
а вот это файл?
Вложения
audiorecorder_martian.arduino.txt
(13.04 КБ) 51 скачивание
Реклама
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

да, он , который я исправил и попробовал
Реклама
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

nosound и notsound - это одно и тоже, я опечатался.

вот с новыми исправлениями

Добавлено after 5 minutes 47 seconds:
Внёс ещё одно изменение
Вложения
audiorecorder_martian.arduino.txt
(13.01 КБ) 58 скачиваний
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

без ошибок, но русский язык ушел
Вложения
Screenshot_1_martian_русский язык ушел.png
(14.11 КБ) 47 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

потому что изначально кодировка улетела
но работает?
Реклама
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

неа, не работает , звук не пишет. Все тоже что и в прошлый раз. Красная (запись) горит постоятнно. А должна лишь когда запись идет.

Добавлено after 5 minutes 11 seconds:
файлы делает без данных , ток заголовки
Реклама
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

С отладчиком умеете работать? Поставить точку остановки внутри прерывания ацп, посмотреть, попадает ли туда

Добавлено after 6 minutes 43 seconds:
Untitled-1.c
в кодировке utf-16
(22 КБ) 62 скачивания
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

неа, отладчиком это быстро не будет, в арудине отладчика нету. Есть Serial. Но я загружаю по USB asp, потом ставлю прошитую МК в устройство которое подключено к звуку. Т.е можно что-то организовать для проверки, но это уже не быстро. Точнее скзать, это уже нужно еще подумать как.

что бы и источник звука был и часы поставить и флэшку. Короче , целое дело!
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

Ясно. значит, пробуем этот файл. Заодно гляньте, русский вернулся?
Вложения
Untitled-1.c
(22.08 КБ) 58 скачиваний
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

уже что то новое

Добавлено after 35 seconds:
там образец записнного wav файла

Добавлено after 20 seconds:
русский вернулся
Вложения
22-28-43.zip
(5.37 КБ) 50 скачиваний
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

ну значит, почти работает. Как я понимаю, нужна определённая скорость для записи wav? слишком быстро нельзя?

Добавлено after 39 seconds:
кстати, второй канал при этом что-то делает? есть отображение?
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

второй канал измеряет напряжение

Добавлено after 1 minute 26 seconds:
ну и усредняет там было видно в коде, я там пытался чудить. Т.е измеряет напряжение на стандартных настройках АЦП analogRead(A0)

Добавлено after 2 minutes 16 seconds:
Martian писал(а): слишком быстро нельзя?
ну я как-то об этом не задумывался. Там же есть частота дискретизации 22050. А как оно разруливается. Таймер2 , вероятно отвечает за это все, его настройки
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

Усреднение можно попроще делать, именно как у Dimon456 в его варианте.

Добавлено after 1 minute 51 second:
[uquote="olegue",url="/forum/viewtopic.php?p=4245106#p4245106"]ну я как-то об этом не задумывался. Там же есть частота дискретизации 22050. А как оно разруливается. Таймер2 , вероятно отвечает за это все, его настройки[/uquote]
таймера теперь нет )) теперь идёт максимальная скорость, которая может быть получена Если она слишком высока, то необходимо снова воспользоваться таймером, теперь уже для синхронизации wav, чтоб он не получился фиг знает каким... ща посмотрю.

Добавлено after 8 minutes 10 seconds:
с синхронизаций 22 кГц

Добавлено after 6 minutes 38 seconds:
упс, неверно. перезалил файл с исправлением
Вложения
Untitled-1.c
(22.38 КБ) 59 скачиваний
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

все то ж самое.

Добавлено after 35 seconds:
даже после перезалива
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

хм... а присланный ранее wav - это максимально большой, что получается? или просто короткая запись была?
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

не, записи была все примерно одинаковы. Но в одном из случаем файл бы побольше.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Ардуино - запись звука

Сообщение Martian »

очередная версия

Добавлено after 18 minutes 24 seconds:
Можете проиграть этот файл на вход, и прислать получившийся? Хочу сравнить, как разбегаются входные данные с выходными...
Вложения
Sound_18564.zip
тестовый wav
(113.12 КБ) 51 скачивание
Untitled-1.c
(22.48 КБ) 68 скачиваний
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

Ок но это уже не быстро, счас буду думать где найти источник с приемлемым уровнем.

Добавлено after 1 minute 5 seconds:
если с компьюетра гнать, то нужен усилок, посмотрю где-то уменя что то было

Добавлено after 26 minutes 44 seconds:
[uquote="roman.com",url="/forum/viewtopic.php?p=4244853#p4244853"]olegue что ты хочешь... не пойму))
писать два канала сразу ?
кто мешает ?)) делай "переключатель" каналов и пиши сразу два канала))


сделай две функции...

// включаем канал номер 0
void Setup_ADC_0() {

ADMUX = 0x60; // set ADC to read pin A5, ADLAR to 1 (left adjust)
cbi(ADCSRA, ADPS2); // set prescaler to 8 / ADC clock = 2MHz
sbi(ADCSRA, ADPS1);
sbi(ADCSRA, ADPS0);
}

// включаем канал номер 1
void Setup_ADC_1() {

ADMUX = 0x61; // set ADC to read pin A5, ADLAR to 1 (left adjust)
cbi(ADCSRA, ADPS2); // set prescaler to 8 / ADC clock = 2MHz
sbi(ADCSRA, ADPS1);
sbi(ADCSRA, ADPS0);
}


// в прерывании таймера переключаем каналы...

ISR(TIMER2_COMPA_vect) {

recByteCount++; // increment sample counter
bufByteCount++;
if (bufByteCount == 64 && bufWrite == 0) { bufByteCount = 0; bufWrite = 1;
} else if (bufByteCount == 64 & bufWrite == 1) { bufByteCount = 0; bufWrite = 0; }

if (bufWrite == 0) {
Setup_ADC_0(); // включаем канал номер 0
sbi(ADCSRA, ADSC); // start ADC sample
while (bit_is_set(ADCSRA, ADSC)); // wait until ADSC bit goes low = new sample ready
buf00[bufByteCount] = ADCH;
}

if (bufWrite == 1) {
Setup_ADC_1(); // включаем канал номер 1
sbi(ADCSRA, ADSC); // start ADC sample
while (bit_is_set(ADCSRA, ADSC)); // wait until ADSC bit goes low = new sample ready
buf01[bufByteCount] = ADCH;
}

}

:roll:
чёто намудрили с буферами)))[/uquote]


может все таки вот это попробовать. Как по мне так вполне годный код. В прерывании просто переключаем каналы АДС

Добавлено after 1 minute 24 seconds:
почему это может не работать?

Добавлено after 3 minutes 18 seconds:
или вообще сделать 2 таймера и пускай каждый делает свое дело
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Ардуино - запись звука

Сообщение roman.com »

olegue писал(а):В прерывании просто переключаем каналы АДС
я сразу это предложил...
вы пошли не тем путём))
у вас есть готовый рабочий код... всё что надо - просто добавить переключатель каналов))
а вас понесло совсем не туда...
olegue писал(а):или вообще сделать 2 таймера и пускай каждый делает свое дело
опять не то...
olegue писал(а):почему это может не работать?
разберись с буферами...

что ты пишешь на флешку ? не пойму...

buf00[bufByteCount] = ADCH; // это функция записи на флешку ?

bufByteCount == 64 // а почему размер буфера 64 байта ?

ты пишешь по 64 байта ? в сектор по 512 байт ? а остальные 448 байт ? или ты их оставляешь пустыми ?

64 байта данных... 11111111111111111....
и 448 байта нулей... 0000000000000000000000000000000000000000000...
так что ли ? ))

а я тут уже видео делаю)) всё передаю по Интернету ))
видео.jpg
(85.25 КБ) 47 скачиваний
потом буду делать IP камеры.
:)
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

Re: Ардуино - запись звука

Сообщение olegue »

roman.com писал(а):у вас есть готовый рабочий код... всё что надо - просто добавить переключатель каналов))
,

как по мне,то это именно то что мне нужно.
Ответить

Вернуться в «AVR»