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

Обсуждаем контроллеры компании Atmel.
shaaimars
Родился
Сообщения: 10
Зарегистрирован: Вт мар 05, 2024 19:47:48

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

Сообщение shaaimars »

[uquote="roman.com",url="/forum/viewtopic.php?p=4575395#p4575395"]
shaaimars писал(а):Зачем изобретать колесо, если есть готовый выход?
у меня тот же вопрос))

купил готовый диктофон... в виде флешки))[/uquote]
мне ведь еще управлять хочется рацией, да чтобы с обратной связью, т.е. видеть на смартфоне что там у рации на экранчике показывають..
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

очень интересно)) рация - модем... связь со смартфоном...
а подробней ?
:tea:
shaaimars
Родился
Сообщения: 10
Зарегистрирован: Вт мар 05, 2024 19:47:48

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

Сообщение shaaimars »

да какие подробности
я только что узнал что, оказывается, hc-05 не может передать аудио на наушники
Я сам то подробности узнаЮ только по мере продвижения

Вот скажите пожалуйста, что это за штуки такие?

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

I2S<int32_t> i2s;
ChannelConverter<int32_t> converter(&convertFrom32To16);
Первая строка это понятно, параметризация
Что во второй строке? Почему после названия стоят скобки, в которых вообще адрес какой-то необъявленной переменной? Что это за конструкция?
Взято отсюда https://www.pschatzmann.ch/home/2021/04 ... icrophone/

Или например вот это

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

SineWaveGenerator<int16_t> sineWave(32000);                // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> sound(sineWave);             // Stream generated from sine wave
I2SStream out; 
StreamCopy copier(out, sound);                             // copies sound into i2s
Я не понимаю, с какого момента все перешли с обычного объявления переменной на такие конструкции
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

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

Сообщение olegue »

[uquote="shaaimars",url="/forum/viewtopic.php?p=4574633#p4574633"]1) Модуль с аудио АЦП/ЦАП под названием WM8960 (описание платы + даташит по ссылке).
2) Полный аналог платы DevKitC v4, с модулем esp32-wroom 32u (прошу прощения за формальный оффтоп, я все же не знаю куда тыкнуть этот пост, ибо в ветке ARM про ESP всего пара тем)[/uquote]

жирные железки, на таких можно целое видеонаблюдение забабахать, думаю , успех с записью звука неизбежен, но придется напрячься. Чем спецефичнее вопрос тем менее вероятно найти здесь ответчика и придется все самому искать, но это может и к лучшему.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

shaaimars фиг его знает)) я с таким не работал...
я на си... ассемблер... java (С++)... и т.д.
:tea:
olegue видео не потянет... частота esp32 маленькая... всего до 240 мгц...
:tea:

Добавлено after 9 minutes 48 seconds:
к слову... о птичках)) в esp32 можно заливать прошивку по воздуху...
:roll:
olegue ты никада не делал программаторов AVR ?
:roll:
есть мысля... сделать программатор AVR... чтоб заливать прошивку удалённо... по интернету...
типа как в роутере - заливаю прошивку через web-интерфейс...
надо тоже самое, только для AVR... чтоб не бегать... доставать... разбирать... подключать... прошивать... и т.д.
:tea:
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

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

Сообщение olegue »

[uquote="roman.com",url="/forum/viewtopic.php?p=4576980#p4576980"]olegue видео не потянет... частота esp32 маленькая... всего до 240 мгц...
:tea:[/uquote]
приятель прикупил esp32 cam с камерой. Но мне пока не удалось запустиить эту связку и воочию подтвердить Ваши убеждения. Но, как говориться, еще не вечер. В интернетах пишут разное, и то что видео получается сплошная мазня и то что скетчи для видеорегистрации все же существуют.
[uquote="roman.com",url="/forum/viewtopic.php?p=4576980#p4576980"]olegue
olegue ты никада не делал программаторов AVR ?
:roll:
есть мысля... сделать программатор AVR... чтоб заливать прошивку удалённо... по интернету...
типа как в роутере - заливаю прошивку через web-интерфейс...
надо тоже самое, только для AVR... чтоб не бегать... доставать... разбирать... подключать... прошивать... и т.д.
:tea:[/uquote]
Да, мой воспаленный рассудок тоже давненько вынашивает эту идею. И вот буквально на днях наткнулся на этот видос.https://www.youtube.com/watch?v=khI1xmbZN7A
т.е проблема с обменом по UART через LAN решена, осталось за кадром лишь то, как можно еще дергать пин DTR без которого не начать процесс прошивки через UART. Но я почти уверен что это не проблема если всерьез начать копать в эту сторону.

