Всем доброго времени суток!
Задача — подключение #Arduino к приемнику #FrSky X8R. Подключим используя протокол SBUS. По аналогии с автомобильной шиной CAN, S.Bus позволяет избавиться от прокладки большого количества проводов: от приемника к каждому сервоприводу. Под эту технологию выпущены специальные приемники, приводы, гироскопы и прочее оборудование. Это не что иное как протокол передачи команд сервоприводам по цифровому последовательному порту. В случае использования с микроконтроллерами S.Bus позволяет полностью избавиться от работы с ШИМ (PWM и PPM сигналы), переложив это на аппаратную часть. Как следствие – упрощение кода, уменьшение загрузки микроконтроллера и увеличение быстродействия.
Проблемы. Протокол SBUS — это инвертированный сигнал, который использует UART для последовательной передачи данных. Для подключения Arduino нужен внешний инвертор, либо не инвертированный сигнал.
Решение задачи
Выбрал сложный путь, без внешнего инвертора, т.е. возьмем не инвертированный сигнал из недр приемника X8R.
- Разбираем приемник.
2. Аккуратно выпаиваем верхнюю плату передатчика. Плата на тонком текстолите, тут нельзя ее перегреть. Добраться надо до инвертора, он как раз под верхней платой выделен красным. Красной точкой помечен вывод инвертора куда надо подпаять провод. Этот будет сигнал SBUS не инвертированный, который поймет Arduino.
3. Обрезать дорожки вокруг вывода SBUS. Если не хотите портить, выводите на внешний разъем.
5.Паяем провод как на фото ниже.
6. Можно запаивать верхнюю плату на место.
7. Собираем корпус.
Прошивка Arduino
На тестах использую Arduino Nano (она используется в контроллере Горыныча).
Схема подключения
Тестовый скетч
Библиотека
Скачать ее можно тут.
Во время прошивки необходимо отключить SBUS от Arduino Nano в противном случает не будет прошиваться. Прошили подключаем обратно провод SBUS и наслаждаемся.
Мной опробована работа также на Arduino Mega 2560, на ней лучше играться чем на Nano. У МЕГИ не один UART и поэтому можно выводить данные в порт. С Nano так не получится с данной библиотекой, т.к. UART занят шиной SBUS.
Видео процесса тестирования
Если понравилась статья ставь палец вверх и подписывайся на мой канал KulibinLab