micro / minimOSD для NAZA
я наконец-то понял главную ошибку wcorp, он наивно предполагает что у minnazaosd есть доступ к памяти назы, дык вот его нет. Доступ есть у фирменных dji iosd mini и mark ii, они действительно берут точку дома из назы, но и работают эти осд-шки по закрытой CAN шине с двусторонним обменом. Поэтому на naza lite эти ОСД не работают т.к. CAN шина там заблокирована. minnazaosd обсуждаемая здесь работает абсолютно по другому, по обычному последовательному порту, при чем только на прием, у нее даже провод передачи не запаян. Так что спросить у назы точку дом не может физически. Зато эта ОСД работает и на назе лайт, и даже вовсе без назы, полностью автономно, только данные GPS (не обязательно с dji грибка) подбрось и все
Ну он же сам говорит TX-RX. Говорил бы CAN шина, тогда это бы было заблуждение. А так по его утверждению у него TX двусторонний получается. В любом случае ерунда.
#118 сообщение этой ветки.
Вот такое видео, со 2-ой минуты:
Без контроллера работает.
я наконец-то понял главную ошибку wcorp, он наивно предполагает что у minnazaosd есть доступ к памяти назы,
Я сейчас “кручу” комплект АПМ+ОСД. Там всё есть. И именно по шине TX. Она общая. Возможно в случае с назой -это ошибка. Разберемся
Это просто больные фантазии самоуверенных дилетантов с отсутствием элементарной логики.
как у Жванецкого- он грамотнее нас - он знает ноты, наверное 😃
Александр, в Вашем возрасте нужно вести себя корректнее, даже в форуме . Вас этому не учили?
Я сейчас “кручу” комплект АПМ+ОСД. Там всё есть. И именно по шине TX.
Уважаемый, учите матчасть!
TX - это только передача. От английского слова трансмишен. Общим она быть не может. Для приема есть RX. Похоже с амп вы также просвещены как и с назой осд 😃
общего у minimOSD и minnazaOSD только плата, микропрограмма и соответственно алгоритм работы совершенно другой. То что minimOSD и АРМ могут обмениваться данными - да это так, iOSD и naza v2 (v1) - да, minnazaOSD и naza v2 (lite, v1) - нет
То что minimOSD и АРМ могут обмениваться данными - да это так, iOSD и naza v2 (v1) - да, minnazaOSD и naza v2 (lite, v1) - нет
Понято, принято. Для понимания процессов именно это и было нужно
Александр, в Вашем возрасте нужно вести себя корректнее, даже в форуме . Вас этому не учили?
На себя посмотрите, для начала:
Почитай соседние ветки (minimOSD) , я тебя прошу. И умнее будешь выглядеть , и вопросов будет меньше
Так проще?
Вы умнее точно не выглядите. И намеки на лету точно не ловите.
В случае с АПМ то-же самое. Данные с ЖПС приходят напрямую в контроллер а не в ОСД, поэтому он уже и отдает всю информацию в ОСД. Все логично.
Есть USB для прошивки подвеса tarot t2d.
Возможно ли его использовать для настройки и прошивки minimOSD. Просто есть плата, нету FTDI.
Если возможно, то как подключить? никто не пробовал?
Там стоит pl2303hx, судя по даташиту это тот же ftdi, так что пойдет.
Подключение: если расположить плату вверх микросхемой и вниз разъемом (usb разъем вверху), то слева направо 1- RX, 2- TX, 3- пустой, 4- масса.
Пришла следующая идея.
Начинать отсчет времени (тот который на экране показывает) когда коптер взлетает. Ну а взлет соответственно контролировать по газу > 50 процентов. Идея навеяна тем, что обычно от включения коптера и осд до реального взлета проходит от 2-х минут и больше.
Парни, кто в коде разобрался может сделаете соответствующий мод? Думаю будет всем полезен… кто заюзал пин газа.
PS. Если сложно реализовать не начинать отсчет времени с момента загрузки ОСД, можно реализовать однократный сброс времени при первичном газе. Подумалось, что так может быть проще.
однократный сброс времени при первичном газе. Подумалось, что так может быть проще.
этот мод пол года назад сделал, вот: www.rcgroups.com/forums/showthread.php?t=2020638&p…
Будет ли реализовано GPS+компас для правильного рисования стрелки “домой”?
Или надежды мало?
мне кажется этот вопрос нужно задавать автору проекта, например на рцгрупс. И чем чаще он будет его слышать, тем больше вероятность что он его услышит. Моих знаний для такого мода не достаточно 😦
как-то даже обидно мне стало после предыдущего поста, поэтому собрался и сделал магнитный компас 😃 Алгоритм взят отсюда www.rcgroups.com/forums/showthread.php?t=1995704 поэтому как и в оригинале компенсации наклона нет!
Итак, манипуляций много, сначала процедуру void parse_dji_mag из GPS_DJI.ino:
void parse_dji_mag(struct DJI_MAG *mag)
{
#ifdef DJI_HEADING_FROM_MAG
int mask = mag->mask;
short x = decodeShort((byte*)&mag->magX, mask) ^ 0x0100;
short y = decodeShort((byte*)&mag->magY, mask) ^ 0x0100;
float heading = -atan2(y, x) * 180.0 / M_PI;
if (heading < 0.0) heading += 360.0;
// TODO add magnetic declination
// TODO add tilt compensation
GPSValues.Heading = heading;
#endif
}
заменяем на такой код:
int16_t decodeShortMag(uint16_t mag16, uint8_t mask)
{
union { uint16_t s; uint8_t b[2]; } val;
uint8_t byte0=(mag16&0x00FF);
uint8_t byte1=(mag16&0xFF00)>>8;
val.b[0] = byte0 ^ mask;
val.b[1] = byte1 ^ mask;
return val.s;
}
void parse_dji_mag(struct DJI_MAG *mag)
{
#ifdef DJI_HEADING_FROM_MAG
uint8_t mask = mag->uk01;
mask = (((mask ^ (mask >> 4)) & 0x0F) | ((mask << 3) & 0xF0)) ^ (((mask & 0x01) << 3) | ((mask & 0x01) << 7));
int16_t x = decodeShortMag(mag->magX, mask);
int16_t y = decodeShortMag(mag->magY, mask);
if(x > magXMax) magXMax = x;
if(x < magXMin) magXMin = x;
if(y > magYMax) magYMax = y;
if(y < magYMin) magYMin = y;
headingNc = -atan2(y - ((magYMax + magYMin) / 2), x - ((magXMax + magXMin) / 2)) * 180.0 / M_PI;
if(headingNc < 0) headingNc += 360.0;
GPSValues.Heading = headingNc;
#endif
}
в GPS_DJI.h после строки float get_dji_down(void); добавляем строку:
int16_t magXMin;
int16_t magXMax;
int16_t magYMin;
int16_t magYMax;
double headingNc;// heading (not tilt compensated in degrees
ну и последнее в OSD_Config.h после строки #define GPS_PROTOCOL_DJI добавляем строку:
#define DJI_HEADING_FROM_MAG
Алексей, отличная работа! Может еще можно выложить готовые исходники со всеми модами?
ты сначала попробуй а потом “отличная работа” 😃 Я лично еще толком не тестил, только в руках коптер поносил по квартире и все
Все исходники выложить не могу т.к. у меня от оригинала там уже рожки и ножки остались, многое под себя переделал. Но пару файлов где максимальное количество изменений GPS_DJI.ino и GPS_DJI.h выложу
А что еще под себя переделал, такого что остальным не подойдет?
Сори за нубство, не вдавался в копание исходников, просто заливал hex и шрифты.
Поправьте, где не прав:
Хочу проверить например мод alezz-а со стрелкой по компасу.
Имею уже действующую ОСД, подключение “easy”.
- Скачиваю файл MinNazaOsd_r75.zip (еле раскопал, может есть свежее версия?).
- Изменяю\заменяю GPS_DJI.ino и GPS_DJI.h.
- С помощью ардуиновской IDE напрямую компилирую и заливаю прошивку.
Хочу подключить еще напряжение батареи (только это, без остальной пайки на плату), без датчика напряжения, напрямую к батарее.
4. Нужен делитель с другими резисторами. 4,7к и 100к (примерно в 20 раз понизим напряжение)
5. Прямо в файле FlightBatt.h правлю параметр #define VOLT_DIV_RATIO, подбирая калибровку напряжения.
6. Компилирую\заливаю\проверяю значение напряжения на ОСД. При необходимости повторяю п.5-6.
А что еще под себя переделал, такого что остальным не подойдет?
кому то пойдет, кому-то нет. Например: у меня включен радар, но отключена калибровка напряжение батареи (коэф подбирал руками и зашил прямо в исходник), при уровне газа >30% переключаются панели
- Скачиваю файл MinNazaOsd_r75.zip (еле раскопал, может есть свежее версия?).
- Изменяю\заменяю GPS_DJI.ino и GPS_DJI.h.
- С помощью ардуиновской IDE напрямую компилирую и заливаю прошивку.
- да, r75 самая новая официальная
- да, плюс добавляешь строку включения компаса в OSD_Config.h (см. выше)
- компилируешь ардуиновской IDE, заливаешь в ОСДшку конфигуратором идущим в комплекте минназаосд
при уровне газа >30% переключаются панели
А для чего это?