Добавлено after 2 hours 31 minute 29 seconds:
добавил по поводу esp32 cam https://wicard.net/projects/Arduino/ESP ... #100001000
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

esp32 cam это популярный проект... в сети много про это есть...
:tea:
2-мегапиксельна камера...
это по идеи получается 2.000.000 * RGB (8 бит) = 6.000.000 байт * 8 бит = 48.000.000 бит ))
если передавать 1 кадр в секунду... нам надо скорость 48.000.000 бит/c.
(48 Мбит/с) прикольно))
:tea:
ещё не забываем про шифрование...
:roll:
потянет ли всё это процессор с частотой 240 МГц... большой вопрос))
хотя если писать на ассемблере... то потянет))
:tea:
но вернёмся к нашим AVR))
идея в том чтоб программировать AVR по интернету...

сейчас прошивку заливаю в AVR по SPI через USBASP программатор...
Screenshot_1.jpg
(17.65 КБ) 80 скачиваний
для работы USBASP программатора нужен компьютер с USB кабелем... что не очень удобно.
:?
а что если к USBASP добавить интернет модуль ?
Screenshot_2.jpg
(38.02 КБ) 84 скачивания
получится типа Ethernet ASP программатор...))
тогда можно прошивать AVR по интернету...
вот такая идея.
:tea:
единственная проблема...
-я не знаю как работает программатор... надо изучать даташит AVR))
-я не знаю что за формат файла HEX... надо изучать формат HEX))
в остальном проблем нет.
:tea:
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

[uquote="roman.com",url="/forum/viewtopic.php?p=4577134#p4577134"]-я не знаю что за формат файла HEX... надо изучать формат HEX))[/uquote]
а что нам говорит справочник... https://ru.wikipedia.org/wiki/Intel_HEX#Пример_3

:020000021000EC
:10C20000E0A5E6F6FDFFE0AEE00FE6FCFDFFE6FD93
:10C21000FFFFF6F50EFE4B66F2FA0CFEF2F40EFE90
:10C22000F04EF05FF06CF07DCA0050C2F086F097DF
:10C23000F04AF054BCF5204830592D02E018BB03F9
:020000020000FC
:04000000FA00000200
:00000001FF

всё ясно))

Добавлено after 23 minutes 31 second:
-открываем файл HEX в программе AVRProg...
-программа AVRProg переводит файл HEX в массив байт...
-подключаем USBASP...
-прошиваем ATmega8...
программатор.jpg
(176.67 КБ) 358 скачиваний
вроде всё просто))
:roll:
сначала идёт строка адреса сектора флеша...
:020000020000FC
прошиваем ATmega8 с нулевого сектора флеша...

потом идёт данные...
:1000000063E064B966E065B960E067B96FEF68B94D
ATmega8 имеет 2-х байтную систему команд...
флеш_мега8.jpg
(68.28 КБ) 68 скачиваний
прошиваем флеш мега8 с адреса сектора 0000...
причём похоже сначала передаётся младший байт данных - 63 потом старший байт данных - E0
программа AVRProg это так видит))
вроде всё просто))
:roll:
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

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

Сообщение olegue »

осталось упаковать это в TCP пакет и отправить, -поплучтиь расспаковать и прошить. По любому тема непростая в плане реализации.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

не в TCP пакет а в UDP пакет))
упаковать... отправить... поплучтиь... расспаковать... не проблема))
скрин.jpg
(152.38 КБ) 80 скачиваний
проблема подключить мк и прошить все правильно...
Screenshot_4.jpg
(53.37 КБ) 81 скачивание
надо сидеть изучать... как это работает...
Screenshot_3.jpg
(149.84 КБ) 84 скачивания
ещё команды всякие надо знать...
Screenshot_5.jpg
(120.5 КБ) 85 скачиваний
никада этим не занимался))
:roll:
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

собрали макет сервера умного дома...для тестов... для начала в картонной коробочке )) :)))
1.jpg
(81.53 КБ) 89 скачиваний
2.jpg
(74.58 КБ) 89 скачиваний
а чтоб прошить... надо каждый раз доставать с полочки... наш типа сервер)) подключать программатор...
3.jpg
(97.28 КБ) 90 скачиваний
это же неудобно...
:?
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

Продолжаем разные опыты))
потестили самодельный типа скайп... ))
дом.jpg
(155.47 КБ) 1147 скачиваний
как ожидалось наблюдается выбег частоты...
-сразу после включения звук передаётся с минимальной задержкой ~0,1 c.
-через час работы звук передаётся уже с задержкой ~1...2 c.
а всё дело в том что процессор ПК и телефона имеют немного разную частоту.
хоть всё и кварцовано... однако невозможно сделать абсолютно одинаковую частоту на разных устройствах...
в итоге телефон работает чуть медленней чем ПК... тысячные доли процента... но этого достаточно чтоб это заметить при длительной передачи потока...
а я предупреждал ! (см. выше).
:tea:
теперь надо думать как решить проблему...
добавили кнопочку сброс приёмного буфера...
наверное надо поиграться с настройками приёмного буфера...
:tea:
с передачей потока с ардуины ещё сложней... там стабильность ещё хуже...

Добавлено after 6 hours 22 minutes 5 seconds:
поигрались с настройками приёмного буфера в телефоне...
оказывается размер приёмного буфера в телефоне по умолчанию = 163840 байт
отсюда задержки до 2 сек... :shock:
сделали как в ПК по умолчанию = 8192 байт
теперь нормально)) задержка всегда постоянная ~0,1 сек и не зависит от времени работы...
теперь только чаще пропадают пакеты... ~1 раз в минуту... чётко слышно)) но с этим жить можно))
:tea:
а ардуине проще... ардуина может плавно менять частоту своего процессора... и тем самым плавно менять скорость воспроизведения / записи... аудио потока...
ПК и телефон так не умеют))
:tea:
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

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

Сообщение olegue »

Я сейчас копаю под кольцевой буфер, да и в локалке тесновато стало. Делаю udp сервак с белым ip что бы можно было через интернет скайпить. Все на esp8266, 32. Бесплатные серваки с таким адресами врядли существуют поэтому надо нестандартный подход. Надо поискать реешение.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

esp8266, 32 интересно... особенно если добавить шифрование... тогда совсем хорошо))
интересно потянет ли esp8266, 32 шифрование... в теории должна))
:tea:
прежде чем проводить эксперименты... я нашёл провайдера который мне дал белый IP... бесплатно... ))
:tea:
ещё проверили работу нашей программы в транспорте...
в транспорте есть бесплатный wi-fi... который в свою очередь работает через 4G...
гортранс.jpg
(32.23 КБ) 81 скачивание
ну так себе...
:?
в центре города (пока работает 4G) связь стабильная... хотя иногда наблюдаются потери пакетов... и иногда пакеты приходят не в той последовательности... из-за этого вместо чистого звука слышим "кашу"... хотя эту проблему можно решить в приёмном буфере)) программа может воспроизводить пакеты по номерам...
за городом часто пропадает связь... за городом 4G не работает... а по 3G наша программа нормально не работает...
:?
короче... в транспорте работает так себе... долго не поболтаешь)) пока что плохое покрытие МТС...
:roll:
а в кафе и банке там где стабильный бесплатный wi-fi... там работает хорошо...
:tea:

Добавлено after 37 minutes 5 seconds:
вывод: для передачи потокового аудио нужен стабильный интернет...
в транспорте звук работает не очень хорошо... скорость интернета сильно плавает...
:roll:
а что делать при плохом интернете ?
в этом случае переключаем телефон в режим чата)) одним нажатием кнопки... ))
чат)).jpg
(98.65 КБ) 77 скачиваний
при передаче текстовых сообщений скорость интернета и задержки передачи пакетов не важны...))
всё работает))
:tea:

еще наша программа может работать в режиме файлообменника...
можно сделать типа самодельного FTP...
FTP.jpg
(25.63 КБ) 80 скачиваний
надо подумать...
:roll:
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

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

Сообщение olegue »

Роман, у Вас есть опыт в том, как принять udp пакеты на виртульный хостинг?
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

