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

tusik
SergDoc:

теме то уже больше года, а у меня так толком летающего ещё ничего и нет

Сергей, так ты летал на чем-нибудь своем или нет?

HikeR

на DX обнаружил вот такое 20-ти баксовое изделие:

L3G4200D + ADXL345 + HMC5883L + BMP085

я так понял, что только по I2C разводка сделана. такая цена вобще адекватна, или датчики какие-то не айс?

omegapraim

За 20 баксов это вкусняшка)))) датчики нормальные сейчас все на таких летают, ну кроме гириков, большенство сейчас летает на ITG3205 но я предпочитаю именно L3G4200D про аксель ничего сказать не могу.

SergDoc
tusik:

Сергей, так ты летал на чем-нибудь своем или нет?

Относительно своём, CC Pirates Edition, пока приёмник не глюканул и я коптер не “потерял”, у меня сейчас из живого один движек, аккум и регули, контроллер который псевдоСС тоже пострадал (гиру по Yaw снесло к чертям - так и не нашел) и скорей всего ещё что-то не запускается вообще - пока лежит, может при оказии в CC3D переделаю, “маленькая” ждёт своего часа, ну и рисую пока что-то непонятное 😃

rual
HikeR:

на DX обнаружил вот такое 20-ти баксовое изделие:
img.dxcdn.com/productimages/s...12_1_small.jpg
L3G4200D + ADXL345 + HMC5883L + BMP085

мне бы такое же, только с перламутровыми пугвицами )) у меня предубеждение к и2ц.
а вообще платка хорошая, все линии готовности выведены.

rual

Вот немного полетал вчера, ветер был 4-5м\с сс порывами до 8. Можно увидить этот по верхушкам деревьев, плюс не доконца отстроенные ПИД, получилась болтанка.

SergDoc

Покупаю bmp085 на маленькую платку, брать второй на новую или все таки рискнуть взять что-нибудь по приличнее?

soliada

ИМХО лучше уж тогда взять ВМР180,он меньше и вроде немного точнее.На Ибее можно найти за примерно 6еу с доставкой.

SergDoc

Не я подумываю о двух бяках:
аналоговый MPX4115A и цифровой MS5611-01BA01 причем установить оба, боюсь не справиться с программным…

Таймкоп кстати добавил к своей NAZE32 гироскоп L3g4200 в программном…

Gapey

на MPX4115A нужен внешний АЦП , например 16 битный ADS1100 как у немцев …
тот что в проце непрокатит …

SergDoc

Тоесть 12 битного АЦП мало будет?

Внешнее АЦП вешать не хочу по причине загруженности плат, я и так коэффициент дезинтеграции 1.5 беру, что для домашнего изготовления не есть гуд, конечно можно взять и 1.2 но тогда плату явно придётся заказывать и скорей всего 4 слоя 😦

DVE

MPX4115A ведь старый баро, я его еще у Руссокоптера видел, они в свою очередь вроде у немцев взяли. Какой прикол такую здоровую байду на плату ставить при наличии MS5611?

SergDoc

хотя 55уе и три комплекта (2 четырёхслойных) плат…

есть вариант MPXV5004DP - он по меньше будет, а скорей всего выведу несколько лап АЦП на разъём, а там посмотрим чё туда цеплять…

SergDoc

Тут ещё MPU6500 объявилось документации пока нет но по ходу работает как и MPU6000 и I2C и SPI

Sir_Alex
SergDoc:

Тут ещё MPU6500 объявилось документации пока нет но по ходу работает как и MPU6000 и I2C и SPI

Что то я невкурил, в чем отличие от существующего MPU6000 ?

Edit: Ага, только размер уменьшили… был 4x4 стал 3x3

SergDoc

Никто в продаже кварцы 8мГц как на фотке не встречал? кончились 😦 , не хочу ставить что-то другое (лень рисовать), хотя один есть на выпаять…
потихоньку начал закупатся, получается не очень то и дёщево, в полной комплектации с GPS и сонаром как бы в 150 уголовных вложится…

Gapey

CSTCE ??? если сильно нада могу поделиться по сходной цене …

8 days later
SergDoc

