Создание собственной системы стабилизации
вот порт просто переключить 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 дня, зато удовольствия и удобства - дофига!
По полету по точкам - не сделано в вие скорее всего именно из-за непродуманной передачи координат, так как как уже и было сказано выше - все что нужно - т.е. полет по точке (в виде возврата домой сейчас) в коде давно уже есть - я просто сейчас жду новую платку с флешкой и для ЖПС-а как раз тоже.
я пока до УСБ не добрался, во первых платы ещё нет, во вторых ещё датчики присобачить надо по SPI а как-то без самой платы интереса нет, пока только ПО (имеющееся) “пересадил” на F4, очень много изменений по периферии…
Полет по точкам имеет смысл с железобетонным удержанием высоты, такая фича только у комрада Маховика есть, а в оригинальном вие вроде она не так хорошо работает.
полет по точке (в виде возврата домой сейчас) в коде давно уже есть
Я помню что гдето видел в мануалах, когда плата ВсеВ Одном была еще с 328 процессором. Там была возможность повесить GPS только через I2C и иметь 16 точек WP0…WP15 из которых нулевая это HOME те точка возврата по RTH, либо чуть позже “научились” вешать Serial GPS, но тогда приходилось принести в жертву все точки кроме WP0, из за банального недостатка памяти у чипа. Сейчас на “больших” платах памяти достаточно, но пока видимо руки до организации WP не дошли. Либо это сознательно не делается ради сохранения совместимости с предыдущими моделями плат, которых очень много. В любом случае Wii имеет возможность летать по точкам, и содержит это в исходниках, но нужно адаптировать конфигурацию до аппаратных возможностей более мощной платы.
Кому интересно я уже давал ссылку rcopen.com/forum/f123/topic267086/505
Полет по точкам имеет смысл с железобетонным удержанием высоты,
Не понятно откуда такое условие, поясни плиз, как именно связано удержание высоты с полетом по точкам?
Удержание высоты и хорошая работа магнитометра это основополагающие функции для полета по точкам, если аппарат не способен удерживать заданную высоту и курс, то до точки может и не долететь
Дошли руки до ШИМов, начало:
static pwmHardware_t timerHardware[] = {
{ TIM2, GPIOA, GPIO_Pin_15,TIM_Channel_1, TIM2_IRQn, 0, }, // PWM1
{ TIM2, GPIOB, GPIO_Pin_3, TIM_Channel_2, TIM2_IRQn, 0, }, // PWM2
{ TIM3, GPIOB, GPIO_Pin_4, TIM_Channel_1, TIM3_IRQn, 0, }, // PWM3
{ TIM3, GPIOB, GPIO_Pin_5, TIM_Channel_2, TIM3_IRQn, 0, }, // PWM4
{ TIM4, GPIOB, GPIO_Pin_6, TIM_Channel_1, TIM4_IRQn, 0, }, // PWM5
{ TIM4, GPIOB, GPIO_Pin_7, TIM_Channel_2, TIM4_IRQn, 0, }, // PWM6
{ TIM4, GPIOB, GPIO_Pin_8, TIM_Channel_3, TIM4_IRQn, 0, }, // PWM7
{ TIM4, GPIOB, GPIO_Pin_9, TIM_Channel_4, TIM4_IRQn, 0, }, // PWM8
{ TIM1, GPIOE, GPIO_Pin_14,TIM_Channel_4, TIM1_CC_IRQn, 1, }, // PWM9
{ TIM1, GPIOE, GPIO_Pin_13,TIM_Channel_3, TIM1_CC_IRQn, 1, }, // PWM10
{ TIM1, GPIOE, GPIO_Pin_11,TIM_Channel_2, TIM1_CC_IRQn, 1, }, // PWM11
{ TIM1, GPIOE, GPIO_Pin_9, TIM_Channel_1, TIM1_CC_IRQn, 1, }, // PWM12
{ TIM5, GPIOA, GPIO_Pin_3, TIM_Channel_4, TIM5_IRQn, 0, }, // PWM13
{ TIM5, GPIOA, GPIO_Pin_2, TIM_Channel_3, TIM5_IRQn, 0, }, // PWM14
{ TIM5, GPIOA, GPIO_Pin_1, TIM_Channel_2, TIM5_IRQn, 0, }, // PWM15
{ TIM5, GPIOA, GPIO_Pin_0, TIM_Channel_1, TIM5_IRQn, 0, }, // PWM16
{ TIM8, GPIOC, GPIO_Pin_6, TIM_Channel_1, TIM8_CC_IRQn, 1, }, // PWM17
{ TIM8, GPIOC, GPIO_Pin_7, TIM_Channel_2, TIM8_CC_IRQn, 1, }, // PWM18
{ TIM8, GPIOC, GPIO_Pin_8, TIM_Channel_3, TIM8_CC_IRQn, 1, }, // PWM19
{ TIM8, GPIOC, GPIO_Pin_9, TIM_Channel_4, TIM8_CC_IRQn, 1, }, // PWM20
};
Удержание высоты и хорошая работа магнитометра это основополагающие функции для полета по точкам,
С магнетометром все понятно, без него сложно определиться с правильным направлением “на цель”, но с высотой это справедливо лишь из соображения не зарывания в песок. Я так понимаю что не смотря на плохонькое удержание высоты, все же выбрать правильное направление и отправиться в путь ни чего не мешает? Не долететь до точки аппарат может только “споткнувшись” об грунт, правильно?
“споткнувшись” об грунт, правильно?
Об грунт конечно это уже совсем тяжелый случай, но в целом да.
Полет по точкам имеет смысл с железобетонным удержанием высоты, такая фича только у комрада Маховика есть, а в оригинальном вие вроде она не так хорошо работает
в 2.2 сейчас одна из моих первый версий (баро+аксель), но для авто режимов вполне справляется со своей задачей… а вот толковой регулировки высоты в альтхолде в мануале, там (в 2.2) нет…
А разве Wii уже поддерживает полет по точкам?
уже есть… точка задается через андроид Ezio (EZ-GUI) прогу, посредством пальцо тыка, см. видео ниже…
Вот только думаю, для хобби, полёт по точкам -архинужная вещь, вышел в чисто поле - отпустил коптер погулять и сиди медитируй, позагоать можно, а он выгулялся и назад прилелел - романтика
тогда уж лучше функцию follow me:
- first implementation of MSP_SET_WP
with the help of Ezio app (EZ-GUI), we can now control the multi with a smartphone: set a new position on a map / follow me / follow heading
see Multiwii EZ-GUI specific topic: www.multiwii.com/forum/viewtopic.php?f=8&t=2034
some video about this functionality:
Война с ШИМ часть вторая:
так как у меня всё через ж… , ну в общем с ног на голову поставлено
static void pwmGPIOConfig(GPIO_TypeDef *gpio, uint32_t pin, uint8_t input)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = pin;
if (input)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
else{
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
}
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(gpio, &GPIO_InitStructure);
}
всем скопом каналы шимов настраиваются, тактирование разрешено отдельно.
похоже на правду?
Кому интересно я уже давал ссылку AfroFlight32 - FunFly Controller “Naze 32”
уже облетал?
калман одномерный там? чет не верю я в это чудо чудное, что прям так сразу лучше полетит, чем более простые ИМУ-шки…
с калманом, уже не по наслышке, подбор коэф-в еще тот секаС…