MultiWii

k0der

имея вторую плату ардуино на 328 меге можно сделать переходник?

а такое через i2c можно зацепить?

serenya
k0der:

имея вторую плату ардуино на 328 меге можно сделать переходник?

Я делал из ардуино про мини

Leon11t

Подскажите пожалуйста, хочу добавить свой функционал в Мультивий. Мне нужно сделать булевую переменную, которая будет служить флагом и записать её значение в EEPROM. При подачи питания на плату, мне нужно её считать. Где её нужно инициализировать и как читать\писать в неё значения?

mataor

eeprom.ino.
засунте ее в структуру общую, ну или допишите отдельно свое

Leon11t
mataor:

eeprom.ino.
засунте ее в структуру общую, ну или допишите отдельно свое

Можно по подробнее, или пример из этой парафии.
Мне на офф сайте подсказали засунуть переменную в структуру conf, а как записать данные в нее когда я хочу, например по комбинации стыков, я не знаю.
А потом при включении питания она должна опрашиватся первой и сверятся со значением.
Я типа хочу настроить калибровку ESC по комбинации стыков и при следующем включении питания, оно и будет происходить и сбрасывать флаг переменной.

k0der
serenya:

Я делал из ардуино про мини

где взять код?
спасибо

mataor

Ищем в мултивий.ино:


// ************************
// 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);

Leon11t

www.dropbox.com/s/ndyggqyd035wl5r/MultiWii.zip?dl=…
Ссылочка на мой проект. Вроде все сделал, но работать оно нехочет, без отладки очень стремно писать код. Посмотрите пожалуйста, буду весьма благодарный.
Все что вставил в код позначены тегами для препроцесора ESC_CALIB_ON_MAX_THROTTLE

Leon11t

Не выходит у меня. Установил на debug[0] - значение переменной которая должна писатся в EEPROM. Включил полетную плату, поднял стык газа до упора и в гуи дебаг 0 показывает что переменная поменяла значение из 0 на 1. На debug[1] - установил считывание той же переменной при загрузке платы, в секцию Сетингс, но переменная опять 0. Куда копать?

mataor

так после записи значения в переменную вы вызвали ф-цию сохранения еепром?

П.С. просмотрел код…
походу нашел затык:

#if defined (ESC_CALIB_ON_MAX_THROTTLE)

  if (conf.esccalibstatus == true)
  {
	  escCalibration();
  }
#endif

вы как додумались запихнуть данный код ДО чтения из еепром?

если конкретики - вы ее засунули после чтения глоб настроек, а переменная находиться в структуре основных настроек, чтение которой на 27 строк позже вашей вставки

k0der

Вопрос такой:
делал ли кто OSD из MultiWii

bond62
k0der:

Вопрос такой:
делал ли кто OSD из MultiWii

а по конкретнее?

koder76

Для OSD хватит и arduino pro mini. Ищите DIY OSD сдесь или на рсгрупс.

Leon11t
mataor:

если конкретики - вы ее засунули после чтения глоб настроек, а переменная находиться в структуре основных настроек, чтение которой на 27 строк позже вашей вставки

Да, пересунул цикл на пару позиций вниз и все заработало. Переменная считалась. Правда инициализация регулей происходит скорей, чем доходит до обработки моего цикла. Буду шаманить дальше. Спасибо за помощь!

mataor
Leon11t:

Правда инициализация регулей происходит скорей, чем доходит до обработки моего цикла.

опять же ничего сложного не вижу. чтение конфига из еепром действительно происходит довольно поздно.
для срабатывания в самом начале - чтобы не тащить всю структуру - сделайте свою запись по типу globalConf (там меньше переменных и проще разобраться) и читайте при старте
П.С. смотрите не наползите на другие данные - я не зря посоветовал сделать по типу - там вначале рассчитываеться смещение пустого места в зависимости от размера прочих структур в еепром

Leon11t

Заметил за мультивием одну особенность, когда дергаеш стыком по Yaw, аппарат почему то подпрыгивает вверх. Пробовал Мегапират, там такого ефекта нет. Аппарат ровно поворачевается и никуда не прыгает. Такое было даже на Маховии, приходилось аппарат вечно ловить стыками. Это как то лечится?

natol
Leon11t:

Это как то лечится?

У меня такое было когда винты не в одной плоскости вращались.

AndyGr
Leon11t:

Заметил за мультивием одну особенность, когда дергаеш стыком по Yaw, аппарат почему то подпрыгивает вверх. Пробовал Мегапират, там такого ефекта нет. Аппарат ровно поворачевается и никуда не прыгает. Такое было даже на Маховии, приходилось аппарат вечно ловить стыками. Это как то лечится?

А с центром тяжести все хорошо? Такое может быть (и было) когда ЦТ “не на месте”. Т.е. не совпадает с пересечением диагоналей многоугольника, образованного осями моторов.

Leon11t
AndyGr:

А с центром тяжести все хорошо? Такое может быть (и было) когда ЦТ “не на месте”. Т.е. не совпадает с пересечением диагоналей многоугольника, образованного осями моторов.

У меня самопильная рама типа
Но есть одно Но, на мегапирате коптер поворачевался четко по своей оси, без лишних телодвижений

Alibaba
Dimm168pin:

редактируемый файлик в lay (sprint layout) готовый к печати, на картинке обозначены возможные места подпайки для первоначальной прошивки процессора.

Полноценный мультивии с дополнительными выходами для подключения блютуза, сонара и т.д, создан исключительно для использования в стоковых приемниках Turnigy 9x V2, на борту стоит стабилизатор напряжения для питания 3,3 датчиков, а так же конвертер логических уровней, он не отключаем, в случае наличия сенсоров с бортовым LLC его просто можно не распаивать равно как и стабилизатор ,

Для использования внутри приемника необходимо отпаять сигнальные линии каналов с 5го по 8ой и соединить их с выводами платы необходимыми для вашей конфигурации(tri \quad) в произвольном порядке, для гексы соответственно нужно отрезать еще пару контактов. Аналогично на плате выведены каналы управления плюс Aux 1 и Aux2 для переключения режимов полета

плата проверена, полностью рабочая.

Дима, хочу повторить по вашей плате. не могли бы вы описать подключение датчиков. хочу прикрутить HMC5883L,MPU-6050(заказал как платы). и еще вопрос Sprint Layout 5 существует бесплатная версия на английском, спасибо.