Например TDA7294

Форум РадиоКот • Просмотр темы - Ардуино - запись звука
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 11:19:52

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 694 ]     ... , , , 26, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Сб ноя 12, 2022 15:23:36 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Изображение

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

Код:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
   The type javax.swing.JComponent cannot be resolved. It is indirectly referenced from required .class files
   The method setBackground(Color) is undefined for the type JTextArea
   The method setForeground(Color) is undefined for the type JTextArea
   The constructor JScrollPane(JTextArea) is undefined
   The method setBounds(int, int, int, int) is undefined for the type JScrollPane
   The method add(Component) in the type Container is not applicable for the arguments (JScrollPane)


Изображение

Добавлено after 4 minutes:
заходил я в building path, но так и не разорбрался че там надо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Сб ноя 12, 2022 15:42:12 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
пишет что проблемы с окном... javax.swing - это окно.
показывай кресты...
а вообще первым делом закомментируй кресты... на которые он ругается))
если и дальше ругается... тогда закомментируй всё окно )) будет работать без окна... потом нарисуем... делов то))
программа блочная... можно включить/отключить любой блок))
у тебя Java 1.8... у меня Java 1.7... хотя должно быть без разницы))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Сб ноя 12, 2022 20:50:11 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Ничерта не выходит. В интернете до фига issue по этому поводу,но четкого рецепта нету как ээто заставить работаь , думаю может новый эклипс скачать.

Добавлено after 1 hour 7 minutes 18 seconds:
Изображение

Поставил абсолютно новый Эклипс с офсайта, но поначала все равно что бы шло все не так. Потом почитал issue На stackoverflow и в итого все заработало.

Добавлено after 3 minutes 46 seconds:
пришли чистые данные в Хексе

Я посылал строку "Hello from Android" - 18 байт

Так и пришло 18 байт

Добавлено after 1 minute 27 seconds:
Все понятно, фигова что в яве я ни бум-бум , еще один Иде на мою слабую голову.

Добавлено after 17 minutes 23 seconds:
вот этого не хватало что бы все заработало

Изображение
взято отсюда:

https://stackoverflow.com/questions/571 ... d-how-do-i

Добавлено after 3 minutes 54 seconds:
Теперь эти байты можно сложить в буфер секунды на 2 и заряжать в плейер какой-то самописный?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Сб ноя 12, 2022 21:01:59 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
olegue писал(а):
вот этого не хватало что бы все заработало

первый раз такое слышу...))
я давал ссылки на свой Java
https://disk.yandex.ru/d/gT4Vn7Y_Xo5e4w
и Эклипс
https://disk.yandex.ru/d/sI0Aa-SjNqjRzA
всё рабочее.
а ты полез по сайтам... в поисках приключений))

olegue писал(а):
Я посылал строку "Hello from Android" - 18 байт

ну добавь тогда ещё и ASCII ))
Вложение:
Win-1251-cvavr-java.png [41.04 KiB]
Скачиваний: 33

будет переводить автоматом))
Вложение:
Udp.txt [11.27 KiB]
Скачиваний: 29

а компилирует нормально ?
Теперь эти байты можно сложить в буфер секунды на 2 и заряжать в плейер какой-то самописный?

можно


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Вс ноя 13, 2022 00:08:25 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
roman.com писал(а):
а компилирует нормально ?



да, вообще без вопросов


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Вс ноя 13, 2022 10:54:58 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
ок, теперь можно подумать как отправить данные с ардуино через sim800. Думаю использовать тот же скеч что здесь делали, только вот уже sdfat, eeprom, rtc1307 - все эти библиотеки можно отключить и освободить место. А значит буфер можно будет увеличить и минимум будет 2 по 512 или даже больше. Попробую испльзовать ту же схему что и при сбросе данных на sd карту. Только по данным из буфера буду формировать пакеты и отправлять в сеть. Тут бы мне пригодился модуль Ethernet для отладки, надо заказать на всякий случай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Вс ноя 13, 2022 23:24:23 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 2
в java есть плеер_wav...
сам плеер_wav особенностей не имеет)) принцип простой
1. пакеты прилетают в буфер socket // UDP: MIN=18; MAX=1472.
2. после фильтрации пакеты попадают в буфер плеер_wav
3. всё что попадает в буфер плеер_wav мы слышим в динамике))
Вложение:
Udp.txt [14.41 KiB]
Скачиваний: 44

