MultiWii

qdfly

Ага, калибровка помогла. И если ваншот включен в скетче, он должен быть включен и джампером.

bond62

Добрый день! Кто нибудь подключал Buzzer к Crius AIOP V2 версия ПО 2.3
подключаю к пин32осциллограф ( раскоментирую #define BUZZER, #define PILOTLAMP)
, на выводе короткие импульсы ( короче 1 миллисекунды) постоянно на которые пищалка реагирует щелчками ( если подаю на пищалку 5 вольт пищит как надо). понятно что импульсы короткие. есть реакция на арминг но все как то в виде дополнительных щелчков на фоне постоянно идущих щелчков.
Что я не так делаю?

bond62
bond62:

Добрый день! Кто нибудь подключал Buzzer к Crius AIOP V2 версия ПО 2.3
подключаю к пин32осциллограф ( раскоментирую #define BUZZER, #define PILOTLAMP)
, на выводе короткие импульсы ( короче 1 миллисекунды) постоянно на которые пищалка реагирует щелчками ( если подаю на пищалку 5 вольт пищит как надо). понятно что импульсы короткие. есть реакция на арминг но все как то в виде дополнительных щелчков на фоне постоянно идущих щелчков.
Что я не так делаю?

сам себе отвечу ( может ещё кому пригодится)
надо сделать так
в def.h

#if defined(MEGA)
#define LEDPIN_PINMODE pinMode (13, OUTPUT);pinMode (30, OUTPUT);
#define LEDPIN_TOGGLE PINB |= (1<<7); PINC |= (1<<7);
#define LEDPIN_ON PORTB |= (1<<7); PORTC |= (1<<7);
#define LEDPIN_OFF PORTB &= ~(1<<7);PORTC &= ~(1<<7);
// #define BUZZERPIN_PINMODE pinMode (32, OUTPUT); (закоментировать)
#define BUZZERPIN_PINMODE DDRH|=(1<<5);//For Buzzer on D8 (здесь изменения)
#if defined PILOTLAMP
#define PL_PIN_ON PORTC |= 1<<5;
#define PL_PIN_OFF PORTC &= ~(1<<5);
#else
//#define BUZZERPIN_ON PORTC |= 1<<5; (закоментировать)
//#define BUZZERPIN_OFF PORTC &= ~(1<<5); (закоментировать)
#define BUZZERPIN_ON PORTH |= 1<<5;//For Buzzer on D8 (здесь изменения)
#define BUZZERPIN_OFF PORTH &= ~(1<<5);//For Buzzer on D8 (здесь изменения)
#endif

в конфиге активировать buzzer
и на D8 можно вешать пищалку ( все это относится к ПО 2.3 конфигурация -квадр) с другими конфигурациями не пробовал

k0der

вопрос такой. можно ли на 328 меге задействовать для gps виртуальный GPS (второй). что бы по первому считывать данные?

koder76

I2C переходник Вам в помощь. Верх этой страницы посмотрите.

k0der

любой или есть предпочтения?(или несовместимые)

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

ВлАс
k0der:

любой или есть предпочтения?(или несовместимые)

если не умеешь программировать, то лучше выбрать из списка (в коде)

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 строк позже вашей вставки

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