как принять udp пакеты на виртуальный хостинг... не знаю))
разве что запихнуть udp пакеты в tcp пакеты... как в VPN... будет полное извращение))
:roll:
можно попробовать Динамический DNS... типа FreeDNS... х.з.))
:roll:
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

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

Сообщение olegue »

[uquote="roman.com",url="/forum/viewtopic.php?p=4605705#p4605705"]разве что запихнуть udp пакеты в tcp пакеты... как в VPN... будет полное извращение))
:roll:[/uquote]

нет, запихивание udp в tcp это не извращение , это http, который работает поверх tcp. Вариант проходной, но на бесплатном хостинге где хранить эту гору пакетов. А если просто tcp, то на виртульном хостинге сокет на произвольном порту по любому не поднять.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

в соседней теме игрались с VPN...

Далее...
Мне тут стало интересно как работает мой умный дом по VPN. Скачал оперу... В опере есть бесплатный встроенный VPN.
-Мой комп 192.168.0.101 установил защищённый канал связи с сервером VPN 77.111.244.26 по протоколу TLS версии 1.2.
-Оправляю пакеты... на IP сервер VPN 77.111.244.26
-сервера VPN 77.111.244.26 преобразует IP в 77.111.244.101 и отправляет моему дому W5500.
-мой дом W5500 определяет с какого IP пришёл запрос... проверяет корректность запроса (формат пакета, контрольные суммы, ключи шифрования и т.д.) и все эти данные возвращает серверу VPN 77.111.244.101
-сервер VPN 77.111.244.101 возвращает данные моему компу.
Screenshot_2.jpg
(186.04 КБ) 67 скачиваний
сервер VPN 77.111.244.26 находится где-то в Нидерландах))
Screenshot_1.jpg
(90.04 КБ) 55 скачиваний
Короче всё работает. ))
Только по VPN тормозит всё конкретно (скорость передачи пакетов меньше в 2...3 раза).
А ещё сервер VPN 77.111.244.26 фильтрует весь HTTP трафик. Просто TCP пакеты он не пропускает. Надо писать всё как положено (согласно HTTP протоколу).
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *\r\n
Content-Type: text/html\r\n\r\n
...
и т.д.
Но главное что всё работает.

к слову VPN упаковывает все пакеты и в udp и в tcp... как ему больше нравится))

там же Саша делал Умный дом на esp32...
но так как у него (в отличии от меня) динамический IP поэтому он использовал FreeDNS...
он регистрировал свой аккаунт... получал своё доменное имя... типа cаша.com по по нему уже подключался к своему умному дому через браузер как положено...
http://cаша.com
браузер отправлял запрос на DNS... и получал реальный IP...
как-то так))
:tea:

я такой фигнёй не пользуюсь)) у меня сейчас динамический белый IP...
для определения реального IP у меня есть кнопочка "сканер IP" ))
:tea:

Добавлено after 14 minutes 38 seconds:
собственно FreeDNS нужен только чтоб держать порты на маршрутезаторе провайдера открытыми...
как именно работает FreeDNS я не проверял... это надо регистрироваться... телефон отставлять и т.д.
:roll:
я такой фигнёй не пользуюсь))
чтоб держать порты открытыми у меня есть кнопочка "автостатус"))
принцип такой же как в обычном скайпе...
:tea:

Добавлено after 29 minutes 39 seconds:
P.S.
-вот я включил VPN... сервер в Нидерландах))
все пакеты VPN упаковывает в tcp пакеты...
VPN_tcp.jpg
(186.04 КБ) 70 скачиваний
-вот я включил другой VPN... сервер в Германии))
все пакеты VPN упаковывает в udp пакеты...
VPN-udp.jpg
(185.08 КБ) 62 скачивания
какие пакеты использует VPN ? каждый раз по разному... tcp или udp... как ему больше нравится))
и вообще... как работает VPN - это отдельная тема)) но факт в том что VPN использует tcp или udp.
:tea:
Аватара пользователя
olegue
Собутыльник Кота
Сообщения: 2977
Зарегистрирован: Сб май 21, 2016 11:04:52
Откуда: Беларусь

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

Сообщение olegue »

да, я в курсе этих ухищрений.Но я немножко о другом.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

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

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

нужен белый айпи... остальное ерунда))
:tea:
Ответить

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