основная сложность работы со звуком - это синхронизация приёмника и передатчика.
надо понимать что звук это не просто данные а поток.
для синхронизации потока в заводском и самодельном скайпе используется заголовок.
вначале каждого пакета добавляется заголовок... типа... частота битрейт... частота семплирование... скорость воспроизведения... и т.д.
плеер_wav должен читать заголовок и подстраиваться под передатчик...
тогда всё работает чётко))
всё это реализовано в самодельном скайпе))
:tea:

Добавлено after 17 minutes 13 seconds:
Ethernet для отладки, надо заказать на всякий случай.

надо
потому что самодельный Ethernet всё ещё находится в разработке))
Вложение:
схема.jpg [95.43 KiB]
Скачиваний: 28


Добавлено after 1 hour 22 minutes 31 second:
звук так же можно записать на комп... например в файл "D:/Java.txt"
и прослушать позже))
Вложение:
Udp.txt [17.4 KiB]
Скачиваний: 42

а можно записать на комп... например в файл "D:/Java.wav"...
и добавить wav заголовок...
тогда можно слушать на компе в любом проигрывателе))
и т.д. и т.п.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пн ноя 14, 2022 01:31:00 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Скидывал буфер на сериал 115200 , вот такая шляпа получилась . Там файлик приложил. Это сырец из программы CoolTerm. Я его распознал с помощью Sound Forge и сохранил. Сэмплрейт -8000кгц. Но прослушитьвать пришлось на 10000кгц. Почему так я не знаю.

Код:
 
 if (recByteCount % 256 == 128 ) //&& recPressed == 1)
  {
    //rec.write(buf00, 128);  // save buf01 to card
 
    Serial.write(buf00, 128); 
 
    recByteSaved += 128;
  }


 if (recByteCount % 256 == 0)// && recPressed == 1)
  {
    //rec.write(buf01, 128);  // save buf02 to card

    Serial.write(buf01, 128);
 
    recByteSaved += 128;
  }


//    }


Вложения:
CoolTerm Capture 2022-11-14 01-17-51.rar [669.68 KiB]
Скачиваний: 40
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пн ноя 14, 2022 16:13:16 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Итак, Роман, установил яву, которыую выложили и эклипс. Все завелось с 1 раз. поставил последний код, где запись в файл возможно.
Запустил sim800 в прозрачном режиме и настроил на прием в Яве. Отправляю по одному байту. Код прерывания таймера ниже привел. Таймер -8кгц

настойка таймера и АдС

Код:
void Setup_timer2() {
  TCCR2B = _BV(CS21);  // Timer2 Clock Prescaler to : 8
  TCCR2A = _BV(WGM21); // Interupt frequency  = 16MHz / (8 x 125 + 1) = 16000Hz
  //OCR2A = 125; // Compare Match register set to 125 (было 90) Перешл на 16кгц
  OCR2A = 250; // Compare Match register set to 250 (было 90) Перешл на 8кгц
}
void Setup_ADC() {
  ADMUX = 0x60; // set ADC to read pin A0, ADLAR to 1 (left adjust)
  cbi(ADCSRA, ADPS2); // set prescaler to 8 / ADC clock = 2MHz
  sbi(ADCSRA, ADPS1);
  sbi(ADCSRA, ADPS0);
}


