Страница 24 из 36
Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 08:12:12
olegue
Добавлено after 51 second:
да, что-то проясняется
Добавлено after 5 minutes 22 seconds:
а каким образом отправить сюда байты?
Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 10:49:06
roman.com
чтобы отправить сюда байты... для начала надо настроить IP твоего компа))
IP 127.0.0.1 - это внутренний IP адрес компа. На него нельзя отправлять данные.
У твоего компа есть внешний IP ? типа как у меня 192.168.0.101... или любой другой... кроме 127.0.0.1...
посмотреть и настроить IP своего компа можно в настройках "сетевые подключения"
нажимаем на значёк внизу...
открываются "сетевые подключения"
затем кнопку "сведения"
- IP.jpg
- (100.82 КБ) 47 скачиваний
вот я вижу свой IP 192.168.0.101...
мой комп получил IP от роутера (он же шлюз) 192.168.0.1.
Через него работает и Интернет.
теперь я могу отправлять любые данные на свой комп 192.168.0.101.
А куда подключён твой комп ? как вообще работает Интернет на твоём компе ?
Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 11:46:09
olegue
roman.com писал(а):P 127.0.0.1 - это внутренний IP адрес компа. На него нельзя отправлять данные.
У твоего компа есть внешний IP ? типа как у меня 192.168.0.101... или любой другой... кроме 127.0.0.1...
посмотреть и настроить IP своего компа можно в настройках "сетевые подключения"
нажимаем на значёк внизу...
я в курсе этих технологий
roman.com писал(а):теперь я могу отправлять любые данные на свой комп 192.168.0.101.
Роман, вот с этого места поподробнее. Как отправить байты на 192.168.0.101 ну или любой другой?
Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 11:56:08
roman.com
если есть телефон с Wi-Fi... то открываем в телефоне браузер... пишем 192.168.0.101 и подключаемся к нашему серверу ))
если есть телевизор с Wi-Fi... то открываем в телевизоре браузер... пишем 192.168.0.101 и подключаемся к нашему серверу ))
если есть второй комп с Wi-Fi... то открываем на втором компе браузер... пишем 192.168.0.101 и подключаемся к нашему серверу ))
если есть Ардуино с Wi-Fi... то открываем скетч Ардуино... пишем 192.168.0.101 и подключаемся к нашему серверу ))
у тебя настоящий сервер ! )) можешь подключать что угодно ! ))
Добавлено after 9 minutes 8 seconds:
[uquote="olegue",url="/forum/viewtopic.php?p=4313676#p4313676"]Как отправить байты на 192.168.0.101 ну или любой другой?[/uquote]
простейший способ - GET запрос ))
пишем в браузере (через слеш):
192.168.0.101/hello_server_!!!
мы отправили серверу байты... "hello_server_!!!"

Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 14:07:04
olegue
да, понятно!!!
а что дальше с этими битами делать, как их получить к обработке?
Добавлено after 6 minutes 20 seconds:
Нужен дебаг какой то или парсинг?
Добавлено after 40 minutes 52 seconds:
Так это надо в этой же программе на яве их парсить
Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 15:42:21
roman.com
далее... пишем HTML.... передаём на сервер разные данные... фото... видео... аудио... текст...
через всякие GET... POST... AJAX... и прочую ерунду))

[uquote="olegue",url="/forum/viewtopic.php?p=4313733#p4313733"]Нужен дебаг какой то или парсинг?[/uquote]
Нужен...
это надо через InputStream in... OutputStream out... забирать байты... парсить... и дальше что-то с ними делать))

но не в этой программе))
далее... нам надо передать байты... и не просто байты... а звук !
можно конечно передавать звук через TCP... но нормальные люди так не делают))
нормальные люди передают звук по UDP ))
значит нужен сервер UDP... там ничего парсить не надо))
и надо ещё переключить Ардуину на UDP...

Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 16:41:06
olegue
roman.com писал(а):значит нужен сервер UDP... там ничего парсить не надо))
и надо ещё переключить Ардуину на UDP...
Тут что-то про это написано
http://mypractic.ru/urok-69-protokol-ud ... ernet.html
Добавлено after 34 seconds:
Урок 69. Протокол UDP. Создание UDP-сервера и клиента с помощью библиотеки UIPEthernet.
Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 17:14:45
roman.com
olegue писал(а):Тут что-то про это написано
там про Ethernet... на базе шилда ENC28J60...
у тебя есть шилд ENC28J60 ?
для начала проверим как работает наш самодельный Skype )) по UDP

Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 18:04:23
olegue
т.е запустить на двух компах в одной сети и посмотреть будет ли связь?
а через интернет тоже роутиться будет?
Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 18:29:29
roman.com
это обычный скайп)) передаёт аудио... видео... текст... по UDP... с шифрованием))
для начала запусти на одном компе)) вверху разрешение экрана твоего компа... и твой IP адрес))
нажал кнопочку Test... сменил адрес на 172.0.0.1...
потом нажми жёлтую кнопку вывоза...))
потом нажми зелёную кнопочку)) говоришь в микрофон... слушаешь сам себя в наушниках...
потом понажимай кнопочки всякие... поменяй битрейт (8000, 11025,16000,22050,44100)... разрядность(8 бит, 16 бит)... проверь качество звука.
потом понажимай вверху - видео TX_RGB (скиншот твоего компа)... speed (частота кадров)... и т.д.
потом напиши текст в нижнем окне и нажми "ввод"... в вернем окне появится чат))
плюс ещё есть куча настроек... по мелочи))
и т.д.
потом уже можно запустить на втором компе...
нажал кнопочку Server... сменил адрес на 192.168.0.101... говоришь со вторым компом))
это по желанию))

