Страница 1 из 1
Подключение радиоаппаратуры к ESP32 по протоколу S-BUS
Добавлено: 10 июл 2022, 00:55
Bond2222
Здравствуйте.
Хочу подключить радиоапаратуру Radiolink AT10 к ESP32 по протоколу S-BUS. Нашел подходящую библиотеку на GitHub (
https://github.com/bolderflight/sbus), и даже протестировал пример кода, который там был с выводом данных в com порт.
Пример работает отлично, все данные с пульта (16 каналов данных, и 2 цифровых ) передаются через ESP32 в COM порт.
Удалось сделать свой блок SBus, и протестировать, работает как и задумывался. Все 16 выходов с данными и 2 цифровых, работают и отображаются из пользовательского блока. Отправку данных в COM порт убрал из кода.
Конечно было бы круто ещё сделать обратную связь ( телеметрию ) с ESP32 назад на радиоаппаратуру. (Пару лет назад видел как один программист для себя так сделал).
Спасибо большое за помощь. Это мой первый пользовательский блок и не судите строго. Буду очень рад если он кому то пригодится.
Описание блока:
Сигнальный провод SBUS подключен к пину GPIO16 (RX2)
Вход:
EN (Boolean) - при "true" блок работает, при "false" не работает
Выхода:
CH1 - CH16 (Integer) - выхода с данными.
CH17 (Boolean) - нормально на нем "false", если теряется сигнал между радиоаппаратурой и приемником то стает "true"
CH18 (Boolean) - нормально на нем "false", если приемник перешел в безопасный режим то стает "true" ( обычно стает в безопасный режим сразу после потери сигнала)
Блок протокола S-BUS для ESP32
Добавлено: 10 июл 2022, 08:25
aidar_i
Bond2222 писал(а): 10 июл 2022, 00:55
нужна помощь специалистов.
В библиотеке 16 каналов.
Создайте выхода "sbus_data[ i ]", где i от 0 до 15
Блок протокола S-BUS для ESP32
Добавлено: 10 июл 2022, 08:57
Dryundel
Bond2222 писал(а): 10 июл 2022, 00:55
Пример работает отлично, все данные с пульта (18 каналов) передаются через ESP32 в COM порт.
А точно каналов 18, а не 16?
Отправлено спустя 6 минут 8 секунд:
aidar_i писал(а): 10 июл 2022, 08:25
Создайте выхода "sbus_data[ i ]", где i от 0 до 15
[ref=#ff8000]aidar_i[/ref], я думаю здесь надо делать, а не намекать.
Такие циклы не для новичков.
Там всего то пару строчек дописать надо, но сомневаюсь, что вопрошающий справится.
Блок протокола S-BUS для ESP32
Добавлено: 10 июл 2022, 11:23
ViktorPetrov
Пару строчками на мой взгляд, там не обойдешься

[spoiler]
SBUS.ino
[/spoiler] Готовое решение на aliexpress стоит как две ESP32.
Блок протокола S-BUS для ESP32
Добавлено: 10 июл 2022, 11:29
aidar_i
Dryundel писал(а): 10 июл 2022, 08:57
aidar_i, я дума
Я не намекаю.
Вместо i ставьте цифры от 0 до 15 и создайте 16 выходов, можно, конечно, изменить количество в библиотеке до 18, но я не изучал библиотеку , не знаю будет ли работать 18 каналов.
Например, так
can1=sbus_data[ 0 ];
can2=sbus_data[ 1 ];
.....
can16=sbus_data[ 15 ];
Где can1...can16 выхода блока в int.
Блок протокола S-BUS для ESP32
Добавлено: 10 июл 2022, 12:44
Bond2222
Dryundel писал(а): 10 июл 2022, 08:57
Bond2222 писал(а): 10 июл 2022, 00:55
Пример работает отлично, все данные с пульта (18 каналов) передаются через ESP32 в COM порт.
А точно каналов 18, а не 16?
Все верно, каналов с данными 16 . Если я точно понял, то в описании 17 и 18 канал это цифровые каналы.
На практике канал 17 и 18 работают так: при потере сигнала между радиоаппаратурой и приемником, сперва на канале 17 появляется "1" и через секунду на 18 канале появляется "1". Они тоже важные, так как определяют наличие связи.
Отправлено спустя 5 минут 21 секунду:
aidar_i писал(а): 10 июл 2022, 11:29
Dryundel писал(а): 10 июл 2022, 08:57
aidar_i, я дума
Я не намекаю.
Вместо i ставьте цифры от 0 до 15 и создайте 16 выходов, можно, конечно, изменить количество в библиотеке до 18, но я не изучал библиотеку , не знаю будет ли работать 18 каналов.
Например, так
can1=sbus_data[ 0 ];
can2=sbus_data[ 1 ];
.....
can16=sbus_data[ 15 ];
Где can1...can16 выхода блока в int.
Огромное спасибо за подсказку. Я щас работаю над блоком, но не уверен до конца что все получится, так как я только новичок и учусь, но буду стараться.
Блок протокола S-BUS для ESP32
Добавлено: 10 июл 2022, 14:24
aidar_i
Эти каналы так сделали?
CH17 = sbus.ch17();
CH18 = sbus.ch 18();
17, 18 в bool.
Подключение радиоаппаратуры к ESP32 по протоколу S-BUS
Добавлено: 10 июл 2022, 16:56
Bond2222
aidar_i писал(а): 10 июл 2022, 14:24
Эти каналы так сделали?
CH17 = sbus.ch17();
CH18 = sbus.ch 18();
17, 18 в bool.
Да, так и сделал, но с этими двома каналами ( CH17; CH18 ) ничего не получилось, пока не подсмотрел в коде с примером, как они назывались при отправки в UARD:
CH17 = sbus_rx.lost_frame();
CH18 = sbus_rx.failsafe();
По правде, потом уже досмотрел, в описании на GitHub ниже так и было указано))))
Блок SBus протестировал, работает как и задумывался. Все 16 выходов с данными и 2 цифровыми, работают и отображаются из пользовательского блока. Отправку данных в COM порт убрал из кода.
Подключение радиоаппаратуры к ESP32 по протоколу S-BUS
Добавлено: 10 июл 2022, 18:05
ViktorPetrov
Разве на ESP32 есть аналоговые выходы?
Подключение радиоаппаратуры к ESP32 по протоколу S-BUS
Добавлено: 10 июл 2022, 18:32
aidar_i
Bond2222 писал(а): 10 июл 2022, 16:56
Блок SBus протестировал, работает как и задумывался.
Оформите как следует и выложите в тему пользовательские блоки.
Предварительно испытайте основательно.
Подключение радиоаппаратуры к ESP32 по протоколу S-BUS
Добавлено: 10 июл 2022, 22:25
Dryundel
ViktorPetrov писал(а): 10 июл 2022, 18:05
Разве на ESP32 есть аналоговые выходы?
Вы удивитесь но есть. Целых две штуки!

Подключение радиоаппаратуры к ESP32 по протоколу S-BUS
Добавлено: 11 июл 2022, 12:47
ViktorPetrov
Dryundel писал(а): 10 июл 2022, 22:25
Вы удивитесь но есть. Целых две штуки!
Частоту дискредитации для ЦАП , какую порекомендуете выставить?
Подключение радиоаппаратуры к ESP32 по протоколу S-BUS
Добавлено: 11 июл 2022, 13:43
Dryundel
ViktorPetrov писал(а): 11 июл 2022, 12:47
Частоту дискредитации для ЦАП , какую порекомендуете выставить?
Смотря для чего.
Частота дискретизации ЦАП контроллера ESP32 может достигать порядка 13 МГц, однако это серьезная нагрузка для МК при модуляции. Если воспроизводить голос, то думаю можно обойтись 100 кГц. Но можно и на радиопередачу звука замахнуться.
Вот отличная статья на этот счет.
«Привет, Хабр» на частоте 835 кГц