Так вот когда только запускаешь программа, первые 1-1.5 сек вроде как хороший звук,а дальеш пошли затыки и ничего не разобрать. Если бы в программе на яве где то был буфер секунда 5, тогда наверно вы бы было хорошо

Код:
ISR(TIMER2_COMPA_vect) {
//ADMUX = 0x60; // set ADC to read pin A0, ADLAR to 1 (left adjust)
  sbi(ADCSRA, ADSC); // start ADC sample
  while (bit_is_set(ADCSRA, ADSC)); // wait until ADSC bit goes low = new sample ready

myGsm.write(ADCH);
 
}


пробовал отправялть сразу буфером, менял размеры буфера 128,256, 512 - существенно улучшений нет

myGsm.write(buf00, 512);

Добавлено after 8 minutes 45 seconds:
вот прикладываю сырой файл 8кгц, 8бит беззнаковый. В самой начале все хорошо видно.


Вложения:
Java.txt [135.47 KiB]
Скачиваний: 47
Комментарий к файлу: это сырой файл 8кгц, 8бит , бесзнаковый
Java.txt [135.47 KiB]
Скачиваний: 27
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пн ноя 14, 2022 18:20:54 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 2
olegue писал(а):
Отправляю по одному байту.

:roll:
Отправляю по одному байту...
Вложение:
1.jpg [55.75 KiB]
Скачиваний: 23

нифига не разобрать )) плеер в ява не успевает обрабатывать по одному байту...

а по два ?
Вложение:
2.jpg [55.45 KiB]
Скачиваний: 23

нифига не разобрать ))

а по 10 ?
Вложение:
10.jpg [67.4 KiB]
Скачиваний: 24

несколько секунд играет нормально)) потом бульканье...

а по 100 ?
Вложение:
100.jpg [123.6 KiB]
Скачиваний: 25

по 100 уже нормально.

вывод: надо отправлять не меньше 100 байт в одном пакете...
:tea:

Добавлено after 3 minutes 8 seconds:
а по 512 ?
Вложение:
512.jpg [159.22 KiB]
Скачиваний: 24

совсем хорошо))

а по 1472 ? максимальный размер пакета...
Вложение:
1472_MAX.jpg [167.86 KiB]
Скачиваний: 26

совсем замечательно))

вывод: надо отправлять нормальные пакеты... не меньше 100 байт в одном пакете...

в заводском скайпе 100...200 байт в одном пакете...

а вообще... чем больше тем лучше))
:tea:

Добавлено after 33 minutes 43 seconds:
olegue писал(а):
Так вот когда только запускаешь программа, первые 1-1.5 сек вроде как хороший звук,а дальеш пошли затыки и ничего не разобрать.

далее... самое главное))
roman.com писал(а):
основная сложность работы со звуком - это синхронизация приёмника и передатчика.
надо понимать что звук это не просто данные а поток.

ключевое слово - поток)) нужен непрерывный поток.

вот моя запись... видно непрерывный поток....
фон с микрофона 50 герц... но в данном случае это не важно... главное что на записи видим непрерывный поток.
Вложение:
мой_1.jpg [233.59 KiB]
Скачиваний: 27

и далее...
Вложение:
мой_2.jpg [235.85 KiB]
Скачиваний: 27

и далее...
Вложение:
мой_3.jpg [224.5 KiB]
Скачиваний: 23

и далее...

а у тебя что ?
olegue писал(а):
вот прикладываю сырой файл 8кгц, 8бит беззнаковый.

вот твоя запись... видно что поток прерывается....
Вложение:
твой_1.jpg [181.87 KiB]
Скачиваний: 28

и далее...
Вложение:
твой_2.jpg [185.73 KiB]
Скачиваний: 25

и далее...
Вложение:
твой_3.jpg [185.34 KiB]
Скачиваний: 22

и далее...

такое ощущение... что в момент отправки данных...
myGsm.write(ADCH);

