Eismeer

Аппаратура РУ из джойстика Defender cobra m5

7 posts in this topic

Представляю Вашему вниманию самостоятельно изготовленную аппаратуру РУ на базе компьютерного джойстика 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

01.jpg0_menu.jpg02.jpg03.jpg04.jpg05.jpg06.jpg07.jpg08.jpg09.jpg10.jpg11.jpg12.jpg13.jpg

Plohish, KIR, NickLounder and 2 others like this

Share this post


Link to post
Share on other sites

Добавил видео

 

bva, KIR and Romekkk like this

Share this post


Link to post
Share on other sites

Юра, привет! Я далеко от тебя, а так бы с удовольствием опробовал твой шедевр! Чувствуется инженерная мысль. Очень интересный подход! Я думаю у тебя все получится.

Share this post


Link to post
Share on other sites

Рад, что Вам интересно. Заказываю материалы, будет на Arduino Due.

Share this post


Link to post
Share on other sites

so... It's just brilliant! I want to know more about this project. Could you translate your documents from Ru to En? I'm from USA and have "small" problems with russian language..)

Edited by NickLounder

Share this post


Link to post
Share on other sites

Finalized a new version of the joystick.

1. Control channels:

4 analog control channel for UAV control:

 - Aileron and elevator (magnetoresistive sensor kmz60),

 - Rudder and throttle (potentiometer);

2 digital or optional analog (change settings menu) camera control channel:

 - 4 discrete button in the handle of the joystick (9 fixed camera position),

 - 2 10K potentiometer (connected in addition to the joystick);

2 digital or analog (change settings menu) control channel Aux1 and Aux2:

 - Aux1: 1 three-position button (in the menu assigned to the fixed PPM values from 0 to 1000 in steps of 4 values) or 10K potentiometer (built-in);

- Aux2: 1 three-position button (in the menu assigned to the fixed PPM values from 0 to 1000 in steps of 4 values) or 10K potentiometer (built-in) or 10K potentiometer (connected in addition to the joystick).

I added the ability to connect three external potentiometer to control the camera: horizontal and vertical planes and zoom.

2. Additional settings:

2.1. Trimmer mode:

- Aileron control channels, elevator and tail by changing the central value with automatic recalculation of the end position servos (default 0-500-1000, after trimming 20-510-1000) in increments of 2 values (0.2% of the range of the servo);

- Throttle are set separately extreme values (default 0-1000, after trimming 0-900) in increments of 2 values;

- 2 digital camera control channel (separate trims in horizontal and vertical plane) individually exhibited values of the edges and the center (the default horizontal and vertical 0-500-1000, after trimming 60-510-960 in the horizontal, vertical 100-450-950);

- 2 digital control channel Aux1 and Aux2 three-position button - PPM values from 0 to 1000 in steps of 4 values,

- 2 analog control chanel Aux1 and Aux2 10K potentiometer - set separately extreme values (default 0-1000, after trimming 0-900) in increments of 2 values.

2.2. Inversion of control for all analog channels.

2.3. Exponential mode for all analog channels forming function y = x3.

2.4. Channel mixer for classic (default), flying wing and V-tail.

3. Filling the joystick:

- Arduino Due R3 forms a perfectly accurate PPM signal and high performance;

- Arduino ProMini is set inside the handle joystick - reads the 12 buttons and transmits the data to the Arduino Due;

- 0.96” oled display (128x64) and display frame printed on 3D printer;

- home-made Arduino Due shield;

- magnetoresistive sensor kmz60 is better than the Hall sensor;

- three connectors: power input, output PPM signal, connect external potentiometers;

- reverse polarity protection and voltage regulation.

Problems for which it took a lot of time:

- Arduino Due has no internal (eeprom) memory;

- Arduino Due R3 (15$) does not start correctly when power is applied (Arduino Due R3E start correctly, but it is worth from 60$).

Coming soon

1.jpg

2.jpg

3.jpg

4.jpg

kmz60.jpg

Shield.jpg

NickLounder likes this

Share this post


Link to post
Share on other sites

Вторая версия джойстика готова!

Когда брался за нее не ожидал, что возникнет такое количество технических проблем с Due и что придется потратить на их решение так много времени. Зато сейчас очень доволен, что взялся делать на Due - ее избыточная производительность позволила реализовать все задумки и причем выполнение их никак не влияет на стабильность и скорость работы, заодно получился очень приятный интерфейс общения. Надеюсь Вам интересен мой проект.

 

Яков, smg2000, Romekkk and 2 others like this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now