Search the Community
Showing results for tags 'джойстик'.
Found 1 result
-
Представляю Вашему вниманию самостоятельно изготовленную аппаратуру РУ на базе компьютерного джойстика Defender cobra m5. 1. В данной аппаратуре реализованы 4 аналоговых канала для управления ЛА, 2 дискретных канала для управления камерой (8 положений, как в авиасимуляторах) и 2 дискретных канала в резерве (можно подвести переключатели или подключить к кнопкам джойстика, правда незадействованными остались только 3 курка). На выходе РУ формируется сигнал PPM и питающее напряжение для подключения аппаратуры LRS. 2. Внутри установлена плата Arduino mega2560, в каналах управления элеронами и рулем высоты датчики Холла ss495 (в оригинале в джойстике установлены магниторезисторы kmz41 и операционный усилитель mcp602 - но с формируемым ими сигналом я не разобрался). 3. На дисплее отображается следующая информация: Rates - диапазон работы рулей управления ЛА (high - ход сервомашинок 100%, medium - 75%, low - 50%), Battery - напряжение питания джойстика, Throttle - положение дросселя в % (так как РУД в джойстике не очень эргономичен и информативен). 4. В меню реализовано триммирование и инверсия всех каналов, экспонента аналоговых каналов, выбор модели планера - все настройки сохранятся в EPROM arduino. 4.1 Триммирование (осуществляется в диапазоне 0-1000): - каналов управления элеронами, рулем высоты и хвостом осуществляется изменением центрального значения с автоматическим пересчетом крайнего положения сервомашинки (по умолчанию 0-500-1000, после триммирования 20-510-1000) с шагом в 2 значения (0,2% от диапазона работы сервомашинки); - РУД и дополнительные дискретные каналы выставляются по отдельности крайние значения (по умолчанию 0-1000, после триммирования 0-900) с шагом в 2 значения; - камера (отдельно триммируется в горизонтальной и вертикальной плоскости), по отдельности выставляются значения краев и центра (по умолчанию в горизонтальной и вертикальной плоскости 0-500-1000, после триммирования в горизонтальной 60-510-960, в вертикальной 100-450-950); 4.2 Экспонента формируется функцией y=x3; 4.3 Микширование предусмотрено для летающего крыла (ppm1=(Elevator+Aileron)/2, ppm2=(Elevator+invertAileron)/2) и V-образного хвостового оперения (ppm2=(Elevator+ Rudder)/2, ppm3=(Elevator+invertRudder)/2). 5. Недостатки: - несмотря на оптимизацию кода, за период формирования пакета PPM (22,5 мс) mega 2560 не успевает считать значение всех входов и обсчитать все функции, поэтому вынуждено формируется по два одинаковых пакета PPM - и время отзыва аппаратуры составляет 22,5*2=45 мс (если только считывать аналоговые входы и масштабировать в значение PPM то все отлично); - пакет PPM формируется с ошибкой 0,45-0,5%, если быть точнее то удлиняется на это значение - наверно особенности mega2560, так как ничего не смог с этим поделать, а поставить костыль и ввести поправочные коэффициенты не хочу. 6. Чтобы избавиться от предыдущих, пусть и незначительных недостатков, планирую переход на Arduino Due и магниторезисторы kmz 60: - имеет тот же форм фактор; - более чем в 4 раза производительней, а значит должна решиться проблема дублирования пакета PPM; - идеально формирует PPM (уже есть рабочий генератор); - необходимо будет привести значения формируемые реостатами и датчиками Холла из диапазона 0-5 В, в диапазон 0-3,3 (уже готов делитель напряжения); - резервные дискретные каналы заменю на аналоговые (даже если их не подключать то делитель напряжения будет выполнять роль резистора подтяжки); - датчики Холла очень сложно было юстировать. P.S. РУ не облетал, так как нет живого АКБ, а ЛА, восстановленный после серьезной "морковки", может второй не раз этого не выдержать. Если есть желающие (находящиеся в географической близости) опробовать на своем пенолете пишите eismeer89@gmail.com