таймер не работает)) и ничего не цифрует))
ISR(TIMER2_COMPA_vect) {
//ADMUX = 0x60; // set ADC to read pin A0, ADLAR to 1 (left adjust)
sbi(ADCSRA, ADSC); // start ADC sample
while (bit_is_set(ADCSRA, ADSC)); // wait until ADSC bit goes low = new sample ready
}

в итоге: получаем рваный поток ))
разорванный в клочья))
:)))

ты все данные получаешь ? ощущения что не все... ))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пн ноя 14, 2022 18:36:53 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
дело в том что когда Sim800 работает в прозрачном режиме, т.е в режиме без подтверждение отправки, то байты отправляются как бы в буфер и на приемной стороне они выглядят в виде пакетов по 1024 байт

Цитата:
TX_IP X.XXX.XXX.82 | len 1024 | port 9666 |
7A 7A 7A 7A 7A 7A 7B 7B 7A 7A 7A 7B 7A 7A 7A 7B 7A 7A 7A 7B 7A 7A 7B 7B 79 79 7A 7A 79 79 7A 7B 7A 79 79 7A 7A 79 79 7A 7A 79 7A 7A 7A 79 7A 7A 7B 79 7A 7A 7A 7A 7A 7A 7B 7A 79 7A 7A 79 7B 7B 7A 79 79 7A 7B 79 79 79 7A 7A 79 7A 7A 7B 7A 79 7B 79 79 79 7A 7B 7A 7A 7B 7A 7A 7A 7B 7B 7A 7A 7B 7B 79 79 7B 7B 79 79 79 7B 7A 79 7A 7A 7A 79 7A 7B 7A 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 79 7A 7B 7B 79 79 7B 7B 79 7A 7A 7B 7A 79 7A 7B 7A 7A 7B 7B 7A 7A 7A 7B 7B 7A 7B 7B 7B 7A 7A 7B 7A 7A 7A 7B 7B 79 79 7B 7B 79 79 7A 7B 79 79 7A 7A 7A 79 7A 7A 7A 7A 7A 7B 7A 79 7A 7B 7A 7A 7A 7A 7A 7A 7A 7B 7A 79 7A 7B 7B 7A 79 7B 79 79 79 79 79 79 79 7A 7A 79 79 7A 7A 7A 7A 7A 7B 7A 79 7A 7B 7A 7A 7B 7B 7A 7A 7A 7B 7A 7A 7A 7B 7A 79 79 7B 7B 79 7B 7B 79 79 7A 7A 7A 7A 7B 7A 7B 7A 7A 7A 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7A 7B 7A 7A 7B 7B 7A 7A 7A 7B 7B 79 7B 7B 7B 79 7A 7A 7A 79 7A 7A 7B 7A 7B 7B 7B 7A 7B 7B 7A 7A 7A 7B 7A 7A 7A 7B 7B 7A 7B 7B 7A 7A 79 7B 7B 79 79 7A 7B 7B 79 7A 7A 7A 79 7A 7A 7A 79 7A 7A 7A 7A 7A 7A 7A 7A 7A 7A 7B 7A 7A 7A 7B 7A 7A 7A 7B 79 7B 7B 79 7A 79 7A 7A 79 79 79 7A 7A 79 79 7A 7A 7A 7A 7B 7A 79 7A 7B 7A 7A 79 7A 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7B 7B 7B 7A 79 7B 7B 79 79 7A 7A 7A 79 7A 7B 7A 7A 7A 7B 7A 7A 7A 7B 7B 7A 7A 7B 7B 7A 7B 7B 7B 7A 7A 7B 7B 79 7A 79 7B 79 79 7B 7B 79 79 7A 7A 7A 7A 7A 7B 7A 7A 7B 7B 7A 7A 7A 7B 7A 7A 7A 7B 7A 79 7A 7B 7A 79 7A 7B 7A 79 7B 7B 7A 79 7A 7B 7A 79 79 7A 7A 79 7A 7A 7A 79 7A 7A 7A 79 7A 7A 7B 7A 7A 7A 7B 79 7A 7B 7B 7A 7A 7A 7A 7A 79 7B 7B 79 7A 79 7B 79 7A 7A 7A 7A 7A 7A 7A 7A 7A 7A 7B 7A 79 7A 7B 7A 79 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7B 79 7B 79 79 7B 7B 79 79 7A 7A 7A 7A 7A 7B 7A 7A 7B 7B 7A 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 79 7B 79 79 79 7B 7A 79 79 7A 7B 7A 7A 7A 7B 7A 7A 7A 7B 7A 7A 7A 7B 7B 7A 7A 7B 7B 7B 7A 7A 7B 7A 7A 7B 7B 79 7A 7B 7B 7A 7B 7A 7B 79 79 7A 7A 7A 79 7A 7B 7A 7A 7A 7A 7A 79 7A 7B 7A 7A 7A 7A 7A 7A 7A 7B 7A 7A 7A 7A 7B 79 7A 7B 7B 79 7A 7B 7B 79 79 79 7A 79 79 7A 7A 7A 79 7A 7B 79 79 7A 7B 7A 79 7A 7B 7A 7A 7A 7B 7A 79 7A 7B 7A 7B 7A 7B 79 79 79 7A 7B 79 7A 7A 7B 7A 79 7A 7B 7A 7A 7A 7B 7A 79 7A 7B 7A 7A 7A 7B 7B 7A 7B 7B 7B 7A 7B 7B 7B 79 7A 7B 7B 79 7B 7B 79 79 7A 7A 7B 7A 79 7A 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7B 7A 7A 7B 7B 7A 7B 7B 7B 79 79 7B 7B 79 79 79 7B 79 79 7A 7A 7A 79 7A 7A 7A 7A 7B 7A 7A 79 7A 7B 79 79 7A 7B 79 7A 7B 7B 7A 79 7A 7B 7B 79 7B 7B 7B 79 79 7B 79 7A 79 7A 7A 79 79 7A 7A 7A 7A 7A 7A 79 79 7A 7A 79 79 7A 7A 7A 7A 7A 7A 7A 79 7A 7B 7A 7A 7A 7B 7A 7A 7A 7B 7A 79 7A 7B 7A 7A 7A 7B 7B 7A 7B 7A 7B 7A 7A 7B 7B 7B 7A 7B 7B 7B 7A 7B 7B 7A 7A 7B 7B 79 7A 7B 7B 79 79 7A 7B 79 7A 7A 79 7A 7A 7A 7B 7A 7A 7A 7B 7A 7A 7A 7B 7A 7A 7A 7B 7B 7A 7B 7B 7B 7A 7B 7B 7A 7A 79 7B 79 7A 7A 79 7B 79 7A 7B 7B 7A 7A 7B 7B 7A 7A 7B 7B 7A 79 7A 7B 79 7A 7A 7B 7A 79 7A 7B 79 79 7A 7B 7A 79 7B 7B 7A 79 7A 7B 7A 79 7A 7A 7A 79 79 7A 7A 79 7A 7A 79 79 79 7A 7B 79 7A 7A 7B 7A 7A 7A 7A 7A 7A 7A 7A 7A 79 7A 7A 79 79


Последний раз редактировалось olegue Пн ноя 14, 2022 19:15:06, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Пн ноя 14, 2022 19:49:40 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 2
не важно в каком режиме работает Sim800...
важно что таймер цифрует со скоростью 8к и всё что нацифрует таймер должно быть доставлено в яву))

таймер выдаёт 8000 байт в секунду.
и все 8000 байт (не важно по частям или все сразу) должны быть доставлены яве.
и все байты (8000 байт в секунду) ява записывает в файл.

а у тебя такое впечатление что не все 8000 байт доставляются в яву...

твой таймер цифрует то 7998 байт в секунду... то 7999 байт в секунду... то 8000 байт в секунду...

иначе откуда в записанном файле пробелы ?
Вложение:
твой_4.jpg [186.15 KiB]
Скачиваний: 28

если бы таймер чётко цифровал 8000 байт в секунду... то на записи было бы видно один сплошной непрерывный поток байт !
а мы такого не видим...

для проверки непрерывности потока можешь пронумеровать все байты в своей ардуине... ))
0,1,2,3,4,5,6,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,8,9,0,1,2,3,4,5,6,7,8,9...
в такой же последовательности ты их увидишь в записи...
0,1,2,3,4,5,6,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,8,9,0,1,2,3,4,5,6,7,8,9...

если будут пропущенные байты в потоке...
0,1,2,3,6,7,8,9,0,1,2,3,4,5,7,8,9,0,2,3,4,5,6,0,1,2,3,4,5,6,7,8,9...
значит... выкинь свою ардуину)) или Sim800... ))

Добавлено after 1 hour 59 seconds:
для проверки звукозаписывающей аппаратуры обычно используют генераторы стандартных сигналов (ГСС).
Вложение:
ГСС.jpg [49.5 KiB]
Скачиваний: 22

но под рукой ГСС у меня нет...
:)))
поэтому сделаем по другому... вместо ГСС используем таймер ардуины...

вот я для проверки вместо звука передаю просто пронумерованные батый...
0,1,2,3,4,5,6,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,8,9,0,1,2,3,4,5,6,7,8,9...
по 100 байт в пакете
Вложение:
проверка.jpg [120.9 KiB]
Скачиваний: 23

чётко видно что каждый пакет заканчивается 9... а начинается 0...
ни одного пропущенного байта у меня нет))

в записи тоже самое...
Вложение:
запись.jpg [122.1 KiB]
Скачиваний: 20

Вложение:
запись_2.jpg [156.31 KiB]
Скачиваний: 21

у меня непрерывный поток 8000 байт в секунду.
:tea:
в наушниках я слышу непрерывный тон 1 кгц. (8000/10=1 кгц)
:music:
это значит что таймер ардуины (на ATmega328) работает с частотой ровно 8 кгц (частота прерывания таймера).
ISR(TIMER2_COMPA_vect) {
//ADMUX = 0x60; // set ADC to read pin A0, ADLAR to 1 (left adjust)
sbi(ADCSRA, ADSC); // start ADC sample
while (bit_is_set(ADCSRA, ADSC)); // wait until ADSC bit goes low = new sample ready
}
Вложение:
ардуина.jpg [50.75 KiB]
Скачиваний: 22

:)
вот такие занимательные эксперименты можно проводить со звуком... ардуиной... и явой))
:)))

а может у тебя просто пакеты теряются ? проверял ?
:o
на такое наш плеер не рассчитан...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Вт ноя 15, 2022 13:58:25 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 2
Так вот когда только запускаешь программа, первые 1-1.5 сек вроде как хороший звук,а дальеш пошли затыки и ничего не разобрать. Если бы в программе на яве где то был буфер секунда 5, тогда наверно вы бы было хорошо

ещё раз... разберём подробно))

пункт 1. - буфер.
в яве 2 буфера.

-первый буфер сокета.
DatagramSocket socket = new DatagramSocket(80);
по умолчанию размер буфера сокета 8 килобайт (или 8192 байт).
размер буфера сокета можно менять командой
//socket.setReceiveBufferSize(1); // размер буфера RX Ethernet
но мы этого пока делать не будем... оставим по умолчанию 8 килобайт (8192 байт).

-второй буфер плеера.
static byte[] din_byte_wavr = new byte[1472];
размер буфера плеера мы устанавливаем сами... какой захотим ))

