Спасибо за познавательную статью. У меня следующие вопросы: На сколько точно устанавливается длительность сигнала и не плавает ли она (при наличии других процессов)? На сколько быстро можно менять длительность импульса ШИМ?
Скажем так, длительность импульса и период стремятся плавать. Но это заметно только на частотах в несколько кГц. У меня получалось разогнать до 22 кГц. Но на такой частоте уже сложно подавать управляющие импульсы без задержек.
Длительность импульса или периода меняется очень быстро, задержка меньше 1 мс. С такими параметрами вполне можно летать.
Скажите какой сценарий вам интересен — потестирую. Я еще в самом начале пути и не представляю пока как буду отлаживать это дело ).
UPD: На сколько я понял, вам интересно использовать ШИМ для управления яркостью. Это вполне реально. Devboard который мне прислали китайцы имеет светодиоды параллельно с GPIO. Я поначалу игрался и смотрел как меняется яркость. Камера фиксирует легкое моргание светодиода, не раздражает.
Очень не плохой результат! Если Вы планируете использовать OpenWRT для полетов я бы посоветовал проверить как сильно плавает сигнал при загрузке процессора (например с запущенным модулем mjpg-streamer).
Да, в планах провести нагрузочное тестирование и выложить во второй части статьи.
Нужно будет еще подкрутить TCP congestion алгоритм. а то там кубик стоит, а для беспроводных каналов он далеко не самый оптимальный.
Работы еще много, это только самое начало).
Управляем сервоприводами из OpenWRT без Arduino