FY-20A/FY-21AP - Катайский трёхосевой стаб на MEMS гирах и акселерометрах + OSD и автопилот

Wasja
baychi:

PS: swapW() - маняет байтики местами, так как на STM-ке порядок не тот, что у Интеля.

Ух ты! С этого момента поподробней (я в Си не очень): когда я меняю Waipoint, я посылаю в порт такую команду:
FyCommand = {&HA5, &H5A, китайцу помолимся
12, это сколько скажу total data length
&HC2, это команда на изменение точки

latitude dat(2), dat(3), dat(4), dat(5),

longitude dat(6), dat(7), dat(8), dat(9),

(12 + &HC2 + dat(2) + dat(3) + dat(4) + dat(5) + dat(6) + dat(7) + dat(8) + dat(9)) Mod 256, &HAA} контрольная сумма, которую он не считает, конец

оператор mod это остаток от деления

'East longitude (это проходит отлично)

x = целые минуты
dat(6) = (x - x Mod 256) / 256
dat(7) = x Mod 256

y = десятитысячные минуты
dat(8) = (y - y Mod 256) / 256
dat(9) = y Mod 256

'west longitude (а в этом случае он возвращает в потоке телеметрии правильное значение заданной точки и летит на 70 потому и думаю, что это железяка - хотя когда она сама себе задает точку циркуляции или дома, все в полном порядке).

x = целые минуты
dat(6) = (x - x Mod 256 + &H8000) / 256
dat(7) = (x + &H8000) Mod 256

y = десятитысячные минуты
dat(8) = (y - y Mod 256) / 256
dat(9) = y Mod 256

Какие байты менять? И почему тогда она возвращает правильное значение (равно как и я читаю все координаты с телеметрии без проблем с теми же формулами)?

baychi
Wasja:

Какие байты менять?

Думаю, ошибка в dat(2) и dat(6) - там в старших битах кодируется полушарие и запад/восток.
Логика простая:

