Тестер каналов RC аппаратуры
Я делал себе данный прибор для отладки тестирования собственных разработок перед подключением исполнительных устройств. По сути это и прибором-то назвать нельзя. В качестве комплектующих используются "отладочные" платы и компоненты: Идея устройства достаточно проста. В прошивку собраны s.Bus декодер, PPM декодер и декодер ШИМ на 8 каналов. Для удобного вывода результатов на экран сделано примитивное меню. Стоит обратить внимание, что на шилде распаяны только задействованные контакты Arduino. Остальные я распаял сам и вывел в стороны для удобства подключения периферии. На фото 2 комплекта этого устройства - в собраном и исходном вариантах. Так же тут 2 приемника, на которых я еще раз проверил прошивку перед выкладкой.
S.Bus декодер задействует последовательный порт Serial1. Инвертор для порта можно сделать как аппаратный на макетке, так и включить программный. Для этого в меню предусмотрены соответствующие кнопки. В случае использования программного инвертора сигнал с приемника подается на контакт SCL микроконтроллера. Контакт SDA замыкается перемычкой на Serial1->RX. В целом программный инвертор работает на порядок хуже аппаратного - много ошибок. В конечном устройстве я бы такое использовать не стал. Но если задача состоит в получении оценочных значений, то такого варианта вполне может быть достаточно. На экран выводятся значения - минимальное, текущее и максимальное - для каждого из 16 каналов. Единицы измерения - "попугаи" Футабы. На самом деле это половины микросекунд. Диапазон значений от 0 до 2048.
Для декодирования PPM сигнал с приемника (или аппаратуры) подается на вход D10 Arduino. Прошивка разбирает сигнал и выводит на экран значения минимума, максимума и текущее для каждого канала. Единицы измерения - микросекунды. Так же подсчитывается общее число передаваемых каналов, длина паузы между каналами в микросекундах и общая длина фрейма в миллисекундах.
Декодирование канальных импульсов производится для восьми каналов, подключенных к контактам A8:A15 Arduino. Для них так же подсчитывается в микросекундах текущее, минимальное и максимальное значения.
Исходники для Arduino IDE можно скачать по ссылке. |