[uquote="olegue",url="/forum/viewtopic.php?p=4313857#p4313857"]а через интернет тоже роутиться будет?[/uquote]
а как же ! )) всё роутится... и по локалке... и по Wi-Fi... и по интернету... и по всякому))
и т.д.

потом будем подключать это всё к твоей Ардуине))

Re: Ардуино - запись звука
Добавлено: Ср ноя 02, 2022 22:44:10
olegue
так уже пора подлкючать. проверил локально поигрался, да все работает. отослал приятелю , еще с ним сеанс связи проведу.
Погуглил еще малость , нагуглилось такое
https://github.com/samirkumardas/pcm-player
т.е счас вопрос как pcm передать через websocket или ajax, Т.е создать трансляцию. Принять pcm уже нет большой проблемы
Re: Ардуино - запись звука
Добавлено: Чт ноя 03, 2022 00:48:05
roman.com
olegue писал(а):проверил локально поигрался
разнес на два компа что ли ? )) проверил связь между компами ?
выбег частоты я ещё не проверял...
olegue писал(а):отослал приятелю , еще с ним сеанс связи проведу.
не всё так просто)) если приятель в одной сети... то проблем нет...
а если за NAT провайдера... то нужен белый IP... хотя бы один на двоих))
уже говорил... это аналог заводского скайпа... ты хорошо понимаешь как работает заводской скайп ?
olegue писал(а):Погуглил еще малость , нагуглилось такое
https://github.com/samirkumardas/pcm-player
т.е счас вопрос как pcm передать через websocket или ajax, Т.е создать трансляцию. Принять pcm уже нет большой проблемы
насколько я знаю... websocket или ajax работают по TCP... они сначала устанавливают соединение... открываю сокет... а потом уже передают пакеты...
или я чего то не знаю))
у нас UDP - это я точно знаю)) UDP не устанавливает никаких соединений.
TCP и UDP несовместимы.
olegue писал(а):Т.е создать трансляцию.
roman.com писал(а):и надо ещё переключить Ардуину на UDP...
1-берём ардуину... цифруем звук микрофона... получаем на выходе pcm...
2-гоним пакеты в Wi-Fi модуль по сериал (я бы гнал по SPI).
3-Wi-Fi модуль тупо передаёт UDP пакеты на комп.
4-комп их тупо воспроизводит в динамике.
на первый взгляд всё просто...)) осталось скачать инструкцию Wi-Fi модуля... и посчитать скорость и тайминги))

Re: Ардуино - запись звука
Добавлено: Чт ноя 03, 2022 09:47:45
olegue
roman.com писал(а):3-Wi-Fi модуль тупо передаёт UDP пакеты на комп.
на эту тему я нашел вот такую ссылку
https://esp8266.ru/forum/threads/otprav ... a-pk.2307/
Здесь пример отправки данных с esp8266 по UDP, используется библиотека
Код: Выделить всё
void loop()
{
if (wifiConnected)
{
if (udpConnected)
{
int packetSize = UDP.parsePacket();
if (packetSize)
{
GetFromPcSendToStm();
}
GetFromStmSendToPc();
delay(20);
}
}
}
но до сих пор не могу догнать своим скудными умственными возможностями как данные лягут на сервер где они должны быть прослушены. В примере выше где я нашел способ прослушивания потока, так вот там данные находятся на сервере в файле RAW pcm, т.е фактически wav без заголовков. Как отправить данные по UDP получить их в файл RAW?
Re: Ардуино - запись звука
Добавлено: Чт ноя 03, 2022 13:18:45
roman.com
ну попробуй библиотеку... я не разбираюсь в библиотеках))
Модуль ESP-01(esp8266)... инструкция...
ещё скачай wireshark... там видно что куда ты передаёшь...
Добавлено after 1 hour 22 minutes 53 seconds:
olegue писал(а):Здесь пример отправки данных с esp8266 по UDP, используется библиотека
а не проше просто передавать PCM на комп с помощью AT-команд ?
справочник AT-команд
http://microsin.net/adminstuff/hardware ... rence.html
https://esp8266.ru/esp8266-at-commands-v022/
и т.д.
уроки
https://narodstream.ru/esp8266-urok-2-at-komandy/
1-настройка esp8266...
2-подключение к роутеру...
3-передача пакета UDP на комп...
цитата
"попробуем передать данные с PC на модуль и обратно по протоколу UDP, для этого пошлём соответствующую команду модулю"
и т.д.
это так трудно ?
Добавлено after 22 minutes 28 seconds:
[uquote="olegue",url="/forum/viewtopic.php?p=4314132#p4314132"]не могу догнать своим скудными умственными возможностями как данные лягут на сервер где они должны быть прослушены. В примере выше где я нашел способ прослушивания потока, так вот там данные находятся на сервере в файле RAW pcm, т.е фактически wav без заголовков. Как отправить данные по UDP получить их в файл RAW?[/uquote]
не знаю про какой сервер ты говоришь...
[uquote="olegue",url="/forum/viewtopic.php?p=4314132#p4314132"]Как отправить данные по UDP получить их в файл RAW?[/uquote]
а чем файл RAW отличается от просто RAW ?))
в файл RAW есть заголовок...
просто RAW нет заголовка))
всё уже подробно разбирали...
чтоб слушать RAW в браузере или плеере... нужен заголовок.
а нашему скайпу без разницы... есть заголовок... нет заголовка...
наш скайп берёт просто RAW и воспроизводит в наушниках.