char la=‘N’,ln=‘E’;
if(dat(2) & 128) la=‘S’ ( else ‘N’😉
if(dat(6) & 128) ln=‘W’; (else ‘E’).
Не знаю как для Испании, а для Москвы надо N и E (то есть 0-е старшие биты). 😃
Ан нет - у Вас там W, следовательно это:

Wasja:

dat(6) = (x - x Mod 256 + &H8000) / 256

Правильно. (Хотел посоветовать убрать + &H8000).

PS: Что это за язык?

Wasja

Это Visual Basic. + &H8000 не стоит убирать, тогда он будет одинаковые данные посылать в прибор для обоих полушарий. Хотя… в этом что-то есть. Обидно, тратил время на прогу (хоть и для себя) а самое интересное она делать не умеет.

baychi
Wasja:

Обидно, тратил время на прогу (хоть и для себя) а самое интересное она делать не умеет.

А если запросить, координаты, что выдает? Попробуйте моей приблудой: files.mail.ru/0XPZL0

Wasja

По запросу координаты не выдает, все точки (текущая, дом, циркуляция) у нее в потоке телеметрии и закодированы соответственно 8 битами (4lat+4lon). Если значение отрицательное, то прибавляет + &H8000 к первому биту. Координаты всегда выдает верные или заданные с земли.

baychi
Wasja:

все точки (текущая, дом, циркуляция) у нее в потоке телеметрии и закодированы соответственно 8 битами (4lat+4lon). Если значение отрицательное, то прибавляет + &H8000 к первому биту

Конкретно в том месте, где Вы находитесь, текущие координаты выдает E или W?

Wasja

W, конечно, но смотрите как он это пишет
похоже с вашей программой ведет себя адекватней (сложно понять без карты и не в поле), на каком языке код, может переведу к себе в basic? Ага,перевел, вроде понятней, буду завтра по карте смотреть, спасибо.

baychi
Wasja:

смотрите как он это пишет

То есть Вы ввели N, W, а она подменила W на E (сбросила битик)?
Вот собака! Это похоже на ограничение ПКТ только для своего четвертьшария…
Если это не моя ошибка, конечно. 😃 А если точку ввести Вашей программой, а глянуть моей?

Wasja:

на каком языке код, может переведу к себе в basic?

C++ под среду Visual Studio 6.
Исходники положил здесь: files.mail.ru/37HUUI
Если Вы пользуетесь VisualBasic-ом, среда - одна и та-же.

А!!! 545 градусов - это моя ошибка. 😃
Не тот битик сбрасывал. Здесь поправил: files.mail.ru/YWCHBF
В исходнике gsmmodem.cpp найдите пару 0x7ffff, уберите лишнюю f…

Wasja
baychi:

А!!! 545 градусов - это моя ошибка.

Ну, допустим, но такую точку она по крайней мере адекватно отображает. В остальном никак, правда ошибка (или?) харда. Программа выйдет с красивой заглушкой на остальные полушария. Теперь еще пару летных и опубликую здесь sites.google.com/site/glassgamma/. 31 не покупаю. Александр, еще раз спасибо.

baychi
hudognik:

вот обнаружил интерестную инфу по переделке обыкновенной FY-20 в copter control

О, как мило! Теперь понятно, что дальше делать с этим китайским непотребством.
ИМХО, гораздо приятнее учиться на своих ошибках, чем страдать от изысков фейтеховской поддержки. 😃

PS: Там фактически дана схема FY-20.

Вася-Вася

Сегодня собрал всю начинку для Ская- fy21+ ap21 c подключением видео(fatshark). Стабилизация работает, режимы переключаются( правда в RC входит с небольшой задержкой). Проблема в том что по непонятной причине пропадает видео. Если положить палец снизу на плату видеопередатчика в том месте где находиться видеоразьем- все появляется. Не пропай отпадает- пробовал два разных передатчика, симптомы те-же. Может проблема в проводах от камеры к АР117 и от АР до видеопередатчика?(штатный кабель камеры +10см до АР и 20 после).
Если на вход передатчика включаешь камеру- видео есть:)))))

baychi
Вася-Вася:

Может проблема в проводах от камеры к АР117 и от АР до видеопередатчика?

ИМХО, проблемма либо в разводке общего (минуса), либо в с лабом сигнале с камеры, либо в ВЧ наводках. В первом случе видео должно зависеть от тока, взятого с акка. Во втором - дело случайное. Попробуйте одеть ферритовое колечко/муфту на кабель к передатчику.

nemo61
hudognik:

Не знаю ,было или нет , вот обнаружил интерестную инфу по переделке обыкновенной FY-20 в copter control

Очень заманчиво. Фишка без дела валяется, а вроде и решение есть. Только для меня там информации маловато, чтобы повторить. Кто-нибудь это пробовал делать?

hudognik
nemo61:

Очень заманчиво. Фишка без дела валяется, а вроде и решение есть. Только для меня там информации маловато, чтобы повторить. Кто-нибудь это пробовал делать?

Вроде ничего сложного… Из новых деталей юсб разьем и какаято микросхема справа от удемонтированых крутилок , и проволочные перемычки.

zis
hudognik:

Вроде ничего сложного… Из новых деталей юсб разьем и какаято микросхема справа от удемонтированых крутилок , и проволочные перемычки.

А где прошивка, да и чем шить?

hudognik

Прошивкой коптер контрола через их прогамму для компа…

zis
hudognik:

Прошивкой коптер контрола через их прогамму для компа…

А прилепленная микросхема очень похожа на чип памяти для которого тоже нужна прошивка.

baychi
zis:

прилепленная микросхема очень похожа на чип памяти для которого тоже нужна прошивка.

Это внешняя FLASH-ка. Туда лог пишется.

SGordon

убраны крутилки как я понял с фишки?