MultiWii

Hight

Подскажите, кто подключал сонар.
Вы делали конвертер Echo to I2C или подключали напрямую к плате? Я так полагаю, чтобы подключится напрямую нужно как минимум одно внешнее прерывание чтобы поймать фронт?

кстати, пока субъективно, но коптер полетел лучше когда я настроил аксель следующим образом:

  i2c_writeReg(ADXL345_ADDRESS,0x31,0x0A);   // register: DATA_FORMAT -- value: Set bits 3(full range) and  (+/- 8g-range)
  i2c_writeReg(ADXL345_ADDRESS,0x2C,0x0C);  //  register: BW_RATE     -- value: rate=400hz, bw=200hz

Пока я в этом не очень разобрался, поэтому вопрос. Почему по дефолту аксель настроен на 50гц? и почему выбирается диапазон ±16g разве это не ведет к уменьшению точности? (откуда там такие перегрузки)
ещё вопрос, как посчитали
acc_1G = 265;
потому что даташите написано что при ±16g на full range разрешение 13бит

zerokul

Подскажите имею такой девайсы
платка Crius Multiwii Lite v0.2
и Oled дисплейчик
подскажите в какой порт его подулючать?
что касательно прошивки вроде все расскоментировано.

varvar
zerokul:

подскажите в какой порт его подулючать?

Вам без паяльника не обойтись, его цепляют на i2c, а на Вашей плате разъемчик отсутствует.

У меня тоже очередные вопросы имеются - перестраиваю плату на летающее крыло, 500гц на ESC для него явный перебор, это:

#define USE_THROTTLESERVO // For use of standard 50Hz servo on throttle.

не помогает.
Что нужно поменять, чтобы было 50 гц?

И второй затык с армом - не нужен он на самолете, тем более планирующем. Совсем не хотелось бы, чтобы после очередного отключения двигатель не включился.
И третий - чего только не комментировал и не менял - минимальная длина импульса на мотор 1150
#define MINTHROTTLE 1000

не помогает.

SergDoc

eeprom почистите и будет вам счастье, а то оно на новые дефайны не смотрит, а смотрит, что у него в еепром прописано, а там старые значения…

varvar
SergDoc:

eeprom почистите и будет вам счастье, а то оно на новые дефайны не смотрит, а смотрит, что у него в еепром прописано, а там старые значения…

К сожалению, полное счастье не наступило. Минимальная длина пульса установилась, а вот что делать с частотой и армом - по-прежнему вопрос. Тупое решение - сделать арм при любом положении AUX1 не работает.

varvar

Что-то со счастьем сегодня напряженка.
Даже пытаюсь переназначить выводы - и то не работает

#define PRI_SERVO_FROM 5 // use servo from 1 to 2
#define PRI_SERVO_TO 6

С мотором тоже - вроде как надо подменить мотор сервой здесь

    #if defined(FLYING_WING)
      motor[0] = rcCommand[THROTTLE];
      if (f.PASSTHRU_MODE) {// do not use sensors for correction, simple 2 channel mixing
        servo[0]  = PITCH_DIRECTION_L * (rcData[PITCH]-MIDRC) + ROLL_DIRECTION_L * (rcData[ROLL]-MIDRC);
        servo[1]  = PITCH_DIRECTION_R * (rcData[PITCH]-MIDRC) + ROLL_DIRECTION_R * (rcData[ROLL]-MIDRC);
      } else { // use sensors to correct (gyro only or gyro+acc according to aux1/aux2 configuration
        servo[0]  = PITCH_DIRECTION_L * axisPID[PITCH]        + ROLL_DIRECTION_L * axisPID[ROLL];
        servo[1]  = PITCH_DIRECTION_R * axisPID[PITCH]        + ROLL_DIRECTION_R * axisPID[ROLL];
      }
      servo[0]  = constrain(servo[0] + conf.wing_left_mid , WING_LEFT_MIN,  WING_LEFT_MAX );
      servo[1]  = constrain(servo[1] + conf.wing_right_mid, WING_RIGHT_MIN, WING_RIGHT_MAX);
    #endif

