MultiWii
Ежели кому интересно, научил мультивий работать генератором sum ppm.
rcopen.com/forum/f90/topic103926/468
Диапазон применений довольно большой - от хедтрекеров до управления моделями а-ля fmkit - наклонами и поворотами
Внутри куча микширования и прочей требухи ессно
Ежели кому интересно, научил мультивий работать генератором sum ppm.
rcopen.com/forum/f90/topic103926/468
Диапазон применений довольно большой - от хедтрекеров до управления моделями а-ля fmkit - наклонами и поворотами
Внутри куча микширования и прочей требухи ессно
крутяк, а что это,?))) генератор pm sum это который в frsky приемниках или генератор на меге который обычный сигнал с 8ми каналов перегоняет в ppmsum?
по видео ) как раз собрался собрать летючее крыло на вие) а тут оно , на след недельке поеду за полистиролом))
а что это,?
может быть и генератором ppm sum (т.е. только выход) и пропускать внешние каналы, подмешивая свои данные, например - углы наклона платы.
Хедтрекер короче 😃
может быть и генератором ppm sum (т.е. только выход) и пропускать внешние каналы, подмешивая свои данные, например - углы наклона платы.
Хедтрекер короче 😃
теперь понял)
все с OSD никак не угомонюсь. Перечитал еще раз тему на итальянском форуме (линк)
Не смог понять одного - можно ли подключить этот модифицированный E_OSD к плате MWii на меге 328? Или нужен отдельных хардверный (mega 1280(2560))/софтверный uart для передачи данных с IMU? Надо будет код глянуть…
Или нужен отдельных хардверный (mega 1280(2560))/софтверный uart для передачи данных с IMU? Надо будет код глянуть…
как вариант - использовать тот выход что есть, как с LCD сделано - магическая комбинация стиков и порт работает по другому коду и на другой скорости
честно - тему не осилил, но хочу попозже без модификций Сайбериановый e-osd прикрутить
вот я только что по коду глазами пробежался. Вроде бы все так и есть. Дефайнами определяется, будет ли этот один единственный ком-порт использоваться и для передачи данных на OSD. Жалко, документации очень мало. если вдруг удастся разобраться, отпишусь.
Плюсы - через этот OSD можно еще и ПИДрегуль настраивать, как и в более дорогих собратиях.
Надо будет сравнить код для стандартной прошивки и модифицированной для OSD. Отличий довольно много. Тогда хоть из версии в версию можно будет перетаскивать 😃
Испытал аналог freeimu4 на Multiwii 2 pre3
LLC встроенный в платку, подтяжки отключил. Все летает, но раздельно используется ДУС, акселерометр из MPU6050 и магнетометр. Поддержки DMP в коде нет.
Кстати, пока искал, появится ли в Вии DMP MPU6050, набрел на такую платку: ATMEGA 2560, MPU-6000 , MS5611, 5883L
Хотя сейчас разброд и шатание. Кто-то использует SPI вместо i2c для MPU6050. Без поддержки DMP (будет ли она - даташит никто не открыл) этот датчик не лучше itg300+BMA180. И грядет переход на ARM.
И грядет переход на ARM.
Как Вы думаете,какой контроллер наиболее перспективен в этом случае?
Вот, все обещанное находится в очень полезном блоге:
www.mictronics.de/projects/remzibi-osd/
там в архивах все есть
Я повторял этот проэкт.Все отлично работает в моем варианте с ардупилотом.
Основной сложностью было это сверление межплатных переходов сверлом 0.4…
Как Вы думаете,какой контроллер наиболее перспективен в этом случае?
У меня есть основания доверять:
затестил MARG на 72МГц М3 (в симуляторе). 1.9мс вместо 3 в AVR. Ваще негусто. Ожидал гораздо круче разницу. Попробую М4 запустить.
После мешочка гимора запустил-таки MARG в симе на 407-м ядре. 200мкс по сравнению с 1900 на 103-м и 3000 на AVR FPU рулит.
Я твой MARG на себе запускал. 1 цикл расчета занял 2мкс. Сейчас полноценный (гира+аксель+компас) оптимизированный алгоритм с кватернионами + EKF отрабатывает около 10мкс на моей платформе, и еще можно улучшить.
Хотя сейчас Кролик и ТаймКоп, а также желающие-умеющие портировать, используют 103. Надеюсь, ситуация устаканится. Я готов купить “мощный” ARM 407 и более навороченный, если начнут портировать Мультивии. Сам покопался в ARM - помигать светодиодиком можно, математику сделать. А с приемом PPM, выдачей сигналов на ESC - трудно для понимания с полпинка.
Я повторял этот проэкт.Все отлично работает в моем варианте с ардупилотом.
а чего это за страшная такая петля из медного провода?
а чего это за страшная такая петля из медного провода?
Радиатор 😃
на что, на мегу? =-ООО???
нет уж. Готов поверить, что это суперпупер ядреная земля с экраном, но никак не радиатор ))))
Все летает, но раздельно используется ДУС, акселерометр из MPU6050 и магнетометр. Поддержки DMP в коде нет.
Я тут подумываю попробовать 6axis DMP заюзать в пирате… Тот код который сперли с демок Invensense 😃
на что, на мегу? =-ООО???
На MAX, уж не знаю почему он там так греется, но он как чайник 😃
а на 328U4 никто не пробовал WII запускать
Что-то какя то шляпа с этой АТмегой 32U4. Не работает она через встроенный УСБ,тупо не определяется и не находятся для него нужные драйвера.Признаться даже и не особо понятно какие именно и где их взять.
Что-то какя то шляпа с этой АТмегой 32U4. Не работает она через встроенный УСБ,тупо не определяется и не находятся для него нужные драйвера.Признаться даже и не особо понятно какие именно и где их взять.
гм, а тупо по rx tx?) через ftdi переходничек или cp2102, хоть попробовать что оно, вроде ног больше, тоже поглядываю пока на stm32 нету времени развести и с софтом разобраться.
эти чипы (32U4) изначально пустые … совсем пустые … там нет бутлодыря как на stm32 … их нужно шить через ISP как и обычные меги на ардуишах … лодырь ессно свой …
Здравствуйте залил я тут прошивку вии 2.0 рк3 вопрос, автор ввел переменную Д для акселя чего не было в предыдущих прошивках, выставив Д=0 получил равномерное качание коптера во все стороны. Изначально автор по стандарту поставил Д = 100, За что может отвечать этот параметр, Тоже самое что и в в гирике по крену и тангажу или нет?
Я тут подумываю попробовать 6axis DMP заюзать в пирате… Тот код который сперли с демок Invensense
www.i2cdevlib.com/devices/mpu6050 пишут “The register info shown below is for a revision B1 chip. The newest “C” revision may not be fully compatible with these addresses or bit arrangements. I am working on updating the library to use the latest information available.”
Если что, на аналоге ФриИМУ4 от CSG_EU стоит чип с ревизией D (11-48 YY-WW)
Сейчас попробую на ардуинке проверить код. Конечно, жалко, что магнетометр не подмешивается (он подключен к MPU6050) для 9DOF DMP. Но можно потом добавлять магнетометр:
if((mx != 0.0f) && (my != 0.0f) && (mz != 0.0f) {
// Normalise magnetometer measurement
recipNorm = invSqrt(mx * mx + my * my + mz * mz);
mx *= recipNorm;
my *= recipNorm;
mz *= recipNorm;
// compute reference direction of flux
hx = 2.0f*mx*(0.5f - q2q2 - q3q3) + 2.0f*my*(q1q2 - q0q3) + 2.0f*mz*(q1q3 + q0q2);
hy = 2.0f*mx*(q1q2 + q0q3) + 2.0f*my*(0.5f - q1q1 - q3q3) + 2.0f*mz*(q2q3 - q0q1);
hz = 2.0f*mx*(q1q3 - q0q2) + 2.0f*my*(q2q3 + q0q1) + 2.0f*mz*(0.5f - q1q1 - q2q2);
bx = invSqrt((hx*hx) + (hy*hy));
bz = hz;
// estimated direction of gravity and flux (w)
wx = 2.0f*bx*(0.5f - q2q2 - q3q3) + 2.0f*bz*(q1q3 - q0q2);
wy = 2.0f*bx*(q1q2 - q0q3) + 2.0f*bz*(q0q1 + q2q3);
wz = 2.0f*bx*(q0q2 + q1q3) + 2.0f*bz*(0.5f - q1q1 - q2q2);
// error is sum of cross product between reference direction of fields and direction measured by sensors
ex = (my*wz - mz*wy);
ey = (mz*wx - mx*wz);
ez = (mx*wy - my*wx);
}
#endif
// integral error scaled integral gain
exInt = exInt + ex*Ki;
eyInt = eyInt + ey*Ki;
ezInt = ezInt + ez*Ki;
// adjusted gyroscope measurements
gx = gx + Kp*ex + exInt;
gy = gy + Kp*ey + eyInt;
gz = gz + Kp*ez + ezInt;
// integrate quaternion rate and normalise
qa = q0;
qb = q1;
qc = q2;
qd = q3;
q0 += (-qb*gx - qc*gy - qd*gz)*halfT;
q1 += (qa*gx + qc*gz - qd*gy)*halfT;
q2 += (qa*gy - qb*gz + qd*gx)*halfT;
q3 += (qa*gz + qb*gy - qc*gx)*halfT;
// Normalise quaternion
recipNorm = invSqrt(q0 * q0 + q1 * q1 + q2 * q2 + q3 * q3);
q0 *= recipNorm;
q1 *= recipNorm;
q2 *= recipNorm;
q3 *= recipNorm;
гм, а тупо по rx tx?
Тоже пробовал,так же без результатно.
Бутлоудер соответственно заливал,правда не знаю тот или не тот,но другого вроде нет,называется DiskLoader-Leonardo.hex.