Re: Ардуино - запись звука
Добавлено: Сб ноя 05, 2022 01:26:00
roman.com
лучше бы Ethernet подключил... там проще всё намного))

Re: Ардуино - запись звука
Добавлено: Сб ноя 05, 2022 12:24:01
olegue
короче, приседал я тут полтора дня, испытывая и пытаясь запусить какие-то чужие стремные проекты. счас в наличии нету Ethernet, заказывать надо.
https://narodstream.ru/esp8266-urok-2-at-komandy/
вот это хотел обкатать, но на моей esp8266 AT отклика не оказалось, гугление и перепрошивка не решили проблему.
Re: Ардуино - запись звука
Добавлено: Сб ноя 05, 2022 13:49:51
roman.com
у тебя модуль работает через Ардуину...
Ардуина использует те же самые АТ команды...
подключись параллельно Ардуине и посмотри что передаёт Ардуина...
мы там много раз делали... например када подключали экраны всякие...
смотрели в протеусе что передаёт Ардуина... и делали так же...
https://www.radiokot.ru/forum/download/ ... ?id=356885
https://www.radiokot.ru/forum/download/ ... ?id=356600
https://www.radiokot.ru/forum/download/ ... ?id=357053
и т.д.
связь с приятелем уже проверил ?))
внизу вводишь IP приятеля... потом кнопку TX IP... потом кнопку вызов...
приятель на связи))

поменяй на Ардуине кварц на 20 мгц... добавить три детальки)) и можно передавать на комп...
- TX.jpg
- (199.55 КБ) 48 скачиваний
правда только 1 и 0... ))
Re: Ардуино - запись звука
Добавлено: Вт ноя 08, 2022 01:21:49
roman.com
а что можно передавать с помощью 1 и 0... ? ))
да всё что угодно ))
подключаем второй МК (или Ардуино)
и передаём на комп... пакеты... 1 и 0... ))
таким образом можно передавать на комп например температуру...
теоретически можно передавать и звук...
в тестах ATmega8 передаёт пакеты со скорость более 14.000 пакетов/c.... (Ethernet 10 Мбит/c).
проблема в том что у меня при такой скорости перегрузка процессора компа...
поэтому приходится снижать скорость... до максимум 5.000 пакетов/c....
а в остальном всё нормально))

Re: Ардуино - запись звука
Добавлено: Вт ноя 08, 2022 10:43:30
olegue
у меня тут небольшой когнитивный диссонанс. Вот я пишу PCM скажем с битрейтом 16кгц 8бит. И получаю 16тыс сэмплов в сек. 1 сэмпл - 1 байт т.к 8бит. Т.е если , скажем битность увеличить (16bit) и перейти на 2х байтное представление сэмпла, Но при этом оставить тот же сэмплрэйт в 16кгц, то качество звука останется прежнем, просто он будеет описан боллее точными цифрами, но их количество останется прежнем и только вот размер файла увеличиться. И теперь 1 секунда звука будет "весить" уже 32кбайт. Правильно понимаю?
Добавлено after 1 minute 51 second:
Так где тот путь которые ведет к улучшению качества звука с увеличением битности его преставления?
Re: Ардуино - запись звука
Добавлено: Вт ноя 08, 2022 14:13:51
roman.com
olegue писал(а):И теперь 1 секунда звука будет "весить" уже 32кбайт. Правильно понимаю?
правильно.
если включишь анализатор то увидишь... что в нашем скайпе при переключении кнопочки с 8 бит на 16 бит пакеты будут передаваться в 2 раза быстрей...
olegue писал(а):Так где тот путь которые ведет к улучшению качества звука с увеличением битности его преставления?
всё дело в "ошибке преобразования"
8 бит - это 256 значений (0...255)
16 бит - 65536 значений (0...65535)
чем больше значений - тем меньше ошибка преобразования... а значит качество звука лучше))
слышал что в студии звукозаписи используют 24 бит - 16.777.216 значений (0...16.777.215)
там ошибка преобразования совсем маленькая... а значит качество звука вообще супер))
