Создание собственной системы стабилизации
Летану в сб, вс. Или если совсем времени не будет давай в комнате летану? Этого будет достаточно?
так с прошлого полёта логи на sd-шке должны быть?
так с прошлого полёта логи на sd-шке должны быть?
Оппа, а слона и не заметили! Я сд не вставлял, но может они вставилии ейо изначально. Надо посмотреть, тогда логи завтра.
Я сд не вставлял,
? оно по идее без неё не работает, точнее Арду не запускает…
Или если совсем времени не будет давай в комнате летану?
Да, достаточно повисеть 15 сек, и график за это время показать.
Вот я тоже об этом подумал.
Нужно только ПИДы по тангажу и крену разные установить.
Я поизучаю вопрос нащщет пидов. Конфиг рамы конечно спорный. Раздвинуты ноги гыгы.
Пиды возможно и трогать не придётся (если рама примерно 450-я и 10-е пропы), а вот сменить тип рамы на X надо будет (но это даже без перепрошивки) там скорей всего V тип стоит…
DMA в F4 - беда, и как-то надо её решать…
Проблема с 1-м Usart - вроде бы всё красиво, но зачем rx и tx вешать на один канал? хоть и потоки разные, канал один и тотже, (кстати для всей периферии такой маразм) а что происходит? а происходит следующее - потоки “деруться” за канал и побеждает естественно поток с младшим номером, в частности для Usart1 побеждает rx т.к. он либо stream2, либо stream5 тогда как tx stream7… Вопрос - как их разрулить? занизить приоритет одного из потоков - дык он потухнет 😦
Проблема с 1-м Usart - вроде бы всё красиво, но зачем rx и tx вешать на один канал?
Не вижу проблемы, канал это только выбор входа для запроса на выполнение ПДП для определенного потока, т.е. каналы с одним номером для разных потоков разные.
Что-то комрад Дринкер за выходные не проявился. Не фотки Хавка не графика акселя в полете…
Что-то комрад Дринкер за выходные не проявился
Я выходные провел далеко и без хобби. Товарищ серг поведал, что в хавк должна быть вставлена симка. Типо без симки он вообще не запустицца. Если так, то вечером будут графики с прошлых полетов.
Я выходные провел далеко и без хобби.
Понятно, ждёмс… В фото хавка интересует набор датчиков.
Не вижу проблемы
Тогда я вобще не понимаю в чём беда? Mahowik сказат что у него не та, не другая версия драйвера вообще по tx не запустилась…
хотел сегодня вылететь, даже с планшетом договорился, а тут мокрый снег с дождём и ветер 😦
Тогда я вобще не понимаю в чём беда?
Вот я действительно не понял что за беда происходит, когда нужно временно отключить ПДП, а потом возобновить. Не могу нормально ПОВТОРНО инициализировать поток, хотя остановку ПДП делаю по руководству, дожидаюсь снятия бита DMA_SxCR_EN.
DMA_Cmd (DMA2_Stream3, DISABLE);
while(DMA_GetCmdStatus(DMA2_Stream3) != DISABLE);
Может у вас с этим же проблема?
Показывай код.
Вот старая версия github.com/SergDoc/…/drv_uart.c
Вот новая github.com/SergDoc/…/drv_uart.c
а итог один - тормоза в цыкле 😦 а у Саши вообще не запустился…
или тут надо:
/* Î÷èùàåì áèò îáðàáîòêè ïðåðûâàíèÿ */
DMA_ClearITPendingBit(DMA2_Stream7,DMA_IT_TCIF7);
DMA_Cmd(DMA2_Stream7, DISABLE);
while (DMA_GetCmdStatus(DMA2_Stream7) != DISABLE) {
};//добавить?
if (txBufferHead != txBufferTail)
uartTxDMA();
else
txDMAEmpty = true;
}
хоть ты плату снимай…
Не наверно пока новую не соберу снимать не буду, а потом уже на старой буду эксперименты экспериментировать:)
Товарищ серг поведал, что в хавк должна быть вставлена симка.
Логи можно и неразбирая скачать через терминал в планнене…
Логи можно и неразбирая скачать через терминал в планнене…
Попробую. Спасибо. Только ткни куда тыкать.
И чего-то я запуталсо - две версии планнера есть что-ли? На сцайте у 3др версия 2.0, у меня какаято старая и по виду не похожая.
а итог один - тормоза в цыкле а у Саши вообще не запустился… или тут надо:
Попробуйте напрямую с регистрами работать. Говорят в STM32F4xx_StdPeriph_Driver косяки проскакивают.
Есть apm planner (Qt)
и есть Mission planner (net) но по сути они похожи, во вкладке терминал выбрать PX4/PIXHAWK > connect > скачать лог , у меня винда на этом ноуте тормознутая, так что не удивляйтесь - там видно несколько раз тыкался в connect
Говорят в STM32F4xx_StdPeriph_Driver косяки проскакивают
Скорей всего 😦
Говорят в STM32F4xx_StdPeriph_Driver косяки проскакивают.
Пока не встречал, правда один раз пытался на индусов всё свалить… не вышло😁 Библиотеками надо уметь пользоваться, код открытый - читай не хочу 😉
Ещё кейл всё сильно оптимизирует, так что работу с периферией построчно не отладить.
Ещё кейл всё сильно оптимизирует, так что работу с периферией построчно не отладить.
Пару раз натыкался на то что он выкидывал нужный кусок кода. Помогала установка пустой строки в области кода. Так и не понял почему так случалось.
Может библиотеки заменить? вроде STM32F4xx_StdPeriph_Driver по свежее уже есть?
Пару раз натыкался на то что он выкидывал нужный кусок кода. Помогала установка пустой строки в области кода. Так и не понял почему так случалось.
да есть такое…
Так как нелётная погода и настроение вообще аховое, незнал чем заняццо, ну ничего не получается сегодня, решил под бубунтой Mission Planner запустить:
И так что для этого надо?
установить mono runtime
Mono — это платформа для выполнения и разработки программ на основе стандартов ECMA/ISO. Mono — реализация стандарта с открытым исходным кодом от Novell. Mono предоставляет полную среду CLR (Common Language Runtime), включая компилятор и среду выполнения, с помощью которых можно создавать и исполнять байт-код CIL (Common Intermediate Language), а также библиотеку классов.
Этот пакет содержит виртуальную машину, JIT-компилятор и AOT-генератор кода «mono». «mono» выполняет приложения для CLI (Common Language Infrastructure). В настоящий момент Mono поддерживает только архитектуры X86, PowerPC, ARM, SPARC, S/390, AMD64 и IA64. Опционально этот пакет настраивает поддержку BINFMT.
как это сделать?
в консоли набираем:
sudo apt-get install mono-runtime libmono-winforms2.0-cil libmono-corlib2.0-cil libmono-system-web4.0-cil libmono-system-management4.0-cil
после установки лезем сюда и скачиваем сам планнер в архиве!!! не msi.
распаковываем его куда-нибудь (папки без пробелов в названии и не кириллицей)
далее лезем в ту папку находим ArdupilotMegaPlanner10.exe правой клавишей ->свойства -> права ставим галочку - на разрешения запуска как приложение, открыть с помощью -> mono-runtime. Закрываем всё это дело и двойным кликом запускаем экзешник (тут есть нюанс - попросил обновится и перестал работать, так что я всё это убил и распаковал заново) и вуаля, под винду лазать больше не надо:)
Вот старая версия github.com/SergDoc/Nev_Multi...src/drv_uart.c
Вот новая github.com/SergDoc/Nev_Multi...src/drv_uart.c
а итог один - тормоза в цыкле а у Саши вообще не запустился…
Странно… как работает новая версия я понять не могу, ибо не вижу инициализации потока ПДП
//DMA_InitStructure.DMA_Channel = DMA_Channel_4;
//DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&USART1->DR;
DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)txBuffer;
DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;
//DMA_InitStructure.DMA_BufferSize = UART_BUFFER_SIZE;
//DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
//DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
//DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
//DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
//DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
//DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
//DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull;
//DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
//DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
видимо умолчательные значения совпадают с нужными ))) хотя почему круговой режим изменен на нормальный? особо плохо что закоментина строка
//DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&USART1->DR;
и вообще там есть режим ФИФО, его и надо пользовать.
Если будет желание и возможность, завтра перепишу.
Может библиотеки заменить? вроде STM32F4xx_StdPeriph_Driver по свежее уже есть?
нее, библиотеки тут не при чем