пытаюсь отключить массив моторов и подменить дополнительной сервой

 // #define NUMBER_MOTOR     1
  #define NUMBER_MOTOR     0

и все равно не выходит каменный цветок, даже GUI перестает все отображать 😦

varvar

Убил полностью исходники, начал править по новой

#elif defined(FLYING_WING)
  #define NUMBER_MOTOR     0
  #define PRI_SERVO_FROM   1 // use servo from 1 to 2
  #define PRI_SERVO_TO     3

и так

    #if defined(FLYING_WING)
      //motor[0] = rcCommand[THROTTLE];
      if (!f.ARMED){
        servo[2] =  MINCOMMAND; // Kill throttle when disarmed
      } else {
        servo[2] =  rcData[THROTTLE];
      }

      if (f.PASSTHRU_MODE) {// do not use sensors for correction, simple 2 channel mixing
        servo[0]  = PITCH_DIRECTION_L * (rcData[PITCH]-MIDRC) + ROLL_DIRECTION_L * (rcData[ROLL]-MIDRC);
        servo[1]  = PITCH_DIRECTION_R * (rcData[PITCH]-MIDRC) + ROLL_DIRECTION_R * (rcData[ROLL]-MIDRC);
      } else { // use sensors to correct (gyro only or gyro+acc according to aux1/aux2 configuration
        servo[0]  = PITCH_DIRECTION_L * axisPID[PITCH]        + ROLL_DIRECTION_L * axisPID[ROLL];
        servo[1]  = PITCH_DIRECTION_R * axisPID[PITCH]        + ROLL_DIRECTION_R * axisPID[ROLL];
      }
      servo[0]  = constrain(servo[0] + conf.wing_left_mid , WING_LEFT_MIN,  WING_LEFT_MAX );
      servo[1]  = constrain(servo[1] + conf.wing_right_mid, WING_RIGHT_MIN, WING_RIGHT_MAX);
    #endif

теперь почему-то заработало.
Но при дизарме мотор включается на максимум. Хоть на приемник напрямую мотор вешай, но хотелось бы обойтись приемником с SPPM только.
Ну и в GUI mot больше не отображается.

Braun

Подскажите пожалуйста.
ведь можно одновременно подключить бортовой аккумулятор и usb кабель, чтобы в GUI наблюдать обороты двигателей?

crand
Braun:

можно одновременно подключить бортовой аккумулятор и usb кабель

Да, можно. Только не обороты, а уровень сигнала на каждом двигателе.

Ринго
Raptor_SK:

В прошивке, есть строчка для активизации управления (движками) с помощью ШИМ, а на выходы контроллера ставятся транзисторные ключи…

Где про это прочитать ? также по какой схеме ключи запаивать ?
Мосфеты нужны N канальные или P канальные ?

Ринго

Это фотка из инета как выглядит готовое .
У меня обычная мультивий плата криус. Там нет ключей !

zerokul

очередной вопрос:разёмы допоял экранчик ожил,и на этом все закончилось,на экране горит только версия прошивки и тип коптера
Вопрос: как зайти в меню настройки,может чтото снова надо чтото расскоментировать?

Tigra74
Ринго:

Это фотка из инета как выглядит готовое .
У меня обычная мультивий плата криус. Там нет ключей !

Может эту строчку надо расскомментировать?

/********************************** PWM Setup **********************************/

//#define HWPWM6

А ключи-выходной каскад как в коллекторном регуле без реверса?
и
N-канальные ключи

zerokul:

,на экране горит только версия прошивки и тип коптера

Должна загореться и тухнуть
Паяли кондёр и резистор на резет дисплея?

zerokul

Посибки получилось.
вот ешё проблемка зачастую снег на экране,как лечить?

Tigra74
zerokul:

Посибки получилось.
вот ешё проблемка зачастую снег на экране,как лечить?

Паяли кондёр и резистор на резет дисплея?

stspartak
zerokul:

вот ешё проблемка зачастую снег на экране,как лечить?

Было так же. Впаял резистор на 120 Ом по питанию и все заработало.

zerokul
stspartak:

Было так же. Впаял резистор на 120 Ом по питанию и все заработало.

А пальцем тыкнуть на фото можеш куда паять?