Хочу сделать рацию на модулях e32 433 МГц 100 мВт https://aliexpress.ru/item/32627590559. ... 1598512817 По аналогии с рацией на Arduino + NRF24L01 2.4ГГц
Но загвоздка в том что на NRF24L01 протокол SPI, есть готовая библиотека и простецкий код, а на модулях e32 протокол UART и ни каких примеров в интернете. Вопрос в том, как передавать-принимать звук (голос) по протоколу UART? Исползовать внешние ЦАП - АЦП или хватит микроконтролера (arduino, ESP8266, SMT32) ?
PS: просто купить рацию не предлогать. Перерыл весь интернет, может хоть посоветуете что почитать по проще.
Передача-приём звука на модулях E32 по протоколу UART
- Mep3aB4uk
- Родился
- Сообщения: 9
- Зарегистрирован: Вт июл 14, 2020 13:19:13
- Откуда: Чувашская Республика, г. Новочебоксарск
Передача-приём звука на модулях E32 по протоколу UART
Последний раз редактировалось Mep3aB4uk Чт авг 27, 2020 21:51:47, всего редактировалось 1 раз.
- Реклама
Re: Передача-приём звука на модулях E32 по протоколу SPI
Судя по тому, что по ссылке выложено - там таки UART С дополнительными линиями управления...

- Mep3aB4uk
- Родился
- Сообщения: 9
- Зарегистрирован: Вт июл 14, 2020 13:19:13
- Откуда: Чувашская Республика, г. Новочебоксарск
Re: Передача-приём звука на модулях E32 по протоколу SPI
[uquote="BOB51",url="/forum/viewtopic.php?p=3884348#p3884348"]Судя по тому, что по ссылке выложено - там таки UART С дополнительными линиями управления...
[/uquote]
Пока капал, всё смешалось. Всё правильно написали, в модулях e32 протокол UART, в модулях nrf24l01 протокол SPI. Спасибо, исправил.
Пока капал, всё смешалось. Всё правильно написали, в модулях e32 протокол UART, в модулях nrf24l01 протокол SPI. Спасибо, исправил.
Re: Передача-приём звука на модулях E32 по протоколу UART
Не протокол, а интерфейс правильнее будет сказать.
Читать надо мануал на модуль и его команды: http://www.ebyte.com/en/product-view-news.aspx?id=108
Но боюсь что пока не потянете это. На видео NRF24L01 на скорость 1 мегабит выставляется, а E32 максимум 19.2 килобит тянет в идеальных условиях. Конечно есть кодеки, которые можно и в меньшее впихнуть, но их реализация не для простых МК.
Читать надо мануал на модуль и его команды: http://www.ebyte.com/en/product-view-news.aspx?id=108
Но боюсь что пока не потянете это. На видео NRF24L01 на скорость 1 мегабит выставляется, а E32 максимум 19.2 килобит тянет в идеальных условиях. Конечно есть кодеки, которые можно и в меньшее впихнуть, но их реализация не для простых МК.
-
andreyzlat
- Открыл глаза
- Сообщения: 44
- Зарегистрирован: Вт мар 02, 2010 11:43:44
- Откуда: Златоуст
- Контактная информация:
Re: Передача-приём звука на модулях E32 по протоколу UART
E32 это LoRa. У нее скорости не хватит, даже если портировать библиотеку RF24Audio под самые мизерные битрейты. GFSK по дальности будет так себе.
Сжатие в RF24Audio происходит на уровне PCM, точнее его нет. Преобразование идет с АЦП ардуины, т.е. 8-10 бит. Словно передача сигнала с потенциометра на управление двигателем или лампочкой на вторую ардуину и ЦАП в виде PWM.
NRF24 передает оцифрованный аудиопоток со скоростью до 180 кбит в сек. 32 кгц, 8 бит моно на Ардуино Нано-Мега. Т.е. градация 0-254. Там смотря какая ардуино используется. Если DUE, то она способна оцифровать 44,1 кгц стерео 12 бит кажется. Почти полностью забивая проходную способность NRF (2 мбит со служебными данными).
Под лору есть проект https://vrtp.ru/index.php?act=categorie ... ticle=3660
Радиус действия бешеный с мизерным потреблением и низкой мощностью передачи.
Теоретически можно попытаться запихнуть несжатый цифровой поток PCM в ЛоРу которая на 2,4 ггц, там скорость передачи больше гораздо, но тоже.. только очень плохой звук передавать на низких spread factor. Иначе я думаю загнется система. либо вокодером кодировать, как в проекте выше.
Опять же... Чтоб заюзать большую дальность, нужны модули только с TCXO, тогда можно использовать ультранизкий bandwith на 7,5 кгц, и тогда вокодер на 300 бит передаст голос даже на расстояние в 15 км на 100-150 мвт мощности.
Модули с TCXO на 433 мгц обычно только E22. Без TCXO bandwith ниже чем 47 кгц юзать не получится. Температура от руки моментально расстраивает передатчик относительно приемника на 2 кгц ухода частоты, что является пределом для лоры для низкого bandwith. У меня SX1278 без TCXO в теплице и дома. Когда в теплице выше 29 градусов - связи нет. Автоподстройку частоты не делал, но если использовать аналогичные устройства держа в руках, то это не поможет, нужен TCXO и точка.
Также TCXO по моему стоит на модулях лора на 2,4 ггц. Дальность говорят примерно такая же как на 433, вот только препятствия всё равно будут мешать, пусть хоть и в гораздо меньших масштабах, чем на NRF.
От себя добавлю. NRF24 на 700 метров связь держит в полугородской местности, но только в идеально прямой видимости. Чуть дерево - всё, нету ничего. Даже антенна на 10 дб не спасает. По скорости... 2 мбит если ставлю, то вроде как до предела идет в норме связь без заметного снижения скорости, выставляю в настройках CRC16 и это словно шумодав для аналоговых раций, т.е. принимает стабильно те пакеты, которые заведомо идеальны и безошибочны, CRC8 уже пропускает изредка ошибочные пакеты, а CRC disabled вообще шпарит кучу мусора на слабом сигнале (для аудио может это и сойдет). Включенный контроль CRC автоматом как бы снижает чувствительность. Чуть уровень сигнала хуже и пакеты резко обваливаются. В таких режимах естественно Ack репиты недоставленных сигналов выключены, они просто никчему, хотя.. хз. Если включить, то особо на доставляемость пакетов может не повлиять, но в несколько раз снизит скорость даже при тесте на столе. И это всё вот как бы тоже нужно учитывать в передаче сигналов... Я связался, горя хапнул))) но прикольно.
Сжатие в RF24Audio происходит на уровне PCM, точнее его нет. Преобразование идет с АЦП ардуины, т.е. 8-10 бит. Словно передача сигнала с потенциометра на управление двигателем или лампочкой на вторую ардуину и ЦАП в виде PWM.
NRF24 передает оцифрованный аудиопоток со скоростью до 180 кбит в сек. 32 кгц, 8 бит моно на Ардуино Нано-Мега. Т.е. градация 0-254. Там смотря какая ардуино используется. Если DUE, то она способна оцифровать 44,1 кгц стерео 12 бит кажется. Почти полностью забивая проходную способность NRF (2 мбит со служебными данными).
Под лору есть проект https://vrtp.ru/index.php?act=categorie ... ticle=3660
Радиус действия бешеный с мизерным потреблением и низкой мощностью передачи.
Теоретически можно попытаться запихнуть несжатый цифровой поток PCM в ЛоРу которая на 2,4 ггц, там скорость передачи больше гораздо, но тоже.. только очень плохой звук передавать на низких spread factor. Иначе я думаю загнется система. либо вокодером кодировать, как в проекте выше.
Опять же... Чтоб заюзать большую дальность, нужны модули только с TCXO, тогда можно использовать ультранизкий bandwith на 7,5 кгц, и тогда вокодер на 300 бит передаст голос даже на расстояние в 15 км на 100-150 мвт мощности.
Модули с TCXO на 433 мгц обычно только E22. Без TCXO bandwith ниже чем 47 кгц юзать не получится. Температура от руки моментально расстраивает передатчик относительно приемника на 2 кгц ухода частоты, что является пределом для лоры для низкого bandwith. У меня SX1278 без TCXO в теплице и дома. Когда в теплице выше 29 градусов - связи нет. Автоподстройку частоты не делал, но если использовать аналогичные устройства держа в руках, то это не поможет, нужен TCXO и точка.
Также TCXO по моему стоит на модулях лора на 2,4 ггц. Дальность говорят примерно такая же как на 433, вот только препятствия всё равно будут мешать, пусть хоть и в гораздо меньших масштабах, чем на NRF.
От себя добавлю. NRF24 на 700 метров связь держит в полугородской местности, но только в идеально прямой видимости. Чуть дерево - всё, нету ничего. Даже антенна на 10 дб не спасает. По скорости... 2 мбит если ставлю, то вроде как до предела идет в норме связь без заметного снижения скорости, выставляю в настройках CRC16 и это словно шумодав для аналоговых раций, т.е. принимает стабильно те пакеты, которые заведомо идеальны и безошибочны, CRC8 уже пропускает изредка ошибочные пакеты, а CRC disabled вообще шпарит кучу мусора на слабом сигнале (для аудио может это и сойдет). Включенный контроль CRC автоматом как бы снижает чувствительность. Чуть уровень сигнала хуже и пакеты резко обваливаются. В таких режимах естественно Ack репиты недоставленных сигналов выключены, они просто никчему, хотя.. хз. Если включить, то особо на доставляемость пакетов может не повлиять, но в несколько раз снизит скорость даже при тесте на столе. И это всё вот как бы тоже нужно учитывать в передаче сигналов... Я связался, горя хапнул))) но прикольно.
- Реклама
Re: Передача-приём звука на модулях E32 по протоколу UART
OPUS от 6 кбит/c сжимает звук. Но для него понадобится минимум какой-нибудь Cortex-M4 или даже M7. Или какая-нибудь DSPшка. И реализацию бесплатную еще найти и собрать надо. Рация выйдет "золотая".


