Проект Мегапират на самик!

LeonVS
vldvv:

вдруг такая ситуация в полете понадобится?

В полете можно просто газ скинуть, зачем в полете деактивировать двиг? Деактивация нужня для проведения регламетных работ чтоб АП ненароком не газанул и не надавал владельцу по мордам, рукам и другим частям неприкосновенного тельца 😃

Syberian
alex-ber:

Не безопасно на самиках?

ОК, тупо отключим деактивацию. Пусть на самолях блокируется только запуск. Чтобы активировал - и до самого краша 😃

LeonVS
alex-ber:

пишет ошибку, что нет libusb0.dll (этой библиотеки не хватает?).

Именно 😃

Syberian:

Чтобы активировал - и до самого краша

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

libusb0.rar

Syberian
LeonVS:

понимаю что это лишний гемор,

это не гемор, спасибо за здравую идею. У меня активашка отдельно делается для каждого канала и типа ЛА

Щито такое проверка на краш? как она действует? Датчик удара на акселе? так оно ведь может шарахнуть оземь и дальше лететь, зачем отрубать?

LeonVS

Летим летим, вдруг скачек по акселю ацкий, понимаем что мы уже в земле матушке, движка = дизарм.
То же самое и при автопосадке, касание с землей он сразу замечает и выключает движку.

И к стати еще какой нить знак свыше нужен при активации двигателя, так как вортекс запрятан как правило в брюшко и светика не видно 😃

Syberian
LeonVS:

вдруг скачек по акселю ацкий

ага… понятно… у меня уже есть высчитанная длина G-вектора (т.е. перегрузка с любого направления). Какую перегрузку в G считать за удар? Надо двинуть кому-нибудь по морде зажатой в кулаке платой 😁

ukkr
alex-ber:

Что есть “БАНТИК” ?

Всё просто. В том архиве, что ты скачал, есть файл avrdude.bat Его и надо запускать. Только перед запуском открой его в каком-то текстовом редакторе и поменяй номер Ком-порта. Там стоит ща COM4, а ты там номер поставь, по которому у тебя в винде вортекс подконнектился.

П.С. Допиливаю по-тихоньку гуйню. Пишу протокол-парсер. Версия прошивки двухдневной давности. От чего-то после синхронизирующего байта 0xcb у меня приходят совсем не коды пакетов 30, 31, 32, а значения за 100тню переваливающие. Рою дальше…

LeonVS

А можно не по уровню перегрузки вычислять, а именно по резкому скачку? Так как перегруз можно создать и в вираже больше допустимого, в то же время при посадке особого перегруза не будет (штатной посадке) а “отлов” вырубания движка так же нужен.

Syberian
ukkr:

после синхронизирующего байта 0xcb

после синхробайта следующий - длина пакета, не считая синхро и длины Ж) почетай gcs.h
А еще лучше вытащи у мене из GUI процедуру rxchar и process0

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

ukkr

П.С. Олег, я ж правильно понимаю, что ты шлёшь пакеты типа такого:

[0xCB][command_id][lenght]param1..paramN[CRC]
 |             |                 |                                 |
byte     byte(30-32)    byte                            byte

Так я и по gcs.c смотрю.
Стоп. Млять, Семён Семёныч. Сука, не заметил, что ты в gcs_purge() делаешь gcs0_tx.index=2; От я конь педальный. Нельзя, нельзя работать в 2 ночи!!!

Syberian

Открой gcs.h , последний раз спрашиваю111 а то напишу в журнал мурзилка

ground control station protocol
1 2 3 … … n
0xcb len func data data crc

len=func+data+…+crc, if len>20 = seek new sync
crc = 0xCB xor (len…data)

ukkr
Syberian:

заклинаю тебя111

😁😃😂

alex-ber

Ага…
Спасибо вроде разобрался - уже не ругается…
Пойду Вортекса с самика выдирать…

ukkr
Syberian:

Во обласкал…

Так я ж про себя. Обидно. Вчера в 2 ночи всё парился и парился, посл 0xCB ничего из 30-32 не лезет от тебя. Вместо того, чтоб посмотреть поподробней по коду и не тупить. 8(

vldvv
LeonVS:

зачем в полете деактивировать двиг?

и я о том что незачем, и нужно исключить случайную его деактивацию.

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

Syberian

Костя, есть еще засада, в протоколе не описаны исходящие с борта пакеты в силу моей лени. В process0() и gcs_stream() есть все пакеты.
Если у команды с земли установлен 8-й бит, это означает, что это запрос параметра, а не его установка.

ukkr

Да я по сырцам и смотрю. Жалко, что иногда туплю и трачу кучу времени на фигню.

LeonVS
vldvv:

и нужно исключить случайную его деактивацию.

В принципе логично…