Создание собственной системы стабилизации
дрейф быстрого/высокочастотного вектора гиры компенсируется НЧ вектором акселя:
Да, у меня вобщем то так и сделано, динамическая часть считается по ДУСу, а статическая по акселю и компасу. Динамическая часть корректируетя статической через малый коэффициент, только вместо обычных векторов кватернионы.
Но на сколько я понял, схождение/корректировка кватернионов у тебя сделана через пид регуль. Так вот его его и надо выкинуть, заменив обычным компл. фильтром…
сижу переписываю порты под себя и всё больше закрадывается мысль, а не пошло-бы оно всё, плюнуть и начать собирать новый проект(без maple) , но если чесно - боюсь… блин я ж проект от мелкоплаты перетащил под эклипс, пойду ка поковыряю, библиотеки только все достать…
сижу переписываю порты под себя и всё больше закрадывается мысль, а не пошло-бы оно всё, плюнуть и начать собирать новый проект(без maple) , но если чесно - боюсь… блин я ж проект от мелкоплаты перетащил под эклипс, пойду ка поковыряю, библиотеки только все достать…
Давно пора выкинуть maple. У меня вот проблема - не разобрался пока с математикой. У меня вообще с ней плохо. понимал бы как оно работает, написать код было бы проще. ну и работу с сенсорами нужно изучить. STM32 только только начал изучать
Подготовил чистое IDE на Eclipse+arm_plugins, gcc+cygwin+openocd, библиотеки для F4,
в git выкладывать? здоровая зараза 😦
давно хочу но как-то руки не доходят, при арминге сделать запуск моторов поочерёдно: один набрал обороты, включился следующий и т.д. реально? но minthrottle 1250-1300 дабы моторы потом не останавливались?
давно хочу но как-то руки не доходят, при арминге сделать запуск моторов поочерёдно: один набрал обороты, включился следующий и т.д. реально? но minthrottle 1250-1300 дабы моторы потом не останавливались?
А практический смысл в этом какой? Или просто так?
Minthrottle вроде 1150-1200 должно вполне хватать, 1300 не великовато ли будет, при одном работающем не будет ли клонить на 1 сторону ?
зависит от регулей, я себе устанавливаю 1300 дабы точно не заглохли, практического никакого, просто, думаю, красиво…
ковыряю всяко разны файлы и вот что:
startup_stm32f4xx.s
.syntax unified
.cpu cortex-m3
.fpu softvfp
.thumb
это как это?
ядро вроде же Cortex-M4 да и fpu присутствует?
у Ф4 что нет калибровки АЦП?
как на Ф10х
// Calibrate ADC
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
не катит, может как-то по другому это обзывается?
у Ф4 что нет калибровки АЦП?
как на Ф10х
не катит, может как-то по другому это обзывается?
Ф4 пока не трогал, но библиотеке действительно нет функций калибровки АЦП
Вот весь код инициализации из демки:
/******************************************************************************/
/* ADCs configuration: triple interleaved with 5cycles delay to reach 6Msps */
/******************************************************************************/
/* ADC Common configuration *************************************************/
ADC_CommonInitStructure.ADC_Mode = ADC_TripleMode_Interl;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_2;
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
ADC_CommonInit(&ADC_CommonInitStructure);
/* ADC1 regular channel 12 configuration ************************************/
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 1, ADC_SampleTime_3Cycles);
/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);
/* ADC2 regular channel 12 configuration ************************************/
ADC_Init(ADC2, &ADC_InitStructure);
/* ADC2 regular channel12 configuration */
ADC_RegularChannelConfig(ADC2, ADC_Channel_12, 1, ADC_SampleTime_3Cycles);
/* ADC3 regular channel 12 configuration ************************************/
ADC_Init(ADC3, &ADC_InitStructure);
/* ADC3 regular channel12 configuration *************************************/
ADC_RegularChannelConfig(ADC3, ADC_Channel_12, 1, ADC_SampleTime_3Cycles);
/* Enable DMA request after last transfer (multi-ADC mode) ******************/
ADC_MultiModeDMARequestAfterLastTransferCmd(ENABLE);
/* Enable ADC1 **************************************************************/
ADC_Cmd(ADC1, ENABLE);
/* Enable ADC2 **************************************************************/
ADC_Cmd(ADC2, ENABLE);
/* Enable ADC3 **************************************************************/
ADC_Cmd(ADC3, ENABLE);
думаю ,калиброквку можешь смело комментировать.
Вот ссылка на офиц. демо набор www.st.com/web/en/catalog/tools/PF257904
я так и сделал 😦
потихоньку разбираюсь, вот с прерываниями вроде подружился, а вот порт просто переключить digitalLo digitalHi не получилось - не имеет, аж страшно писать, члена BSRR ну и т.д. ладно разберу 😃
Вот ссылка на офиц. демо набор
он у меня есть…
вот порт просто переключить digitalLo digitalHi не получилось - не имеет, аж страшно писать
Дык ты не бойся, используй родные библиотеки, компиллер сам до лишее урежет.
разобрался, теперь это так
#define digitalHi(p, i) { p->BSRRH = i; }
#define digitalLo(p, i) { p->BSRRL = i; }
Афигеть 😃 я мелкоплату пересобрал на F4 😃
Почему полез опять в Wii? - просто в ПО мелкоплаты я по крайней мере разбираюсь - это раз, нет maple и всех вытекающих - типа порт обозначил, а потом ищи почему не работает, да и плата у меня не особо maple-совместимая будет - это два, ну и третье - 16 Waypoint-ов по GPS мне пожалуй побаловаться хватит 😃
буду потихоньку адаптировать для новых датчиков (под проц уже вкрутил)…
p.s. последней каплей было wingui с интегрированым терминалом 😃
p.p.s нарыл проект виртуального com- порта(не из примеров), непомню где и ешё не ковырялся, но по всей видимости подойдёт как замена программатора, с данным ПО должно места хватить для уживания с основной прошивкой (интегрирования в прошивку), посмотрю что за бяка отпишусь…
нарыл проект виртуального com- порта(не из примеров), непомню где и ешё не ковырялся
SoftwareSerial - теперь есть в штатных библиотеках.
SmallUART - тоже работает если что.
Почему полез опять в Wii? - - 16 Waypoint-ов по GPS мне пожалуй побаловаться хватит
А разве Wii уже поддерживает полет по точкам?
А разве Wii уже поддерживает полет по точкам?
В некоторых случаях поддерживает, а именно при использовании I2C GPS.
С обычным же вроде нет, почему так решили сделать не понятно, возможно следы ведут в версию на Mega328 там памяти еле хватает на одно из двух…
А, понятно.
Мне тоже казалось странным, что в Wii есть например возврат домой, т.е. к точке он лететь как бы умеет, а переключение точек задача уже не столь сложная. Тут скорее просто руки ни у кого не доходили, тем более что если делать нормально, нужен софт для создания/хранения точек, в код вбивать все ж не очень удобно.
Вот только думаю, для хобби, полёт по точкам -архинужная вещь, вышел в чисто поле - отпустил коптер погулять и сиди медитируй, позагоать можно, а он выгулялся и назад прилелел - романтика 😃 -получается принцип как в рыбалке из анекдота - наливай да пей 😃 я, если что, за правильную рыбалку - без спиртного…
p.p.s нарыл проект виртуального com- порта(не из примеров), непомню где и ешё не ковырялся, но по всей видимости подойдёт как замена программатора, с данным ПО должно места хватить для уживания с основной прошивкой (интегрирования в прошивку), посмотрю что за бяка отпишусь…
не знаю правильно ли я понял вас, у себя на хмеге серии U уже вовсю пользуюсь программированием + работой ГУИ через аппаратный ЮСБ. Пришлось поковырятся 2 дня, зато удовольствия и удобства - дофига!
По полету по точкам - не сделано в вие скорее всего именно из-за непродуманной передачи координат, так как как уже и было сказано выше - все что нужно - т.е. полет по точке (в виде возврата домой сейчас) в коде давно уже есть - я просто сейчас жду новую платку с флешкой и для ЖПС-а как раз тоже.