Следуя за Таймкопом code.google.com/p/afrodevices/source/list , я тоже обновил прошивку маленькой платки, “полёт” нормальный, правда пока не до самих полётов 😦 (не приехало ещё всё что нужно, но в пути)
добавление LSMки:
board.h


typedef enum AccelSensors {
    ACC_DEFAULT = 0,
    ACC_ADXL345 = 1,
    ACC_MPU6050 = 2,
    ACC_MMA8452 = 3,
+  ACC_LSM330A = 4,
} AccelSensors;
-------------------------------------------------------------------------
 // AfroFlight32
#include "drv_system.h"         // timers, delays, etc
#include "drv_adc.h"
#include "drv_adxl345.h"
#include "drv_bmp085.h"
#include "drv_hmc5883l.h"
#include "drv_i2c.h"
#include "drv_ledring.h"
#include "drv_mma845x.h"
#include "drv_mpu3050.h"
#include "drv_mpu6050.h"
#include "drv_l3g4200d.h"
#include "drv_pwm.h"
#include "drv_uart.h"
#include "drv_hcsr04.h"
+ #include "drv_lsm330acc.h"
+ #include "drv_lsm330gyro.h"

#endif

sensors.c


// Autodetect gyro hardware. We have MPU3050 or MPU6050.
    if (mpu6050Detect(&acc, &gyro, cfg.mpu6050_scale)) {
        // this filled up  acc.* struct with init values
        haveMpu6k = true;
    } else if (l3g4200dDetect(&gyro)) {
        havel3g4200d = true;
    }
 - else if (!mpu3050Detect(&gyro)) {    //хотя тут  можно подумать о совместимости
}
+  else if (!lsm330gyroDetect(&gyro)) {
        // if this fails, we get a beep + blink pattern. we're doomed, no gyro or i2c error.
        failureMode(3);
    }

// Accelerometer. Fuck it. Let user break shit.
retry:
    switch (cfg.acc_hardware) {
        case 0: // autodetect
        case 1: // ADXL345
            acc_params.useFifo = false;
            acc_params.dataRate = 800; // unused currently
            if (adxl345Detect(&acc_params, &acc))
                accHardware = ACC_ADXL345;
            if (cfg.acc_hardware == ACC_ADXL345)
                break;
            ; // fallthrough
       case 2: // MPU6050
            if (haveMpu6k) {
                mpu6050Detect(&acc, &gyro, cfg.mpu6050_scale); // yes, i'm rerunning it again.  re-fill acc struct
                accHardware = ACC_MPU6050;
                if (cfg.acc_hardware == ACC_MPU6050)
                    break;
            }
            ; // fallthrough
        case 3: // MMA8452
            if (mma8452Detect(&acc)) {
                accHardware = ACC_MMA8452;
                if (cfg.acc_hardware == ACC_MMA8452)
                    break;
            }
        +case 4: // LSM330ACC
        +    if (LSM330ACCDetect(&acc)) {
        +       accHardware = ACC_LSM330A;
        +      if (cfg.acc_hardware == ACC_LSM330A)
        +           break;
        +   }

    }

ну и соответственно сами драйвера (они в архиве) положить в папку src и подключить к проекту сишные файлы в папку Drivers, как-то так…

только вот пока незнаю, баро у меня дохлый или конфликт где-то (новый баро едет)

SergDoc

TO Gapey
Юрий, JST разъёмы это SH или SR тип? библиотек таких нет - надо самому рисовать…

Всё, уже нашел

SergDoc

Немного прикинул размеры плат, получается:
Нижняя 52Х64 крепления 45Х45 сзади хвостик - умещаются как раз 16 входов-выходов с корпусом и питанием (8 разъёмов MA03-2), в передней части умещаются 4 разъёма JST-SH 4-pin (4 входа на ключи для подсветки ULN2003, 2 UART и разъём для сонара) снизу (спереди) USB и MicroSD, по бокам два переходных разъёма на верхнюю плату MA12-1
Верхняя 52Х52, крепление 45Х45, пока думаю что делать со светодиодами, либо все вынести на верхнюю плату (что не есть хорошо), либо забить пусть тупо остаются на нижней (можно продублировать), можно так же сделать эротичный вырез в верхней плате, пока не знаю, начну разводить видно будет…