Как это работает ?
1. все пакеты Ethernet прилетаю на комп и записываются в буфер сокета по умолчанию 8 килобайт (8192 байт).
2. плеер берёт пакеты из буфера сокета и переносит их в свой буфер.
RX_line.write(din_byte_wavr, 0, RX_len);//RX_len
при этом буфер плеера подстаивается под размер пакета Ethernet.

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

вот анализатор пакетов заводского скайпа... обрати внимание что прилетело два пакета подряд... но благодаря двойной буферизации на работу скайпа это не влияет))
Вложение:
Skype_.jpg [168.54 KiB]
Скачиваний: 24

а вот анализатор пакетов самодельного скайпа... обрати внимание что прилетело два пакета подряд... но благодаря двойной буферизации на работу скайпа это не влияет))
Вложение:
Skype_ (1).jpg [192.63 KiB]
Скачиваний: 25

благодаря двойной буферизации можно передавать пакеты по одному.
1024.........1024.........1024.........1024.........
а можно передавать пакеты по несколько штук за раз... пачками))
......1024.1024.1024.1024.........

на работу плеера это не влияет... потому что все пакеты сначала попадают в буфер сокета.
1024.1024.1024.1024.
а плеер забирает пакеты из буфера сокета и передаёт в свой буфер по одному пакету.
1024.........1024.........1024.........1024.........
в динамике мы слышим равномерный непрерывный поток)) никаких затыков нет !
:music:

добавление ещё одного буфера в программу на секунд 5... ничего не даст))
просто в динамике мы услышим звук с задержкой на 5 секунд.

Вывод:
в яве буфера и так хорошо работают. Их трогать не надо))
:tea:

пункт 2. - поток.
чтобы плеер играл без затыков надо чтоб ардуина цифровала и передавала ровно 8000 байт в секунду.
тогда передатчик (ардуина) и приёмник (ява) будут работать синхронно.
передатчик (ардуина) - цифрует и передавала ровно 8000 байт в секунду.
приёмник (ява) - принимает и играет ровно 8000 байт в секунду.
всё синхронизировано)) никаких затыков нет !
:music:

у тебя (судя по записям) теряются байты в пакетах... или теряются сами пакеты... до конца пока не ясно))
:dont_know:

как проверить не теряются ли байты в пакетах ?
точнее нас интересуют не теряется ли порядок байт в пакетах...
проверить очень просто - достаточно их пронумеровать))
мы передаём 1024 байт это 00-FF... 00-FF... 00-FF... 00-FF... (или 256 + 256 + 256 +256)
смотрим...
Вложение:
байты.jpg [161.68 KiB]
Скачиваний: 22

Вложение:
запись.jpg [219.15 KiB]
Скачиваний: 20

все байты пришли строго по порядку... 00-FF... 00-FF... 00-FF... 00-FF... (или 256 + 256 + 256 +256)
всё хорошо))
:tea:

ещё бывает что скайп зависает... особенно часто если скайп работает по радио... и при слабом сигнале...))
это теряются пакеты.
как проверить не теряются ли пакеты ?
проверить очень просто - достаточно их пронумеровать))
00-FF... (или 256)
смотрим...
Вложение:
счёт.jpg [161.29 KiB]
Скачиваний: 25

все пакеты пришли без потерь)) строго по порядку... 00-FF... (или 256)
всё хорошо))
:tea:
Вложение:
Udp.txt [17.68 KiB]
Скачиваний: 33

:tea:

к слову... пакеты Ethernet изначально уже пронумерованы))
в заголовке IP пакета есть поле "Идентификатор"
https://ru.wikipedia.org/wiki/IP#Версия_4_(IPv4)
Вложение:
идентификатор.jpg [60.5 KiB]
Скачиваний: 24

если откроем анализатор то увидим что комп уже изначально пронумеровал все Ethernet пакеты))
Вложение:
анализатор.jpg [67.54 KiB]
Скачиваний: 23

:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Ср ноя 16, 2022 16:07:34 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Код:
if ((micros()-timerHour)>125){  /// 8 КГЦ
myGsm.write(char(1));
myGsm.write(char(2));
myGsm.write(char(3));
myGsm.write(char(4));
myGsm.write(char(5));
myGsm.write(char(6));
myGsm.write(char(7));
myGsm.write(char(9));
myGsm.write(char(0));
    timerHour=micros();
    }


зарядил таймер на 8кгц и отправил нумерованный данные

результат файле

Добавлено after 3 minutes 19 seconds:
счас тока увидел пропустил "8" при отправке - это нужно учесть при просмотре


Вложения:
ПАКЕТЫ И БАЙТЫ ПО ПОРЯДКУ.txt [146.8 KiB]
Скачиваний: 40
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Ср ноя 16, 2022 16:34:49 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 2
Вложение:
1.jpg [235.37 KiB]
Скачиваний: 22

хорошо))
радио модуль передаёт нормально.

теперь передаём звук...
у меня при передачи звука непрерывный поток...
Вложение:
мой_1.jpg [233.59 KiB]
Скачиваний: 22

у тебя при передачи звука поток прерывается...
Вложение:
твой_2.jpg [189.48 KiB]
Скачиваний: 26

у тебя какие то проблемы в модуле оцифровки...
:dont_know:


Последний раз редактировалось roman.com Ср ноя 16, 2022 16:43:31, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Ср ноя 16, 2022 16:41:01 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
второй файл поинтереснее, короче вывод такой что приходят байты в целом нормально


Вложения:
ПАКЕТЫ И БАЙТЫ ПО ПОРЯДКУ2.txt [189.56 KiB]
Скачиваний: 43
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Ср ноя 16, 2022 17:03:27 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 2
olegue писал(а):
приходят байты в целом нормально

"в целом нормально" тут неуместно))
мы делаем цифровую связь... а не пирожки лепим))

на второй записи видим потерю байт...
Вложение:
потеря_1_2_3_4.jpg [223.89 KiB]
Скачиваний: 21

Вложение:
потеря_2_3_4_5_6.jpg [237.6 KiB]
Скачиваний: 20

Вложение:
потеря_4.jpg [223.81 KiB]
Скачиваний: 19

из-за этого происходи прерывание потока...
Вложение:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Ср ноя 16, 2022 17:17:32 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
пустил на вход сигнал 1000 гц. Записал поток. Вначале 1.5 секунды нормально. Потом пошли прерывы. Но в файле это не слышно если слушаь как сырой в SOUND FORGE

Добавлено after 4 minutes 22 seconds:
СПЕКТР JAVA.TXT


Вложения:
Screenshot_1_SOUNDFORGE_1000ГЦ.png [38.51 KiB]
Скачиваний: 22
Java.txt [85.94 KiB]
Скачиваний: 40
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Ср ноя 16, 2022 17:22:58 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6865
Откуда: .ru
Рейтинг сообщения: 0
1000 гц много... нифига не видно)) поменьше пускай... 50 гц...

и на спектре видно чётко наложение...

короче фигово у тебя передаётся звук)) с потерей байт...

а ещё и скорость скорее всего плавает... рассинхронизация.

всё надо настраивать последовательно. Начиная с проверки целостности байт))

к слову...
скайп (заводской и самодельный) проверяет контрольные суммы каждого пакета...
при потери байт... наш скайп выдаст ошибку.
такую фигню... он вообще воспроизводить не будет))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ардуино - запись звука
СообщениеДобавлено: Ср ноя 16, 2022 17:35:33 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
50 гц

Добавлено after 1 minute 51 second:
может просто не пролазит в в канал UART 115200+ GPRS?


Вложения:
Java.txt [107 KiB]
Скачиваний: 26
Screenshot_1_50 гц.png [36.16 KiB]
Скачиваний: 26
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 694 ]     ... , , , 26, , , ...  

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


Кто сейчас на форуме

Сейчас этот форум просматривают: metan и гости: 24


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y