Специальные цены   новые товары
+ Ответить в теме
Страница 17 из 165 ПерваяПервая ... 7 15 16 17 18 19 27 ... ПоследняяПоследняя
Показано с 641 по 680 из 6569

Создание собственной системы стабилизации

Тема раздела Квадрокоптеры. Общие вопросы в категории Квадрокоптеры и мультироторы; Сообщение от SergDoc Сообщение от rual Это серьезно, при нуле там режим СПИ включается! Нет меняется адрес I2C Да, точно! ...

  1. #641

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,472
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Сообщение от rual Это серьезно, при нуле там режим СПИ включается! Нет меняется адрес I2C
    Да, точно! Но всё равно, этож читать он не понятно что будет...

  2.  
  3. #642

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Вот с какими показаниями сейчас живём, на баро не смотреть он дохлый:

    Цитата Сообщение от rual Посмотреть сообщение
    Но всё равно, этож читать он не понятно что будет...
    уже исправил вот и тестю
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: ТРИ.jpg‎
Просмотров: 146
Размер:	51.1 Кб
ID:	687610  

  4. #643

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Ну что, подлетнул я чувства немного смешанные, видео не получилось - пригласил друга поснимать, а он чёт в собственном фотике не разобрался сказал что снял, а видео мы так и не нашли есть пару фоток, и так:
    1. Летать я разучился, в особенности работать газом из пяти раз один только нормально посадил (остальные с подпрыгиванием)
    2. На удивление аппарат ведёт себя хорошо не смотря на порывы ветра - пару раз отпускал полностью стики давольно на длительное врея (летал в левеле но без баро)
    3. Надо покурить пиды
    4. с сервой проблемы - надо сравнить мультивии 1.9 и 2.0, общался с Глебом SovGVD, у него на трёшке таже беда была на 2.0, а на 1.9 всё нормально, так что прежде чем менять серву лучше поэкспериментирую
    5. купить новый барометр и посмотреть что ж за монстры такие кабаки да девки как работает AltHold
    6. Самое приятное ГЛЮКА НЕТ!!!
    В общем доволен...
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: IMG_0929.jpg‎
Просмотров: 91
Размер:	107.9 Кб
ID:	687696   Нажмите на изображение для увеличения
Название: IMG_0930.jpg‎
Просмотров: 54
Размер:	75.3 Кб
ID:	687697  

  5. #644

    Регистрация
    23.02.2012
    Адрес
    Msk
    Возраст
    40
    Сообщений
    214
    Записей в дневнике
    11
    Кривую газа поправь, чтобы в точке висения она была максимально плавной и навык сразу вернется -)

  6.  
  7. #645

    Регистрация
    22.08.2011
    Адрес
    Калининград
    Возраст
    35
    Сообщений
    947
    Записей в дневнике
    2
    Информация к размышлению
    По поводу MPX баро зарубежные коллеги с ними экспериментировали и выяснили, что очень критичны они к шумам по питания, проблема решается отдельной шиной питания с собственным регулятором, утверждают, что не стоит его использование затраченных усилий.

  8. #646

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,472
    Цитата Сообщение от Razek Посмотреть сообщение
    MPX баро зарубежные коллеги с ними экспериментировали и выяснили
    в smaltime вроде такие датчики... Есть ссылка на картинки шумов?



    Цитата Сообщение от SergDoc Посмотреть сообщение
    с сервой проблемы
    может ШИМ на неё с мусором идёт, попробуй поставить ПИД в нули и посмотри.

    Цитата Сообщение от SergDoc Посмотреть сообщение
    В общем доволен...
    Это главное!

    Сергей (SergDoc), дай, пож, ссылку на исходники или сам файл с процедурой связи с Вийным Гуем и ссылку на Гуй, который с этим кодом работает. А то, что то код коммуникатора вия, взятый с оф.сайта вия, никак не хочет вязаться с гуем...

  9. #647

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Исходники но там надо смотреть ТС сломал в последних работу с гуи

    MultiWii_2_1 сам мультивий и гуи рабочее

    Mw-WinGUI-2.1 гуи которым пользуюсь

    вот сам serial.c
    вот cli.c для настроек через терминал

    У меня кстати серву не показывает...
    Последний раз редактировалось SergDoc; 04.09.2012 в 16:55.

  10.  
  11. #648

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,472
    Цитата Сообщение от SergDoc Посмотреть сообщение
    У меня кстати серву не показывает...
    Где не показывает? В гуе?

    Гироскоп исправился? Прошивка для проверки нужна?

  12. #649

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    да в гуи - потом как нибудь поковыряю, гира да, больше не беспокоит всё остальное допилю по тихоньку, если на выходные погода не подгадит то выберусь на природу кстати я ещё не включал Head Free

    p.s.
    Что-то мне подсказывает что контроллеру на F407 и MPU6000 суждено быть

  13. #650

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Отчитаюсь: обновился до крайней паршивки ТС:
    Из хорошего серва появилась в GUI, так же серву уже не так колбасит P=8
    нашёл причину дёргания - вибрации от самой сервы передаются по её же шнурку к контроллеру (я так предполагаю - экспериментировал) плюс лапы слишком пружинистые, надо попробовать шнурок у контроллера на карандаш намотать чтоб спираль получилась
    Из плохого - погода портится, вечером ещё ничего но кругом куча детей, а когда их загоняют то и темно (не особо страшно - коптер как новогодняя ёлка светится) и ветер сильный - буду ждать погоды.
    Надо дорисовать большую плату, чтоб до зимы изготовить, а там уже можно и программное прикручивать по тихоньку - чёт я планов настроил как Наполеон, надо ж ещё и с маленькой с микшером разобраться - хочу и сервы на подвес запустить, а то по ходу в трикоптере и при стандартном приёмнике они не работают...

  14. #651

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    "Выкинул" я серву зря потраченные деньги, хотя может при других обстоятельствах (другом поворотном механизме) она и будет работать, но прицепленная прямо на луч - никогда в жизни.
    Причина:
    Отклеил наклейки бумажные, а там движок за подлицо с корпусом, он мне и мосх сума и сводил.
    Поставил старую серву - небо и земля, никаких дёрганий, подлетнул сегодня даже в сильный ветер (порывами) на прошлом контроллере я себе такого не позволял (ну очень сегодня хотелось) аппарат без повреждений вернулся домой, умудряется висеть даже в акро, ну только плывёт по ветру, в левеле пытается сопротивлятся ветру - красота.
    С приёмником всёже есть проблемы, секунд 15-20 аппарат жил своей жизнью, но всё обошлось, надо копить денюжку и срочно менять...

  15. #652

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    О кстати, до замены сервы, я увидел сценарий того как умер прежний контроллер. При неудачной посадке хвостовым винтом зацепил землю, а так как задний мотор крепится у меня только стяжками - его срывает и он направляется прямо в центр рамы , с нынешним контроллером всё обошлось

  16. #653

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,472
    Цитата Сообщение от SergDoc Посмотреть сообщение
    в левеле пытается сопротивлятся ветру - красота.
    это интересно, алгоритм компенсирует линейные ускорения ?

  17. #654

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Нет скорей всего это побочный эффект от парусности и ещё не настроенных толком ПИДов - переруливание, но факт остаётся фактом, в акро летит по ветру, а в левеле нет и если порыв стихает то некоторое время летит против ветра пока не выравняется, акро я настроил - держится как хорошо настроенный КУК доволен, а вот с левелом пока ещё борюсь, в основном мне мешала серва, ночью попробую запустить НЛО , о пока светло посмотреть провода между домами чтоб не вписатся в них....

    Всего ИМУ то
    Код:
    #include "board.h"
    #include "mw.h"
    
    int16_t gyroADC[3], accADC[3], accSmooth[3], magADC[3];
    int16_t acc_25deg = 0;
    int32_t  BaroAlt;
    int16_t  sonarAlt;           //to think about the unit
    int32_t  EstAlt;             // in cm
    int16_t  BaroPID = 0;
    int32_t  AltHold;
    int16_t  errorAltitudeI = 0;
    float magneticDeclination = 0.0f; // calculated at startup from config
    
    // **************
    // gyro+acc IMU
    // **************
    int16_t gyroData[3] = { 0, 0, 0 };
    int16_t gyroZero[3] = { 0, 0, 0 };
    int16_t angle[2] = { 0, 0 };     // absolute angle inclination in multiple of 0.1 degree    180 deg = 1800
    
    static void getEstimatedAttitude(void);
    
    void imuInit(void)
    {
        acc_25deg = acc_1G * 0.423f;
    
    #ifdef MAG
        // if mag sensor is enabled, use it
        if (sensors(SENSOR_MAG))
            Mag_init();
    #endif
    }
    
    
    void computeIMU(void)
    {
        uint32_t axis;
        static int16_t gyroADCprevious[3] = { 0, 0, 0 };
        int16_t gyroADCp[3];
        int16_t gyroADCinter[3];
        static uint32_t timeInterleave = 0;
        static int16_t gyroYawSmooth = 0;
    
    #define GYRO_INTERLEAVE
    
        if (sensors(SENSOR_ACC)) {
            ACC_getADC();
            getEstimatedAttitude();
        }
    
        Gyro_getADC();
    
        for (axis = 0; axis < 3; axis++) {
    #ifdef GYRO_INTERLEAVE
            gyroADCp[axis] = gyroADC[axis];
    #else
            gyroData[axis] = gyroADC[axis];
    #endif
            if (!sensors(SENSOR_ACC))
                accADC[axis] = 0;
        }
        timeInterleave = micros();
        annexCode();
    #ifdef GYRO_INTERLEAVE
        if ((micros() - timeInterleave) > 650) {
            annex650_overrun_count++;
        } else {
            while ((micros() - timeInterleave) < 650);  // empirical, interleaving delay between 2 consecutive reads
        }
    
        Gyro_getADC();
        for (axis = 0; axis < 3; axis++) {
            gyroADCinter[axis] = gyroADC[axis] + gyroADCp[axis];
            // empirical, we take a weighted value of the current and the previous values
            gyroData[axis] = (gyroADCinter[axis] + gyroADCprevious[axis]) / 3;
            gyroADCprevious[axis] = gyroADCinter[axis] / 2;
            if (!sensors(SENSOR_ACC))
                accADC[axis] = 0;
        }
    #endif
    
        if (feature(FEATURE_GYRO_SMOOTHING)) {
            static uint8_t Smoothing[3] = { 0, 0, 0 };
            static int16_t gyroSmooth[3] = { 0, 0, 0 };
            if (Smoothing[0] == 0) {
                // initialize
                Smoothing[ROLL] = (cfg.gyro_smoothing_factor >> 16) & 0xff;
                Smoothing[PITCH] = (cfg.gyro_smoothing_factor >> 8) & 0xff;
                Smoothing[YAW] = (cfg.gyro_smoothing_factor) & 0xff;
            }
            for (axis = 0; axis < 3; axis++) {
                gyroData[axis] = (int16_t)(((int32_t)((int32_t)gyroSmooth[axis] * (Smoothing[axis] - 1)) + gyroData[axis] + 1 ) / Smoothing[axis]);
                gyroSmooth[axis] = gyroData[axis];
            }
        } else if (cfg.mixerConfiguration == MULTITYPE_TRI) {
            gyroData[YAW] = (gyroYawSmooth * 2 + gyroData[YAW]) / 3;
            gyroYawSmooth = gyroData[YAW];
        }
    }
    
    // **************************************************
    // Simplified IMU based on "Complementary Filter"
    // Inspired by http://starlino.com/imu_guide.html
    //
    // adapted by ziss_dm : http://www.multiwii.com/forum/viewtopic.php?f=8&t=198
    //
    // The following ideas was used in this project:
    // 1) Rotation matrix: http://en.wikipedia.org/wiki/Rotation_matrix
    // 2) Small-angle approximation: http://en.wikipedia.org/wiki/Small-angle_approximation
    // 3) C. Hastings approximation for atan2()
    // 4) Optimization tricks: http://www.hackersdelight.org/
    //
    // Currently Magnetometer uses separate CF which is used only
    // for heading approximation.
    //
    // Modified: 19/04/2011  by ziss_dm
    // Version: V1.1
    //
    // code size deduction and tmp vector intermediate step for vector rotation computation: October 2011 by Alex
    // **************************************************
    
    //******  advanced users settings *******************
    
    /* Set the Low Pass Filter factor for Magnetometer */
    /* Increasing this value would reduce Magnetometer noise (not visible in GUI), but would increase Magnetometer lag time*/
    /* Comment this if  you do not want filter at all.*/
    /* Default WMC value: n/a*/
    //#define MG_LPF_FACTOR 4
    
    /* Set the Gyro Weight for Gyro/Magnetometer complementary filter */
    /* Increasing this value would reduce and delay Magnetometer influence on the output of the filter*/
    /* Default WMC value: n/a*/
    #define GYR_CMPFM_FACTOR 200.0f
    
    //****** end of advanced users settings *************
    
    #define INV_GYR_CMPF_FACTOR   (1.0f / ((float)cfg.gyro_cmpf_factor + 1.0f))
    #define INV_GYR_CMPFM_FACTOR  (1.0f / (GYR_CMPFM_FACTOR + 1.0f))
    
    #define GYRO_SCALE ((1998 * M_PI)/((32767.0f / 4.0f ) * 180.0f * 1000000.0f))     // 32767 / 16.4lsb/dps for MPU3000
    
    // #define GYRO_SCALE ((2380 * M_PI)/((32767.0f / 4.0f ) * 180.0f * 1000000.0f))     //should be 2279.44 but 2380 gives better result (ITG-3200)
      // +-2000/sec deg scale
      //#define GYRO_SCALE ((200.0f * PI)/((32768.0f / 5.0f / 4.0f ) * 180.0f * 1000000.0f) * 1.5f)     
      // +- 200/sec deg scale
      // 1.5 is emperical, not sure what it means
      // should be in rad/sec
    
    typedef struct fp_vector {
        float X;
        float Y;
        float Z;
    } t_fp_vector_def;
    
    typedef union {
        float A[3];
        t_fp_vector_def V;
    } t_fp_vector;
    
    // Rotate Estimated vector(s) with small angle approximation, according to the gyro data
    void rotateV(struct fp_vector *v, float *delta)
    {
        struct fp_vector v_tmp = *v;
        v->Z -= delta[ROLL] * v_tmp.X + delta[PITCH] * v_tmp.Y;
        v->X += delta[ROLL] * v_tmp.Z - delta[YAW] * v_tmp.Y;
        v->Y += delta[PITCH] * v_tmp.Z + delta[YAW] * v_tmp.X;
    }
    
    static int16_t _atan2f(float y, float x)
    {
        // no need for aidsy inaccurate shortcuts on a proper platform
        return (int16_t)(atan2f(y, x) * (180.0f / M_PI * 10.0f));
    }
    
    static void getEstimatedAttitude(void)
    {
        uint32_t axis;
        int32_t accMag = 0;
        static t_fp_vector EstG;
        static t_fp_vector EstM;
    #if defined(MG_LPF_FACTOR)
        static int16_t mgSmooth[3];
    #endif
        static float accLPF[3];
        static uint32_t previousT;
        uint32_t currentT = micros();
        float scale, deltaGyroAngle[3];
    
        scale = (currentT - previousT) * GYRO_SCALE;
        previousT = currentT;
    
        // Initialization
        for (axis = 0; axis < 3; axis++) {
            deltaGyroAngle[axis] = gyroADC[axis] * scale;
            if (cfg.acc_lpf_factor > 0) {
                accLPF[axis] = accLPF[axis] * (1.0f - (1.0f / cfg.acc_lpf_factor)) + accADC[axis] * (1.0f / cfg.acc_lpf_factor);
                accSmooth[axis] = accLPF[axis];
            } else {
                accSmooth[axis] = accADC[axis];
            }
            accMag += (int32_t)accSmooth[axis] * accSmooth[axis];
    
            if (sensors(SENSOR_MAG)) {
    #if defined(MG_LPF_FACTOR)
                mgSmooth[axis] = (mgSmooth[axis] * (MG_LPF_FACTOR - 1) + magADC[axis]) / MG_LPF_FACTOR; // LPF for Magnetometer values
    #define MAG_VALUE mgSmooth[axis]
    #else
    #define MAG_VALUE magADC[axis]
    #endif
            }
        }
        accMag = accMag * 100 / ((int32_t)acc_1G * acc_1G);
    
        rotateV(&EstG.V, deltaGyroAngle);
        if (sensors(SENSOR_MAG))
            rotateV(&EstM.V, deltaGyroAngle);
    
        if (abs(accSmooth[ROLL]) < acc_25deg && abs(accSmooth[PITCH]) < acc_25deg && accSmooth[YAW] > 0)
            f.SMALL_ANGLES_25 = 1;
        else
            f.SMALL_ANGLES_25 = 0;
    
        // Apply complimentary filter (Gyro drift correction)
        // If accel magnitude >1.4G or <0.6G and ACC vector outside of the limit range => we neutralize the effect of accelerometers in the angle estimation.
        // To do that, we just skip filter, as EstV already rotated by Gyro
        if ((36 < accMag && accMag < 196) || f.SMALL_ANGLES_25) {
            for (axis = 0; axis < 3; axis++)
                EstG.A[axis] = (EstG.A[axis] * (float)cfg.gyro_cmpf_factor + accSmooth[axis]) * INV_GYR_CMPF_FACTOR;
        }
    
        if (sensors(SENSOR_MAG)) {
            for (axis = 0; axis < 3; axis++)
                EstM.A[axis] = (EstM.A[axis] * GYR_CMPFM_FACTOR + MAG_VALUE) * INV_GYR_CMPFM_FACTOR;
        }
    
        // Attitude of the estimated vector
        angle[ROLL] = _atan2f(EstG.V.X, EstG.V.Z);
        angle[PITCH] = _atan2f(EstG.V.Y, EstG.V.Z);
    
    #ifdef MAG
        if (sensors(SENSOR_MAG)) {
            // Attitude of the cross product vector GxM
            heading = _atan2f(EstG.V.X * EstM.V.Z - EstG.V.Z * EstM.V.X, EstG.V.Z * EstM.V.Y - EstG.V.Y * EstM.V.Z);
            heading = heading + magneticDeclination;
            heading = heading / 10;
    
            if (heading > 180)
                heading = heading - 360;
            else if (heading < -180)
                heading = heading + 360;
        }
    #endif
    }
    
    #ifdef BARO
    #define UPDATE_INTERVAL 25000   // 40hz update rate (20hz LPF on acc)
    #define INIT_DELAY      4000000 // 4 sec initialization delay
    #define BARO_TAB_SIZE   40
    
    void getEstimatedAltitude(void)
    {
        uint32_t index;
        static uint32_t deadLine = INIT_DELAY;
        static int16_t BaroHistTab[BARO_TAB_SIZE];
        static uint32_t BaroHistIdx;
        static int32_t BaroHigh = 0;
        static int32_t BaroLow = 0;
        int32_t temp32;
        int16_t last;
    
        if ((int32_t)(currentTime - deadLine) < 0)
            return;
        deadLine = currentTime + UPDATE_INTERVAL;
    
        //**** Alt. Set Point stabilization PID ****
        //calculate speed for D calculation
        last = BaroHistTab[BaroHistIdx];
        BaroHistTab[BaroHistIdx] = BaroAlt / 10;
        BaroHigh += BaroHistTab[BaroHistIdx];
        index = (BaroHistIdx + (BARO_TAB_SIZE / 2)) % BARO_TAB_SIZE;
        BaroHigh -= BaroHistTab[index];
        BaroLow  += BaroHistTab[index];
        BaroLow  -= last;
        BaroHistIdx++;
        if (BaroHistIdx >= BARO_TAB_SIZE)
            BaroHistIdx = 0;
    
        BaroPID = 0;
        //D
        temp32 = cfg.D8[PIDALT] * (BaroHigh - BaroLow) / 40;
        BaroPID -= temp32;
    
        EstAlt = BaroHigh * 10 / (BARO_TAB_SIZE / 2);
    
        temp32 = AltHold - EstAlt;
        if (abs(temp32) < 10 && abs(BaroPID) < 10)
            BaroPID = 0;  // remove small D parameter to reduce noise near zero position
        // P
        BaroPID += cfg.P8[PIDALT] * constrain(temp32, (-2) * cfg.P8[PIDALT], 2 * cfg.P8[PIDALT]) / 100;
        BaroPID = constrain(BaroPID, -150, +150); // sum of P and D should be in range 150
    
        // I
        errorAltitudeI += temp32 * cfg.I8[PIDALT] / 50;
        errorAltitudeI = constrain(errorAltitudeI, -30000, 30000);
        temp32 = errorAltitudeI / 500; // I in range +/-60
        BaroPID += temp32;
    }
    #endif /* BARO */

  18. #655

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,472
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Всего ИМУ то
    у меня и того меньше, правда там пока баро нет.

  19. #656

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Эх, гулять так гулять, купил я F407-й, впринципе скоро будет полный комплект, вопрос с барометром пока открытый (на первых порах BMP085, ну а там уж, что нибудь надо думать, схемно заложить - выпадет оказия допаять)...

    С маленькой продолжаю войну с ПИДами - плаваел немного по сторонам...

  20. #657

    Регистрация
    23.11.2011
    Адрес
    Москва Партизанская
    Возраст
    51
    Сообщений
    6,963
    Какой титанический труд с написанием программ.Ждем результата с нетерпением и лучше бы заложить сразу хороший баро,5611 например.

  21. #658

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Я б с удовольствием, но где его взять чтоб доставка не была в три-четыре раза дороже

    на гудлаке есть такой http://www.goodluckbuy.com/ms5611-01...er-module.html и такой http://www.goodluckbuy.com/ms5607-02...or-module.html , брать?
    Последний раз редактировалось SergDoc; 11.09.2012 в 16:41.

  22. #659

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Чёт с портами запутался, зачем - если не сказать хуже, два ресета с JTAG - бррр, пытаюсь как-нибудь упорядочит входы выходы, а то Multipilot32 извините бред какой-то... я про 407 если что...

  23. #660

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    29
    Сообщений
    1,675
    Записей в дневнике
    6
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Всего ИМУ то
    ыть узнаю вий...
    блин у меня сейчас большое желание переписать его на FreeIMU (там калман и вроде как шустрый) т.к. хмега позволяет его засунуть... если получиться могу потом поделится

  24. #661

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Хочу выходы сделать так:

    Motor1 - PA1 t2cn2
    Motor2 - PA2 t2cn3
    Motor3 - PA3 t2cn4
    Motor4 - PB0 t8cn2
    Motor5 - PB1 t8cn3
    Motor6 - PB6 t4cn2
    Motor7 - PB8 t4cn3 /SCL
    Motor8 - PB9 t4cn4 /SDA - это если регули I2C
    ну если что, то порты местами поменяю - для того чтоб легче плату разводить, надеюсь подводные камни меня не ждут, а то помню в мультивиие долго потом ковырял переназначивая порты и прерывания...

    А входы я с гордостью сопру у Олега (Siberian) надеюсь не обидится
    Последний раз редактировалось SergDoc; 12.09.2012 в 00:26.

  25. #662

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,472
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Что-то мне подсказывает что контроллеру на F407 и MPU6000 суждено быть
    Почему не на 405м? Датчики СПИ? Линии готовности данных ДУС и акселя выведены на прерывания? ЮСБ с поддержкой штатного загрузчика? Свободный СПИ и АЦП будут? СДИО? Полностью аппартный ШИМ вход/выход?
    Если вспомню ещё допишу)))
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Я б с удовольствием, но где его взять чтоб доставка не была в три-четыре раза дороже на гудлаке есть такой http://www.goodluckbuy.com/ms5611-01...er-module.html и такой http://www.goodluckbuy.com/ms5607-02...or-module.html , брать?
    бери здесь, http://www.aliexpress.com/item/100-N...557622969.html
    я с китайцем договаривался, он за несколько деталек с меня одну доставку взял.

    Сергей, ты наверное интересовался, насколько хорош аксель МПУ6000, например, по сравнению с ЛСМ330?

    ЗЫ если на верхние вопросы ещё нет ответов, можешь считать предложением )
    Последний раз редактировалось rual; 12.09.2012 в 09:36.

  26. #663

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Начну с конца, аксель однозначно лучше, меньше боится вибраций и не дёргается как у ЛСМ сам по себе, есть готовые драйвера, одна шина и я его купил , естественно на этот раз датчики СПИ
    На алиекспресс доставка в Беларусь самая дешовая 45, а так как мне осталось прикупить только баро (его тоже можно по СПИ пользовать) то уж лучше на гудлаке - осталось то 10 рублей американских найти...
    на счёт свободного СПИ - врятли, завязана MicroCD, флешка маленькая (закос под ОР), МПУ и возможно баро. Отдельные UART на GPS, телеметрию, и возможно программирования на первых порах. Вообще планируется USB - но так всё туманно расписано, либо же брать другой бутлоадер, либо же извращатся, ну до ПО ещё далеко ДУС с МПУ планирую, ШИМ надежда на аппаратный ещё есть , АЦП свободные будут, но вопрос, а буду ли я их разводить - посмотрим, по крайней мере батарейка мне понравилась в назе32 - так что вход для неё обязательно будет, хочу и не хочу управление подсветкой - делать, не делать - всё будет зависеть от загруженности платы (нижней), а ещё же сонар куда-то всунуть надо вобщем копать не перекопать - но интересно ж зараза

    Блиин - думал же что что-то забыл, надо ж было вместе с процем FT232 заказать - JTAG сделать хррр...
    Последний раз редактировалось SergDoc; 12.09.2012 в 11:15.

  27. #664

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    29
    Сообщений
    1,675
    Записей в дневнике
    6
    Цитата Сообщение от SergDoc Посмотреть сообщение
    а ещё же сонар куда-то всунуть надо
    для сонара делал выход с конвертером на 2 резисторах и полевике - им нужен сигнал не меньше 4.3в иначе нестабильно работают(SR04), вход - чисто резистивный делитель, итого 2 ноги проца. кстати с норм кодом обработки сонара замучался (корректное определение норм данных/ошибки), как исходники использовал код от alexmos, в итоге вроде норм получилось - могу поделиться

  28. #665

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,472
    Цитата Сообщение от mataor Посмотреть сообщение
    для сонара делал выход с конвертером на 2 резисторах и полевике - им нужен сигнал не меньше 4.3в иначе нестабильно работают(SR04), вход - чисто резистивный делитель, итого 2 ноги проца. кстати с норм кодом обработки сонара замучался

    Для СТМа бесполезное шаманство, входы примут+5В, выход с открытым стоком и резистор на +5В.

  29. #666

    Регистрация
    17.06.2011
    Адрес
    Минск
    Возраст
    39
    Сообщений
    1,941
    Сергей, я вот все читаю вашу тему и никак не могу вкурить, какой смысл пытаться повторить чужие разработки? ИМХО, если немного почитать про плюсы и минусы существующих контроллеров, можно вполне наваять свой - который возможно пойдет в массы. Например взять CRIUS AIOP - все в нем хорошо, еще немного и будет совсем хитовым контроллером. Если немного посмотреть вперед, пора делать похожий но на базе ARM. А прошивки постепенно подтянутся
    Тот же ArduCopter компилится под F4 при большом желании (Проект Multipilot32)

  30. #667

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Алексей, я тоже что-то не вкурил
    Цитата Сообщение от Sir Alex Посмотреть сообщение
    какой смысл пытаться повторить чужие разработки?
    это вы у Таймкопа спросите

    и
    Цитата Сообщение от Sir Alex Посмотреть сообщение
    Если немного посмотреть вперед, пора делать похожий но на базе ARM.
    в чём вопрос, я на данный момент, как раз ухожу в сторону (точнее собираю солянку из того что мне нравится), оно уже не ArduCopter, не Multipilot32, не разработки OP и не Multiwii, хотя близко, я не сделаю свою наземную станцию, так что всё равно придётся к чему-то привязатся. Я в первую очередь делаю железяку для себя и никакой коммерческой составляющей в этом нет (и если кто-то захочет - может повторить, но сам), получается контроллер с разными плюшками, но дешевле чем продающиеся в той же комплектации, ну и как следствие - я его знаю и знаю что могу ожидать от него. Я делаю это для души - мне это нравится!

    Цитата Сообщение от rual Посмотреть сообщение
    Для СТМа бесполезное шаманство, входы примут+5В, выход с открытым стоком и резистор на +5В.
    у ТС он вообще на голые лапы без всяких шаманств работает

    скорей всего барометр по SPI будет, но пока только предположение....

    А ещё я очень сильно тоскую по крутилкам в КУКе
    Последний раз редактировалось SergDoc; 12.09.2012 в 17:01.

  31. #668

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Куда лучше воткнуть барометр (MS5611) на нижнюю или верхнюю плату? - сам склоняюсь к нижней...

  32. #669

    Регистрация
    16.12.2005
    Адрес
    Москва
    Возраст
    34
    Сообщений
    4,452
    Записей в дневнике
    13
    Его надо защищать от прямых потоков воздух и солнечного света, отсюда и исходите

  33. #670

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    29
    Сообщений
    1,675
    Записей в дневнике
    6
    Цитата Сообщение от SergDoc Посмотреть сообщение
    на нижнюю или верхнюю плату?
    подальше от солнца - лучше нижняя

  34. #671

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    О какая штучка появилась http://www.goodluckbuy.com/stm32f407...ent-board.html

  35. #672

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Вобщем, если кто-то захочет поучавствовать в созидании новой платы, прошу вносить предложения пока я не начал разводку (нижняя почти готова)
    на нижней плате будут распологаться: STM32F407VET6, MPU6000(SPI), MS5611(SPI), а так же, MicroSD(SPI), W25X40A (SPI), AT24C512BN (I2C), разъёмы.
    На верхней: MT3329 (UART), HMC5883 (I2C)
    За одно переехать сюда https://github.com/SergDoc/Nev_MultirotorControl - думаю будет удоней, т.к. я не особо программер

  36. #673

    Регистрация
    16.12.2005
    Адрес
    Москва
    Возраст
    34
    Сообщений
    4,452
    Записей в дневнике
    13
    DCMI будет разведен?

  37. #674

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    А надо?

  38. #675

    Регистрация
    16.12.2005
    Адрес
    Москва
    Возраст
    34
    Сообщений
    4,452
    Записей в дневнике
    13
    Не знаю, интересуюсь

  39. #676

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Я на сколько понимаю для камеры (если вы планируете использовать камеру) потребуется внешнее ОЗУ, а его я как-то не планировал... и так уже под завязку получается нижняя плата...

  40. #677

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,472
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Я на сколько понимаю для камеры (если вы планируете использовать камеру) потребуется внешнее ОЗУ, а его я как-то не планировал... и так уже под завязку получается нижняя плата...
    Думаю вешать обработку или предобработку для передачи на единственный проц полётного контроллера бессмысленно, сильно разные задачи. Писать ПО для такой системы без поддержки ОСРВ крайне неудобно, а с осью возрастут накладные расходы на обработку задач, для многоротора может быть критично.

    А платка хороша... Только опять же для полётного контроллера внутренненго ОЗУ достаточно.
    Последний раз редактировалось rual; 14.09.2012 в 09:39.

  41. #678

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    Та с гудлака? там флешка внешняя....

    а камеру маленькую (вертикально) для удержания позиции - интересно, но не сейчас.... не по возрасту предмет

  42. #679
    DVE
    DVE вне форума

    Регистрация
    16.06.2008
    Адрес
    EU
    Возраст
    37
    Сообщений
    4,386
    Цитата Сообщение от SergDoc Посмотреть сообщение
    О какая штучка появилась http://www.goodluckbuy.com/stm32f407...ent-board.html
    Так есть там же платы уже с датчиками и STM, чем не устраивает?
    http://www.goodluckbuy.com/kcopter-s...3l-ms5611.html

    Или более продвинутый вариант: PX4 Autopilot
    https://store.diydrones.com/PX4FMU_p/br-pxfmu.htm

  43. #680

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,462
    Записей в дневнике
    8
    на первой это аналог NAZE32, вторая 149 у.е. у меня на данный момент примерно тоже самое по цене только с GPS и сонаром (из расчёта перехода на ms5611, и заказа плат)

+ Ответить в теме

Похожие темы

  1. Система стабилизации гиро+акселерометр
    от Фантомас в разделе Полеты по камере, телеметрия
    Ответов: 32
    Последнее сообщение: 25.01.2011, 14:47
  2. Продам Продам Клона Trex 450SEV2 + Аппаратура + Запчасти+ система стабилизации RTF
    от omegapraim в разделе Барахолка. Вертолеты
    Ответов: 1
    Последнее сообщение: 12.01.2011, 18:16
  3. Продам Трёхосевую систему стабилизации Turnigy V-Bar 600
    от avi@tor в разделе Барахолка. Аппаратура
    Ответов: 1
    Последнее сообщение: 08.11.2010, 13:02
  4. Продам Gaui система стабилизации GU365, дёшево.
    от avi@tor в разделе Барахолка. Вертолеты
    Ответов: 3
    Последнее сообщение: 03.08.2010, 11:13
  5. Системы стабилизации
    от max815 в разделе Фото и видеосъемка, системы стабилизации
    Ответов: 16
    Последнее сообщение: 11.03.2010, 03:14

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения