micro / minimOSD для NAZA
ИИИИ? Тихо хихикает- что де одна она знает где?
что курил? Такой вопрос, как по твоему ОСД рассчитывает расстояние от текущей точки в пространства до точки дом? Найди ответ а потом только читай ниже.
Теперь мой ответ в двух словах: и у ОСД и у назы есть свой процессор, есть своя память (и пзу и озу), есть свой программный код, но данные они действительно получают по одной шине из одного источника - так называемого грибка. Это поток сырых данных с данными GPS и направлением магнитного компаса, все, больше ничего. Показаний барометра в этом потоке нет, барометр внутри назы поэтому эти данные минназаОСД получить не может (в отличии от родного iosd который впрочем работает совсем по другой шине). Но это не важно, важно то что все расчеты наза и minnazaosd - фиксация точки дом, скорость, направление, расстояние и т.д. ведут абсолютно независимо друг от друга, по совершенно разным алгоритмам, хотя и на основе одних данных. Как уже сказали выше, к минназаосд можно просто подключить модуль GPS (грибок) подать на него 5В и бегать по полю без назы, без регуляторов и моторов, при этом ОСДшка будет работать как ни в чем ни бывало, вполне корректно отображая скорость твоего бега и расстояние до “дома”
Хочешь верь, хочешь не верь, объяснять что-то дальше не вижу смысла
как по твоему ОСД рассчитывает расстояние от текущей точки в пространства до точки дом? Найди ответ
Как калькулятор. 456-455=1
456- из Назы
455- из GPS
1- показывает тебе
Ну и стрелку ,для наглядности. Почитай соседние ветки (minimOSD) , я тебя прошу. И умнее будешь выглядеть , и вопросов будет меньше
Так проще?
Любое ОСД с штатным ЖПС имеет точку дома и расстояние до нее, без всяких полетных контроллеров. Начиная с самого дешевого G-OSD c хобита.
При этом все ОСД построены совершенно одинаковы, и это не устройство отображения информации, а это процессор + устройство отображения информации, и все операции оно в состоянии выполнять самостоятельно.
И потом вам уже и код показали, и сказали, что ОСД будет работать без Назы и показывать точку Дом. Никак не доходит?
Так что несете полную чухню.
Как калькулятор. 456-455=1
456- из Назы
455- из GPS
1- показывает тебе
Ну и стрелку ,для наглядности. Почитай соседние ветки (minimOSD) , я тебя прошу. И умнее будешь выглядеть , и вопросов будет меньше
Так проще?
Это же по какому проводу ОСД может принять от Назы “456”, если в ОСД приходит только ТХ от GPS ?
Это просто больные фантазии самоуверенных дилетантов с отсутствием элементарной логики. Он думает что в TX с любой стороны можно отправлять данные. 😃
я наконец-то понял главную ошибку 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
Алексей, отличная работа! Может еще можно выложить готовые исходники со всеми модами?