Суббота, 21.10.2017, 02:30
RC - Мастерская
Главная | Каталог статей | Регистрация | Вход
Меню
Статистика
Главная » Статьи » Чертежи и проекты » Микроконтроллеры

s.Bus декодер для расширения числа каналов v2

s.Bus декодер для расширения числа каналов v2

Что изменилось

 

Во-первых, декодер стал программируемым. Теперь настройки декодера заливаются с компьютера при помощи специального приложения(прилагается вместе с исходниками). Логика моих рассуждений была такова: если человек, собравший этот декодер, имеет техническую возможность подключить его к компьютеру через USB-to-TTL преобразователь для заливки прошивки из среды Arduino IDE, то эту же техническую возможность он сможет использовать и для его настройки.

 

В декодере сохранилось изначальное разделение каналов на два банка. В новой прошивке каждый банк независимо от другого может генерировать как сигнал на сервоприводы (до восьми штук в каждом банке), так и суммарный PPM сигнал.

 

Выходами теперь можно управлять – можно настроить вывод любого канала на любой выход декодера. Каналы при этом можно дублировать. При желании, например, можно вывести канал газа хоть на все 16 выходов декодера.

 

В различных полетных контроллерах я встречал функцию «возврат домой». Интересна она с точки зрения возврата модели в точку старта при пропадании сигнала с пульта управления. Для активации этого режима удобно использовать функцию failsafe приемника. В новой версии декодер позволяет выводить сигнал failsafe в виде обычного ШИМ-сигнала (как на серву) на любой вывод.

 

Как и прежде, прошивка микроконтроллера заливается при помощи Arduino IDE. Приложение для настройки декодера с компьютера написано на c# в Microsoft Visual Studio 2010 и для работы требует наличие на компьютере NET Framework 2.0. Все исходные коды прилагаются.

 

Теперь немного подробнее.

 

Основные характеристики:

  • подключение до 16 сервоприводов
  • генерация до 2-х независимых сигналов PPM
  • кодирование до 16 каналов в каждом PPM
  • возможность переназначать каналы s.Bus в любые выходы декодера и/или на любое место PPM сигнала
  • возможность использования одного канала с аппаратуры для нескольких выходов
  • возможность одновременного вывода до 8-ми любых каналов PWM и до 16-ти каналов PPM

 

Допустим, схема собрана, прошивка залита. Подключаем декодер к компьютеру через USB-to-TTL преобразователь. После этого запускаем приложение SBUSDecoderCFG.exe для настройки декодера. Вы увидите на экране такое окно:

Первым делом в левом верхнем углу выбираем из выпадающего списка COM-порт, соответствующий подключенному декодеру, аналогично тому, как это делается в Arduino IDE. Кнопки «Read» и «Write» позволяют соответственно считать и записать конфигурацию из/в память декодера.

 

Далее, собственно, о настройках… Я опишу настройки на примере банка А, подразумевая, что для банка Б они производятся аналогично. Банки работают абсолютно независимо друг от друга и взаимного влияния каких либо настроек между ними нет.

 

Галка PPM. Если она не установлена, то банк генерирует управляющие сигналы для сервоприводов в количестве до восьми штук. Если галка стоит, то на втором выходе каждого банка (Ch1 для А и Ch9 для Б) будет генерироваться PPM-сигнал. Остальные выходы банка при этом никакого сигнала выводить не будут.

 

Выпадающий список «Frame». При помощи этого выпадающего списка задается длина фрейма для PPM или частота ШИМ для сервоприводов. Значение указывается в миллисекундах. Для сервоприводов рекомендую устанавливать значение 20мс, что соответствует частоте 50Гц.

 

Выпадающий список «Channels». При помощи этого выпадающего списка можно указать, сколько каналов будет выводиться в данном банке. Для режима вывода PPM максимальное число каналов рассчитывается из длины фрейма автоматически. Но при этом можно указать и меньшее число.

 

Выпадающие списки «Ch1» - «Ch16». Здесь номер Ch указывает на позицию сигнала в банке, а выпадающий список позволяет выбрать номер канала в шине s.Bus. Таким образом можно коммутировать любые каналы, передаваемые с пульта, на любые выводы декодера.

В выпадающем списке каждого выхода помимо номера канала можно выбрать значение «FS». Выбор этого значения говорит о том, что на этом выходе будет выводиться сигнал failsafe. Сигнал будет выводиться в виде ШИМ с длинной импульса 1000мкс или 2000мкс.

В итоге получился декодер, который на основании данных с шины s.Bus может управлять 16-ю сервами или управлять 8-ю сервами и генерировать PPM-сигнал до 16-ти каналов или параллельно генерировать 2 PPM-сигнала до 16 каналов в каждом. При этом допускается переназначение каналов.

Для первоначальной настройки декодера сразу после сборки и прошивки надо выполнить следующие действия:

  1. запустить на ПК конфигуратор
  2. выбрать COM-порт
  3. нажать кнопку Write.

Последовательность должна быть именно такой. Пока EEPROM не инициализирована, нажатие кнопки Read приведет к "зависанию" приложения. После первой инициализации можно читать/писать конфигурацию как угодно.

Внимание! Не все приемники выдают в шину s.Bus сигнал потери связи. Особенно грешат этим «китайские поделки». Проверяйте правильность выходных сигналов для Вашего приемника.

Для включения декодера в режиме работы с конфигуратором (соединение с ПК) необходимо замкнуть контакт Arduino A4 на землю (GND) и перезагрузить микроконтроллер.

 

Скачать с GitHub: https://github.com/mactep8/SBus_Decoder
 

Для теста установил следующие настройки:

Для наглядности снял картинку результата с моего USB-осциллографа:

Синий канал показывает третий канал банка А, а красный - PPM банка B.

О всех найденных багах сообщайте через форму обратной связи.

Категория: Микроконтроллеры | Добавил: Mactep (02.05.2014)
Просмотров: 3072 | Комментарии: 7 | Теги: decoder, PPM, Arduino, SBus, S.Bus | Рейтинг: 0.0/0
Всего комментариев: 6
5  
Саш, тут возникла необходимость в толковом CPPM кодере с FS, не займёшься?

0
6  
Пиши в личку, сделаем.

3  
обидно

0
4  
Наоборот, я доволен как слон!

1  
спёрли Шурик твою разработку! http://www.banggood.com/DIY-SBU....48.html

0
2  
Ну значит достойная разработка получилась. Мне есть чем гордиться!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск