Подключение радиоаппаратуры к ESP32 по протоколу S-BUS

Ответить
Bond2222
Рядовой
Сообщения: 8
Зарегистрирован: 05 янв 2022, 20:09
Имя: Dima

Подключение радиоаппаратуры к ESP32 по протоколу S-BUS

Сообщение 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" ( обычно стает в безопасный режим сразу после потери сигнала)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Bond2222 10 июл 2022, 18:12, всего редактировалось 9 раз.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

Блок протокола S-BUS для ESP32

Сообщение aidar_i »

Bond2222 писал(а): 10 июл 2022, 00:55 нужна помощь специалистов.
В библиотеке 16 каналов.
Создайте выхода "sbus_data[ i ]", где i от 0 до 15
Аватара пользователя
Dryundel
Полковник
Сообщения: 2474
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 10 раз
Поблагодарили: 52 раза

Блок протокола S-BUS для ESP32

Сообщение 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], я думаю здесь надо делать, а не намекать. :)
Такие циклы не для новичков.
Там всего то пару строчек дописать надо, но сомневаюсь, что вопрошающий справится.
Аватара пользователя
ViktorPetrov
Капитан
Сообщения: 806
Зарегистрирован: 09 апр 2018, 23:56
Имя: Виктор
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Блок протокола S-BUS для ESP32

Сообщение ViktorPetrov »

Пару строчками на мой взгляд, там не обойдешься :( [spoiler]
SBUS.ino
[/spoiler] Готовое решение на aliexpress стоит как две ESP32.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

Блок протокола S-BUS для ESP32

Сообщение 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.
Bond2222
Рядовой
Сообщения: 8
Зарегистрирован: 05 янв 2022, 20:09
Имя: Dima

Блок протокола S-BUS для ESP32

Сообщение 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.
Огромное спасибо за подсказку. Я щас работаю над блоком, но не уверен до конца что все получится, так как я только новичок и учусь, но буду стараться.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

Блок протокола S-BUS для ESP32

Сообщение aidar_i »

Эти каналы так сделали?
CH17 = sbus.ch17();
CH18 = sbus.ch 18();
17, 18 в bool.
Bond2222
Рядовой
Сообщения: 8
Зарегистрирован: 05 янв 2022, 20:09
Имя: Dima

Подключение радиоаппаратуры к ESP32 по протоколу S-BUS

Сообщение 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 порт убрал из кода.
Последний раз редактировалось Bond2222 10 июл 2022, 18:08, всего редактировалось 2 раза.
Аватара пользователя
ViktorPetrov
Капитан
Сообщения: 806
Зарегистрирован: 09 апр 2018, 23:56
Имя: Виктор
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Подключение радиоаппаратуры к ESP32 по протоколу S-BUS

Сообщение ViktorPetrov »

Разве на ESP32 есть аналоговые выходы?
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 14 раз
Поблагодарили: 100 раз
Контактная информация:

Подключение радиоаппаратуры к ESP32 по протоколу S-BUS

Сообщение aidar_i »

Bond2222 писал(а): 10 июл 2022, 16:56 Блок SBus протестировал, работает как и задумывался.
Оформите как следует и выложите в тему пользовательские блоки.
Предварительно испытайте основательно.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2474
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 10 раз
Поблагодарили: 52 раза

Подключение радиоаппаратуры к ESP32 по протоколу S-BUS

Сообщение Dryundel »

ViktorPetrov писал(а): 10 июл 2022, 18:05 Разве на ESP32 есть аналоговые выходы?
Вы удивитесь но есть. Целых две штуки! :)
Аватара пользователя
ViktorPetrov
Капитан
Сообщения: 806
Зарегистрирован: 09 апр 2018, 23:56
Имя: Виктор
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Подключение радиоаппаратуры к ESP32 по протоколу S-BUS

Сообщение ViktorPetrov »

Dryundel писал(а): 10 июл 2022, 22:25 Вы удивитесь но есть. Целых две штуки! :)
Частоту дискредитации для ЦАП , какую порекомендуете выставить?
Аватара пользователя
Dryundel
Полковник
Сообщения: 2474
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 10 раз
Поблагодарили: 52 раза

Подключение радиоаппаратуры к ESP32 по протоколу S-BUS

Сообщение Dryundel »

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

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя