MultiWii
имея вторую плату ардуино на 328 меге можно сделать переходник?
а такое через i2c можно зацепить?
имея вторую плату ардуино на 328 меге можно сделать переходник?
Я делал из ардуино про мини
Подскажите пожалуйста, хочу добавить свой функционал в Мультивий. Мне нужно сделать булевую переменную, которая будет служить флагом и записать её значение в EEPROM. При подачи питания на плату, мне нужно её считать. Где её нужно инициализировать и как читать\писать в неё значения?
eeprom.ino.
засунте ее в структуру общую, ну или допишите отдельно свое
eeprom.ino.
засунте ее в структуру общую, ну или допишите отдельно свое
Можно по подробнее, или пример из этой парафии.
Мне на офф сайте подсказали засунуть переменную в структуру conf, а как записать данные в нее когда я хочу, например по комбинации стыков, я не знаю.
А потом при включении питания она должна опрашиватся первой и сверятся со значением.
Я типа хочу настроить калибровку ESC по комбинации стыков и при следующем включении питания, оно и будет происходить и сбрасывать флаг переменной.
Я делал из ардуино про мини
где взять код?
спасибо
Ищем в мултивий.ино:
// ************************
// EEPROM Layout definition
// ************************
static uint8_t dynP8[3], dynD8[3];
static struct {
uint8_t checkNewConf;
uint8_t P8[PIDITEMS], I8[PIDITEMS], D8[PIDITEMS];
uint8_t rcRate8;
uint8_t rcExpo8;
uint8_t rollPitchRate;
uint8_t yawRate;
uint8_t dynThrPID;
uint8_t thrMid8;
uint8_t thrExpo8;
int16_t accZero[3];
int16_t magZero[3];
int16_t angleTrim[2];
uint16_t activate[CHECKBOXITEMS];
uint8_t powerTrigger1;
#ifdef FLYING_WING
uint16_t wing_left_mid;
uint16_t wing_right_mid;
#endif
#ifdef TRI
uint16_t tri_yaw_middle;
#endif
#if defined HELICOPTER || defined(AIRPLANE)|| defined(SINGLECOPTER)|| defined(DUALCOPTER)
int16_t servoTrim[8];
#endif
#if defined(GYRO_SMOOTHING)
uint8_t Smoothing[3];
#endif
} conf;
перед } conf; вставляем вашу переменную, uint8_t test; как пример
при подаче питания - она загрузится, доступ - a = conf.test;
для схранения вызываем родную writeParams(0);
www.dropbox.com/s/ndyggqyd035wl5r/MultiWii.zip?dl=…
Ссылочка на мой проект. Вроде все сделал, но работать оно нехочет, без отладки очень стремно писать код. Посмотрите пожалуйста, буду весьма благодарный.
Все что вставил в код позначены тегами для препроцесора ESC_CALIB_ON_MAX_THROTTLE
Не выходит у меня. Установил на debug[0] - значение переменной которая должна писатся в EEPROM. Включил полетную плату, поднял стык газа до упора и в гуи дебаг 0 показывает что переменная поменяла значение из 0 на 1. На debug[1] - установил считывание той же переменной при загрузке платы, в секцию Сетингс, но переменная опять 0. Куда копать?
так после записи значения в переменную вы вызвали ф-цию сохранения еепром?
П.С. просмотрел код…
походу нашел затык:
#if defined (ESC_CALIB_ON_MAX_THROTTLE)
if (conf.esccalibstatus == true)
{
escCalibration();
}
#endif
вы как додумались запихнуть данный код ДО чтения из еепром?
если конкретики - вы ее засунули после чтения глоб настроек, а переменная находиться в структуре основных настроек, чтение которой на 27 строк позже вашей вставки
Вопрос такой:
делал ли кто OSD из MultiWii
Вопрос такой:
делал ли кто OSD из MultiWii
а по конкретнее?
Для OSD хватит и arduino pro mini. Ищите DIY OSD сдесь или на рсгрупс.
если конкретики - вы ее засунули после чтения глоб настроек, а переменная находиться в структуре основных настроек, чтение которой на 27 строк позже вашей вставки
Да, пересунул цикл на пару позиций вниз и все заработало. Переменная считалась. Правда инициализация регулей происходит скорей, чем доходит до обработки моего цикла. Буду шаманить дальше. Спасибо за помощь!
где взять код?
спасибо
Правда инициализация регулей происходит скорей, чем доходит до обработки моего цикла.
опять же ничего сложного не вижу. чтение конфига из еепром действительно происходит довольно поздно.
для срабатывания в самом начале - чтобы не тащить всю структуру - сделайте свою запись по типу globalConf (там меньше переменных и проще разобраться) и читайте при старте
П.С. смотрите не наползите на другие данные - я не зря посоветовал сделать по типу - там вначале рассчитываеться смещение пустого места в зависимости от размера прочих структур в еепром
Заметил за мультивием одну особенность, когда дергаеш стыком по Yaw, аппарат почему то подпрыгивает вверх. Пробовал Мегапират, там такого ефекта нет. Аппарат ровно поворачевается и никуда не прыгает. Такое было даже на Маховии, приходилось аппарат вечно ловить стыками. Это как то лечится?
Это как то лечится?
У меня такое было когда винты не в одной плоскости вращались.
Заметил за мультивием одну особенность, когда дергаеш стыком по Yaw, аппарат почему то подпрыгивает вверх. Пробовал Мегапират, там такого ефекта нет. Аппарат ровно поворачевается и никуда не прыгает. Такое было даже на Маховии, приходилось аппарат вечно ловить стыками. Это как то лечится?
А с центром тяжести все хорошо? Такое может быть (и было) когда ЦТ “не на месте”. Т.е. не совпадает с пересечением диагоналей многоугольника, образованного осями моторов.
А с центром тяжести все хорошо? Такое может быть (и было) когда ЦТ “не на месте”. Т.е. не совпадает с пересечением диагоналей многоугольника, образованного осями моторов.
У меня самопильная рама типа
Но есть одно Но, на мегапирате коптер поворачевался четко по своей оси, без лишних телодвижений
редактируемый файлик в lay (sprint layout) готовый к печати, на картинке обозначены возможные места подпайки для первоначальной прошивки процессора.
Полноценный мультивии с дополнительными выходами для подключения блютуза, сонара и т.д, создан исключительно для использования в стоковых приемниках Turnigy 9x V2, на борту стоит стабилизатор напряжения для питания 3,3 датчиков, а так же конвертер логических уровней, он не отключаем, в случае наличия сенсоров с бортовым LLC его просто можно не распаивать равно как и стабилизатор ,
Для использования внутри приемника необходимо отпаять сигнальные линии каналов с 5го по 8ой и соединить их с выводами платы необходимыми для вашей конфигурации(tri \quad) в произвольном порядке, для гексы соответственно нужно отрезать еще пару контактов. Аналогично на плате выведены каналы управления плюс Aux 1 и Aux2 для переключения режимов полета
плата проверена, полностью рабочая.
Дима, хочу повторить по вашей плате. не могли бы вы описать подключение датчиков. хочу прикрутить HMC5883L,MPU-6050(заказал как платы). и еще вопрос Sprint Layout 5 существует бесплатная версия на английском, спасибо.