Самодельный конвертер сингала PWM в PPM для регуляторов БК двигателей

ZusuL

На картинке написано… www.analog.com/static/…/OP184_284_484.pdf
В принципе данный тюнинг должен работать и со стоковым мотором.

Могу еще добавить что гироскоп скорее всего www.sparkfun.com/…/Datasheet_IDG500.pdf. Корпус похож и по выводам вродебы совподает. Итого - двухосевой гироскоп + op284 + 2переменника… получаете регулировку обеих осей, по массе добавится дополнительно только 1 переменник (284 и 184 оба в соп8). Одно но - ХЗ зачем это может быть нужно…
Выход 2 оси подрисовал, резисторы видемо надо искать на обратной стороне…
Повторюсь на op184 свет клином не сошолся, можно найти чтото современное миниатюрное и мало потребляющее

sashok17

И я добавлю. Такой гироскоп вроде стоит в китайских больших вертолетах 3.5 канала. По крайней мере мне такой попался:)

cylllka

Рома, выложи пожалуйста исходник на самую быструю прошивку под ПИК202й. Хочу с Валкеровским регулем запустить. Оказывается для него нужно PPM выходной инвертировать в конвертере, иначе не правильно работает

cylllka
RXL:

Последнее тут: rcopen.com/forum/f87/topic219994/299
С тех пор ничего не менялось.

Ром, перерыл исходник и не нашел где инверсия ППМ и ПВМ задается. Мне нужно и то и другое вывернуть

RXL

Файл user_settings.inc - там CFG_PWM1_INVERSE и CFG_PWM1_INVERSE.

Инверсию PPM не предусмотрел. В прошлой прошивке была, но оказалась невостребованной.
Чтобы сделать ее в файле ppm_loop.asm найди вот это:


CLR_PPM macro p_ch

    bcf IO_PORT, PPM#v(p_ch)_BIT

    endm

SET_PPM macro p_ch

    bsf IO_PORT, PPM#v(p_ch)_BIT

    endm

Сделай так:


CLR_PPM macro p_ch

    bsf IO_PORT, PPM#v(p_ch)_BIT

    endm

SET_PPM macro p_ch

    bcf IO_PORT, PPM#v(p_ch)_BIT

    endm

Это повлияет на оба канала!

Или так, чтобы инверсия была индивидуальной:

Для ppm_loop.asm:


CLR_PPM macro p_ch
    if CFG_PPM#v(p_ch)_INVERSE == 0
        bcf IO_PORT, PPM#v(p_ch)_BIT
    else
        bsf IO_PORT, PPM#v(p_ch)_BIT
    endif
    endm

SET_PPM macro p_ch
    if CFG_PPM#v(p_ch)_INVERSE == 0
        bsf IO_PORT, PPM#v(p_ch)_BIT
    else
        bcf IO_PORT, PPM#v(p_ch)_BIT
    endif
    endm

Для user_settings.inc:


; Output PPM inversion.
; Инверсия PPM: 0 | 1
    constant CFG_PPM1_INVERSE = 0
    constant CFG_PPM2_INVERSE = 0

cylllka

Спасибо Рома! У меня хвост стал на порядок стабильнее с Валкеровским регулем. Теперь подбираю лопасти нужные. Т.к. их масса влияет на инерцию. Ну и прошивку попробую 6мс, сейчас какая то старая используется, сам не запомнил какая

RXL

С новой прошивкой должно быть стабильнее. Но частота ШИМ обязательно должна быть 4 или 8 кГц и быть достаточно точной (отклонение не более 1-2%).

cylllka
RXL:

С новой прошивкой должно быть стабильнее. Но частота ШИМ обязательно должна быть 4 или 8 кГц и быть достаточно точной (отклонение не более 1-2%).

Рома, заглянь в тему МСПИкса, я там прошивку поковырял, не знаю то или не то, по вот после изменения некоторых значений хвост стал на порядок стабильным rcopen.com/forum/f59/topic239683/161
Частота ШИМ 8кГц (как и у МСПИкса).
Когда убрал задержки (поставил точку с запятой, что бы исключить строку) то стало стабильнее, потом поставил время 1мс вместо 2х, стало еще стабильней

RXL
cylllka:

Смотри, я вот чего сделал

PPM_IMPULSE 1 ; 1 ms
PPM_IMPULSE 2 ; 1 ms
;PPM_DELAY ; 1 ms
;PPM_DELAY ; 1 ms
goto ppm_loop

PPM_IMPULSE выполняется за 2 мс, а PPM_DELAY - за 1. Т.е. у тебя осталось в цикле только два PPM_IMPULSE? Значит цикл 4 мс.
После точки с запятой записан комментарий - он никак на программу не влияет.

cylllka
RXL:

PPM_IMPULSE выполняется за 2 мс, а PPM_DELAY - за 1. Т.е. у тебя осталось в цикле только два PPM_IMPULSE? Значит цикл 4 мс.
После точки с запятой записан комментарий - он никак на программу не влияет.

Ну я так и подумал 😃 И главное, что это подтвердилось на практике.
Попробую понизить цикл до 2 мс, исключив PM_IMPULSE 2, как ты и говорил. Думаю Валкеровский регуль поймет это

RXL

Удивительно, но факт: цикл в 2 мс (но только один канал) работает!
Я так понял, что Саша использовал регуль с хвоста БК-Валкеры (модель D100 или D120 - не помню) .
Как он закончит эксперименты, выложу измененную прошивку.

cylllka

Да, работает! 😃 Регулятор хвостовой от CB100. Сейчас отлавливаем неприятный баг. Иногда при сбросе газа хвостовой мотор продолжает крутится и помогает лишь отключение. После небольших изменений предложенных Ромой глюк вроде пропал. Пока продожаю эксперименты. Некогда выйти выгулять зверя на улице 😦

13 days later
SurgeonY

Саша, Рома, вот по поводу этой темы с шим-шим конвертом.
А получится ли сделать в одном конвертере два разных канала? Т.е. один канал шим-ппм для основного и второй шим8-шим2 для хвоста?

cylllka

Было бы неплохо, но Рома сейчас занят. Спасибо ему огромное, что уделил время и написал шим-шим прошивку. Скоро все выложу, еще немного тестов нужно сделать

RXL

Конвертер ШИМ 8 кГц в 2 кГц для подключения регуля от Валкеры.
Прошивки тут: files.shelek.su/limited/…/pwm8_to_pwm2/
Крутить там нечего и потому исходников не выкладываю.

Исключительно одноканальный. Ни два канала, ни совместить с конвертером ШИМ в PPM не получится. Если хочется что-то более качественное, нужно переходить с PIC10 на более серьезный микроконтроллер.

На вход можно подать не только 8 кГц, но и 4 кГц.
Точность определения скважности ШИМ порядка 4-5%.

cylllka

Для mCP-X я использую прямую прошивку.
В принципе можно попробовать PIC12F629 или 675, у меня завалялось с десяток планарных

1 month later
Mr_Brooks

а серву можно подключить? хочу из микро вертолётика сделать маленький самолётик)

cylllka
Mr_Brooks:

а серву можно подключить? хочу из микро вертолётика сделать маленький самолётик)

Нужно у Саши (SashaNar) спросить, он вроде пробовал серву цеплять к этому конвертеру

sashaNar

Пробовал. Задержка на серве НАМНОГО заметней, чем на регуле. На самой старой прошивке 40 мс плавнее всего регулируется и больше всего ход сервы. На 10мс - серва очень заметно дрожжит.
А куда вам серву? На руль направления? Так он же на платах вертов смикширован с газом. Разве что специальную “размикшерную” прошивку писать.
Насчет задержки на самолетах - сегодня при мне летали со включенным сервозамедлителем (меню аппы было на немецком, все хс как выключить), и ничего. У меня самого у аппы задержка где то 0.1-0.2 сек, нормально летается.