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

oleg70
leprud:

Это - не?

очередной ресурс (я уж их “сотню” просмотрел), где обсуждаются глюки, а решения нет…

SergDoc
oleg70:

очередной ресурс (я уж их “сотню” просмотрел), где обсуждаются глюки, а решения нет…

тсс… по секрету в Pixhawk карточка по SDIO работает не кашляет, но там 427-й проц… а вообще где-то читал:
первое оно криво сделано и медленное нало либы править…
второе всё равно желательно пользовать что-то быстрое типа фрам, а в “передышках” кидать на sd

oleg70
SergDoc:

но там 427-й проц…

вот вот… и дело не в либах (у меня), аппаратная часть не работает… тупо инициализация не идет, кстати не только у меня, аналогичный косяк завис в прошлом году на буржуйском форуме. а ведь плату новую уже сделал… (вот и верь теперь людям от ST…)

SergDoc
oleg70:

а ведь плату новую уже сделал…

значит ставить 427-й… но не факт, multipilot32 тоже SDIO и 407-й там либы maple…
это только я “зажал” лапы таймера и 1 spi по сей причине у меня spi…

oleg70
SergDoc:

и 1 spi по сей причине у меня spi…

Да, буду переделывать платку… под spi. (а ведь хотел “как лучше”…😃). Не охота с СТшными косяками разбираться, да и скорость SDIO в принципе то, в нашей теме фактически не нужна, главное надежность…

oleg70

с SPI всё получилось… , даже FAT32 (😃)

strizhmax
oleg70:

с SPI всё получилось

С SPI на коленке все работает. Надо все же SDIO добить было.

SergDoc

о у меня дискаверя f4 и платка с sd-шкой есть, нада эксперимент…
ха-ха в NuttX пишут нет поддержки SDOI в дискавери ф4

oleg70
strizhmax:

С SPI на коленке все работает.

Ну я б так не сказал… (😃), со стабильной инициализацией при подаче питания пришлось повозиться… (MicroSDHC капризничала, собака…).

strizhmax:

Надо все же SDIO добить было.

по результатам моей работы - явная нестабильность интерфейса (48 мгц всё же), а это хуже всего… возможно уже сама плата нужна правильная, к тому же в самой документации открытым текстом написано про баги с установкой флагов и проверки CRC… короче “сдался” я…

Geniok
oleg70:

Господа, кто нибуть пытался реализовать связку: SDHC card+STMF4+SDIO ??
Третий день, не могу запустить карту…
“гугление” дало неутешительные результаты типа: “errata” от ST, аппатратный глюк F4 и т.д. и т.п. Короче “попал” я похоже…

Привет!
Я реализовывал связку SD+FatFS+STM32F407+SDIO!
А в чем затык конкретно ?

SergDoc

не работает с мультипакетами или как их там, наттикс кстати работает, но тоже через опу

oleg70
Geniok:

А в чем затык конкретно ?

CMD41 шлю, а ответа нужного нет… Сам интерфейс работает, т.к. CMD0, CMD8, CMD55 проходят. Перепробовал всё что можно: и с резисторами и без, и разные карточки, и питание от 2.7 до 3.3 в менял, и частоту CLK менял (даже по частотомеру замерял), короче похоже что карта при CMD41 не шлёт CRC (для microSD это нормально), а проц. её очень ждёт и зависает…

Geniok
oleg70:

CMD41 шлю, а ответа нужного нет… Сам интерфейс работает, т.к. CMD0, CMD8, CMD55 проходят. Перепробовал всё что можно: и с резисторами и без, и разные карточки, и питание от 2.7 до 3.3 в менял, и частоту CLK менял (даже по частотомеру замерял), короче похоже что карта при CMD41 не шлёт CRC (для microSD это нормально), а проц. её очень ждёт и зависает…

Хм…
Странно…
Я посмотрю у себя как и что, напишу по поводу CMD41.
Если по памяти, то проблемы были только когда на карте не было резисторов, как только резисторы повесил, проблем с чтением/записью не было.

rual
mahowik:

В тему самоделок похвастаюсь

Саш, очень круто! Интересно как он у тебя за местность цепляется при удержании позиции?

mahowik

Робот на шаговиках. И на скоростях менее 60% проскоков практически нет. Т.е. там обычный интегратор (сорсы на гит, если интересно)… 😃
Я сперва тож думал, что понадобится ИНС и т.д… на земле все проще однако 😃

rual
mahowik:

И на скоростях менее 60% проскоков практически нет. Т.е. там обычный интегратор (сорсы на гит, если интересно)…

Неее… Я немного про другое. У тебя написано

  • удержание позиции

, и на видео где ты его рукой толкаешь до стены, он откатывается и возвращается обратно.

mahowik
rual:

Неее… Я немного про другое. У тебя написано

Так я и писал про удержание позиции. Там обычная колесная одометрия, только вместо снятия тактов с оптопары-сенсора, берется кол-во тактов/шагов которое идет на шаговик.
Один такт в конфигурации 1/8 для nema17 это 360*/(200*8) = ~0.2 град т.е.

/**** position hold mode ****/
  static float positionError = 0.0f;
  if(f.POSHOLD_MODE && abs(targetSpeed) < 15 && abs(steering) < 15) {
    positionError += actualSpeed * (float)cycleTime * 0.000001f;
  } else {
    positionError = 0.0f;
  }

....

error = targetSpeed - actualAveragedSpeed -(positionError * conf.pid[PIDPOS].P8 * 0.01f);

В обшем, когда стики в центре, то интегрируем такты/шаги на моторы и подаем их на вход пид регуля…