Ардупилот на платах OpenPilot Revolution / RevoMini (записей: 1756)

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    Тут еще один баг нашелся, так что пока лучше не пробовать.

  • Аватар профиля An_private An_private в 8 г., 4 мес. назад

    Ясно, ждём :)

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    называется - взял готовую библиотеку SD от новой модной Ардуино :)  Уже пятый баг оттуда вылазит

  • Аватар профиля macrokernel macrokernel в 8 г., 4 мес. назад

    Вот ещё один интересный контроллер всё-в-одном Airbot Asgard: https://store.myairbot.com/flight-controller/asgard/asgard.html

    SPI Gyro MPU6000
        On-Board OSD (controllered by Betaflight, FC over SPI bus)
        MicroSD Blackbox
        F4 Processor (F405)
        5v1a SBEC
        Built-in Current Sensor
        4x BLHELI_S ESC(DSHOT Ready)
        2x UART
        Buzzer output
        WS2812B LED output

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад
    [2017-07-31 09:13:34] macrokernel писал(а): Вот ещё один интересный контроллер 

    Подарит кто-нибудь - будет поддержка, а "на глаз" должно заработать на прошивке АирботВ2

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    Вроде как исправил все баги, новые бинарники готовы

    • Добавлено переформатирование  DataFlash в случае ошибок файловой системы или при отсутствии места, это фиксит баг FatFs когда после переполнения всей флеши одним файлом удаление этого файла не освобождает место
    • исправлен баг FatFs когда в случае переполнения вызов write() возвращает статус FR_OK
    • Вернулись "сырые"логи в неформатированной DataFlash, на этот раз с корректным стиранием при переходе на начало блока - используется на платах с 64к блоками стирания
    • добавлено автораспознавание подключенной DataFlash, так что перепайка ее на что-либо побольше не требует пересборки

     

  • Аватар профиля justason justason в 8 г., 4 мес. назад

    Наконец-то дошел до меня модуль GY-652.

     Подключил его согласно вот этому документу:

    SCL -> UART3 TX / SCL

    SDA -> UART3 RX / SDA

    5V  и GND взял рядышком.

    Плата не стартует.  Заливал bin (перепробовал все 3 из папки Release/Copter) по-феншую - через гостевую Ubuntu 16.04 и в Windows

    Так как в INAV данный модуль видится и работает, то хотелось-бы знать куда его подсоединять.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    Как собственно выглядит это "не стартует"? Бинарник для этой платы - Аирбот, работу с этим модулем попробую на днях.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    Посмотрел. Драйвер барометра проверяет только один барометр по умолчанию, и только для некоторых плат проверяет еще что-либо - вот и не видит барометр. Переделал на автоопределение всего что знает, бинарники будут чуть позже. бинарники готовы.

    Добавлено:

    • Автоматическое обнаружение барометров на внешнем I2C - поддержка для модуля GY-652
    • поддержка параметров по умолчанию на SD-карте
    • статистика времени sleep в планировщик
  • Аватар профиля m--s s s6 пунктов в 8 г., 4 мес. назад

    Может быть текущие параметры тоже на sd карте хранить? Возможно, это решит проблему, что MOT_HOVER_LEARN и подобные нельзя использовать безопасно без подвисания stm-ки. Как-то без автотьюна и автотрима грустно...

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    почему это без автотюна и автотрима? Пользоваться можно, только надо помнить что высота должна быть такой что в случае "комы" на 0.3 секунды ничего не сломалось.  Сейчас о очистке памяти сообщается по радио, и по факту даже 250 коптер в висении этого не замечает, главное не поймать во время активного маневра.  Да и далеко не каждое сохранение параметра это вызывает.

    Текущие можно хранить если это настоящая SD карта на гигабайты, а встроенная 2мб может переполниться во время одного полета, с последующим форматированием при арме.

  • Аватар профиля m--s s s6 пунктов в 8 г., 4 мес. назад

    Ясно, спасибо) Самолёту за 0.3 секунды точно ничего не будет.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    Так, в последней версии баг с 3 баромерами, пока не трогаем

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    Ччерт, бракоделы блин. Барометр BMP180 обслуживается драйвером BMP085, а он за ненадобностью пиксу еще на предыдущем АПИ и даже не компиляется. Пришлось переделывать по образу и подобию BMP280

    UPD. Час от часу не легче - MS5611 определяется драйвером BMP085 как родной :-/

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    Ну вроде как пофиксил и даже работает.

    Также:

    • все назначенные io_proc выполняются в рамках одной задачи для экономии стека
    • добавлена возможность задать интервал выполнения этих задач
    • все это позволило поднять время сна процессора с 30 до 65%, что практически равно времени выполнения delay() без многозадачности
    • проц теперь на ощупь холодный, а не как раньше
  • Аватар профиля justason justason в 8 г., 4 мес. назад

    C последними бинарниками от 1.08ю2017 для моего комплекта revomini-airbot + GY652 ничего не поменялось.

    Выглядит это так:

    Плата после прошивки создает в диспетчере 2 нерабочих устройства, к missionplanner-у не коннектится, постоянно горит зеленый LED, а синий пишет букву "М" через секунду (морзе - -)

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад
    [2017-08-01 20:22:11] justason писал(а): постоянно горит зеленый LED, а синий пишет букву "М" через секунду (морзе - -)

    Зеленый просто к питанию подключен и горит всегда, а синий... это не морзе а надо считать вспышки. 2 вспышки - HardFault, что есть странно. Придется подключать модуль и смотреть. 

    PS. Что в терминале на этом порту выводится?

    UPD. А может и не HardFault а нормальный цикл работы. Включается синий плавно или как? Видево бы...

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад

    Удалось ужать участок, необходимый быть оптимизированным -O0, до единственной функции. Ею оказалась... сама bool SPIDevice::transfer(const uint8_t *send, uint32_t send_len, uint8_t *recv, uint32_t recv_len), а вовсе не какая-то низкоуорвневая мелочевка. Ничего не понима...

  • Аватар профиля m--s s s6 пунктов в 8 г., 4 мес. назад

    Может быть delay_ns100 криво работает?

  • Аватар профиля justason justason в 8 г., 4 мес. назад

    PS. Что в терминале на этом порту выводится?

    На каком порту?

    Видео:

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад
    [2017-08-02 11:53:40] m-s писал(а): elay_ns100 криво работает

    Но она-то сама находится в зоне, оптимизируемой по O2! И ее таки вызывают, проверял отладчиком. Собственно и вызовы ее появились при борьбе с этим багом, в попытках привести циклограмму в соответствие даташиту. Заменю на _delay_us(1) для пробы, наверное...

    Самое забавное что в Клинфлае это выглядит просто, без всяческих задержек:

    #define DISABLE_MPU6000 IOHi(mpuSpi6000CsPin)
    #define ENABLE_MPU6000 IOLo(mpuSpi6000CsPin)

    static IO_t mpuSpi6000CsPin = IO_NONE;

    bool mpu6000WriteRegister(uint8_t reg, uint8_t data)
    {
    ENABLE_MPU6000;
    spiTransferByte(MPU6000_SPI_INSTANCE, reg);
    spiTransferByte(MPU6000_SPI_INSTANCE, data);
    DISABLE_MPU6000;

    return true;
    }

    bool mpu6000ReadRegister(uint8_t reg, uint8_t length, uint8_t *data)
    {
    ENABLE_MPU6000;
    spiTransferByte(MPU6000_SPI_INSTANCE, reg | 0x80); // read transaction
    spiTransfer(MPU6000_SPI_INSTANCE, data, NULL, length);
    DISABLE_MPU6000;

    return true;
    }

    и вроде бы работает...

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад
    [2017-08-02 13:11:25] justason писал(а): На каком порту?

    на том виртуальном КОМ-порту что создает подключенный контроллер. Можно например Ардуиной послушать (инструменты - монитор порта). У меня это /dev/ACM0 например, в виндах не знаю

  • Аватар профиля m--s s s6 пунктов в 8 г., 4 мес. назад
    [2017-08-02 13:16:28] night_ghost писал(а): Но она-то сама находится в зоне, оптимизируемой по O2!

    Там же все inline. Оптимизирует же наверное после разворачивания inline...

  • Аватар профиля justason justason в 8 г., 4 мес. назад

    на том виртуальном КОМ-порту что создает подключенный контроллер. Можно например Ардуиной послушать (инструменты - монитор порта). У меня это /dev/ACM0 например, в виндах не знаю

    В Винде девайс нерабочий. А линукса под рукой нету.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад
    [2017-08-02 13:37:55] m-s писал(а): Там же все inline

    накласть GCC хотел на все эти inline. Как и на атрибуты ALWAYS_INLINE - функция __WFE() объявленная с ним так и остается функцией, не превращаясь в единственную инструкцию. А что вы хотели - свободный софт :-/

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад
    [2017-08-02 13:41:10] justason писал(а): В Винде девайс не рабочий.

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

    И видео мигания бы в студию.

  • Аватар профиля justason justason в 8 г., 4 мес. назад
    [2017-08-02 13:43:48] night_ghost писал(а): И видео мигания бы в студию.

    уже в студии:

    http://www.ykoctpa.ru/groups/eye-in-a-sky/forum/topic/ardupilot-na-platax-openpilot-revolution-revomini/?topic_page=28&num=15#post-12495

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад
    [2017-08-02 13:46:50] justason писал(а): уже в студии:

    Это нормальная работа, у меня он в точности так же мигает. Ошибки отображаются плавным изменением яркости, чтобы не перепутать. Так что должно коннектиться.

    Создаваемый компорт это не только мавлинк, но еще и консоль, у меня там например такое

    MS5611 found on bus 0 address 0x00
    Failed to create log directory 0:/: file exists
    DataFlash_File: buffer size=16384
    HMC5843 found on bus 0x1

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 8 г., 4 мес. назад
    [2017-08-02 13:49:51] night_ghost писал(а): Это нормальная работа

    Э нет, не совсем нормальная: мигает вдвое медленнее чем у меня. Что есть очень странно - неужто кварц другой китайцы припаяли?

    Есть чем частоту померять? Что за контроллер?

  • Аватар профиля m--s s s6 пунктов в 8 г., 4 мес. назад

    Если есть usb-uart переходник можно к uart1 приконнектиться 

← Форум группы   Все форумы К последней записи
Постов на странице:

Вы автоматически вступите в эту группу, когда ответите в теме.

Добавить ответ:

-
Рейтинг@Mail.ru