Перейти к содержанию
    

ATMExpert

Участник
  • Постов

    24
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о ATMExpert

  • Звание
    Участник
    Участник
  • День рождения 24.09.1971

Информация

  • Город
    Array

Посетители профиля

831 просмотр профиля
  1. TAMPER

    А можно реально ионистор поставить? И как его запитать, через диодную развязку наверно?
  2. Обучение FreeRTOS

    У таймеров обычно больше двух каналов ШИМ, но ШИМ здесь не используется, применяется режим изменения частоты генерируемой таймером, т.е. применительно для ШД - изменяется скорость step. Я обычно (на AVR) применял 2 отдельных таймера в режиме сброс по совпадению
  3. Обучение FreeRTOS

    А если мне нужно использовать 2 канала от разных аппаратных таймеров для генерации 2 независимых частот, ну что-то типа режима сброс таймера при совпадении и переключение (toggle) выхода, тогда как? Например, 2 шаговых двигателя, по каждому каналу своя скорость, причем и разгон и торможение нужно использовать.
  4. Обучение FreeRTOS

    А это как, не совсем понимаю. Еще один таймер откуда берется? Если к примеру у меня в проекте используются оба таймера в соих нуждах, то какой таймер использует RTOS?
  5. Обучение FreeRTOS

    А кто может подсказать, чем FreeRTOS генерирует эти самые "тики"? Не таймером же - отнимать у юзера периферию не есть гуд... Буду благодарен за объяснение.
  6. В моем случае задачиком положения служит предварительно запомненное положение точки, на которую нужно выйти. т.е. оцифровываем резистор, цифру в память и при поступлении команды "а ну-ка перемести линзы объектива в эту позицию" считываем текущее значение, а разница и есть ошибка для ПИДа. ИМХО и не нужно измерительных ОУ и прочего обвеса. Скорость оцифровки достаточно низкая 16-32 SPS, внешний сигма-дельта на 16 бит и RC- фильтром на половину SPS а остальное программная реализация.
  7. Я с ШИМом как раз и хотел сделать. А вот на счет ПИД - спасибки за идею, как-то не пришло в голову. Про набегание сопротивления выясню, может даже завтра, хотябы визуально постораюсь уловить инерцию С ПИ регулятором можно попасть в ситуацию, когда процесс затянется на непределенно долгое время, т.е. чем меньше будет рассогласование, тем меньше скорость двигателя. Здесь наврно опытно нужно определять момент остановки, когда уже не будет сказываться инерция, а будет сказываться энерция трения, т.е. будет помогать. И все же проще использовать ШИМ, а в конце "доводки" применять торможение двигателем. Большинство драйверов способны включать Н-мост в такой режим. ИМХО более естественно для такой системы с обратной связью
  8. Это не бинокль, а длиннофокусный объектив видеокамеры, работающей на приличное расстояние, фокусное расстояние от 30мм до 750мм Возможно и инерция. Здесь наверно поможет алгоритм доводки если "пролетит" позицию. Как его описать этот алгоритм?
  9. Обычный, коллекторник. Был бы шаговик, проще думаю было бы. Вот если бы имелся люфт, вот тут нужен какой-то алгоритм устранения его. Есть на этот счет мысли? А по поводу 10-битного АЦП, думаю этого будет мало. Ведь резистор делает до 3 оборотов, маловато 1024 отсчета, даже если встренный АЦП будет лопатить на самой низкой скорости выборки и даже если получим честные 10 бит - этого мало. Вот порылся по производителям подобрал ADS1115 от TI и AD7705 от AD
  10. В данном задании не стоит задача фокусировки по видеосигналу или какой-то еще обратной связи. Здесь как раз установка по предварительно сохраненной позиции. Есть проблемка с трансфокаторами, когда даешь команду (пресетпозицию) объект не всегда в фокусе оказывается. и если для зума это может не особо критично, то для фокуса - да. сам пока объектив не щупал, но по инфе люфт отсутствует, редукция приличная: разные редукторы(1:1000, 1:300). Хотя вероятность люфта не исключаю. расфокусировка как раз происходит в моменты, когда сначала ставишь одну позицию, потом уходишь на другую, а потом возвращаешься к прежней. вот тут и есть грабли(траблы)
  11. Деброго времени всем! Есть задача управления zoom и focus длиннофокусного объектива. На кждом канале стот датчик ошибки позиционирования-проще говоря датчик абсолютной координаты. Сопротивление резистора 5 кОм. По крайним выводам стоит последовательно по 1 кОм резистору(ограничение выходного сигнала). Пытаюсь понять на сколько точно нужно оцифровывать положение привода. Количество оборотов, совершаемых резистором около 2,5-3. Среднее время перемещения от одного края до другого при номинальном питании двигателя (9В) около 10-15 сек. Какой сюда поставить АЦП: разрядность, число выборок в сек. и т.п.?
  12. Благодарю за подсказку, тезка! Два часа не мог понять, где туплю. Внимательность к концу рабочего дня на ноль упала ...
  13. Доброго дня всем. Подскажите, в чем загвоздка. Не работает следующая конструкция #define upperiod 0x01; #define InFrame 0x02; #define Pan_Flag 0x04; #define Busy_RX485 0x08; #define Busy_TX485 0x10; __no_init __regvar volatile unsigned char comm@15; #define SetFlag(flag) comm|=flag #define ClearFlag(flag) comm&=~flag #define Check_flag(flag) comm&flag . . . line 187 if (Check_flag(Pan_Flag)) {drv_pan->pos_pan=0; ClearFlag(Pan_Flag); EN_INT5();} Ругается компилёр на строку 187: ...expected a ")". Вроде скобки корректно стоят и в дефайне и в коде. Проясните плиз! П.С. В опциях компилера регистр R15 залочен для использования глобальной переменной
  14. В нашем проекте в процессе работы не используется еепром для сохранения такого рода инфы, исключая начальную (или по запросу от хоста) инициализациюустройства и сохранении значений калибровок датчиков, максимальных и текущих координат. считаю количество шагов, на которое переместился привод: таймер работает в режиме СТС. регистр compare загружается соответствующим расчетным значением. в прерывании происходит команда step драйверу привода и соответственно счетчик шагов в инкремент. как досчитал до значения переданного в команде так стоп. вот вроде пояснил. если чего, спрашивайте
  15. Это протокол обмена Pelco-D. Команда стоп подается от хоста. Не чаще думаю, чем 1 раз в сек. Это если ручное управление (или джойстик). А если подаются команды типа переместиться на столько-то шагов в таком-то направлении, то девайс есесно сам останавливает себя. А определять, когда движение закончено помогают концевые оптодатчики. При начальной инициализации привод перемещается от крайней до крайней позиции, передает максимальные координаты хосту (по запросу). Если движение происходит без пропуска шагов, то энкодеры можно и не ставить. А если уж пропуск случится, то повторная калибровка в помощь.
×
×
  • Создать...