Что такое Nano USM и как он сравнивается с объективом STM или USM
Что такое Nano USM и как он сравнивается с объективом STM или USM?
dpollitt
Canon EF-S 18-135mm f / 3.5-5.6 IS USM имеет обозначение Nano USM на объективе. Что это значит? Каковы преимущества его использования по сравнению с STM или USM?
У нас есть поток терминологии, который обычно охватывает эти вопросы, но он еще не решен, и я заинтересован в сравнении с аналогичной технологией, которую предлагает Canon.
dpollitt
Объективы Canon с автофокусом долгое время фокусировались на скорости, а не на плавной и тихой работе. Это то, что мы знаем сегодня как USM (ультразвуковой двигатель) . Поскольку использование зеркальных фотокамер для видео стало более популярным, Canon представила объективы STM (шаговый двигатель) , обеспечивающие более плавное восприятие; хотя в небольшом недостатке на стороне скорости.
Nano USM устраняет недостатки STM, обеспечивает скорость USM и обладает плавностью STM. Производительность Nano USM основана на аналогичной ультразвуковой вибрации, преобразованной в методологию движения, которую USM использовала в течение некоторого времени. Фактическая работа автофокуса практически бесшумна, что важно в основном для видео, но может быть рассмотрено при определенных сценариях съемки неподвижных изображений.
Его претензии в конечном итоге представляют его как лучшее из обоих миров ; Это означает, что шутеры и видеографы, скорее всего, будут довольны работой и результатами. Поскольку эта технология доступна только в объективах Canon, а первая была анонсирована только недавно — только время покажет, насколько она эффективна, как заявлено.
Для получения дополнительной информации см. Статью Canon USA: что нового: Nano USM — новая технология ультразвукового двигателя
Майкл Кларк
ceving
daninmich
Одной из функций, не упомянутых выше, является возможность подключения нового объектива к адаптеру Canon Power Zoom PZ-E1. Как мне объяснили, этот адаптер дает видеографам возможность увеличивать или уменьшать изображение при съемке видео сцены с помощью ручного пульта, а не ручного увеличения. Возможно, это не важно, если вы снимаете только фото, но это может быть очень удобно при съемке видео.
Майкл Кларк
До сих пор фокусирующие двигатели Canon Nano USM использовались в объективах EF 18-135 мм f / 3,5-5,6 IS USM и EF 70-300 мм f / 4-5,6 IS II USM.
Это тип двигателя AF, который, как и Ring USM, использует микропьезо-колебания для перемещения элементов фокусировки объектива. В случае двигателей Nano USM AF движение происходит в линейном, а не вращательном направлении.
Для более детального ознакомления с множеством фотографий нового мотора Nano USM AF, посмотрите запись в блоге Роджера Цикала о его демонтаже EF 70-300mm f / 4-5.6 IS USM II.
Использование прямых линейных перемещений элементов автофокусировки означает, что линзы Nano USM можно фокусировать только вручную, используя механическое, а не механическое соединение между фокусирующим кольцом объектива и фокусирующими элементами.
Это похоже на технологию шагового двигателя Canon (STM), которая также требует ручной фокусировки по проводам (хотя шаговые двигатели Canon используют вращательные движения). Это исключает возможность фокусировки объектива при использовании «тупых» удлинительных трубок или freelensing. Вы не можете перемещать элементы фокусировки, чтобы парковать их, когда объектив не прикреплен к включенному корпусу камеры EOS. Камера должна быть включена и экспозамер должен быть активен для перемещения фокусирующих элементов объектива. Существует даже очень небольшое количество (в основном, старых, снятых с производства) объективов USM с фокусировкой по проводам , но подавляющее большинство объективов USM способны регулировать фокусировку вручную, перемещая кольцо фокусировки без какого-либо электрического подключения или питания.
При съемке с использованием системы ручной фокусировки фокусировки проводов объективов STM и Nano USM необходимо учитывать некоторые факторы, которые могут вызывать или не вызывать беспокойство в зависимости от пользователя. Дополнительную информацию о сравнительных различиях трех разных типов электродвигателей АФ в трех недорогих объективах Canon 50 мм см. В разделе: Какой объектив лучше, 40 или 50 мм, для прогулок?
Focus «фокусировка по проводам» означает, что нет прямой связи между кольцом ручной фокусировки и механизмом фокусировки объектива. Скорее, кольцо фокусировки передает набор электронных инструкций на корпус камеры, который, в свою очередь, отправляет электронные инструкции на объектив для перемещения элементов фокусировки с помощью того же двигателя, что и при автоматической фокусировке объектива на камере. Наименьшее возможное движение фокуса с мотором STM AF составляет один «шаг» шагового двигателя в объективе. Однако можно выполнить ручную фокусировку (даже если «по шагам» по проводам), не отключая AF с помощью переключателя на боковой поверхности тубуса объектива. Это известно как «полная ручная фокусировка». Для этого необходимо сначала наполовину нажать кнопку спуска затвора или нажать кнопку AF-ON или кнопку AE Lock (*), чтобы активировать систему фокусировки камеры, прежде чем можно будет вручную сфокусировать объектив.
Управление шаговым двигателем
Пытаюсь управлять шаговым двигателем FL57STH76-2804A. Для этого изготовил следующую схему управления — один конец каждой обмотки (A- и B-) подключен к средней точке питания (в настоящий момент биполярного БП у меня нет, поэтому используется конденсаторная средняя точка с резисторным делителем напряжения для защиты от уплывания средней точки). Второй конец каждой обмотки (A+ и B+) подключен к полумосту на двух IRFZ48N. Управляет каждым полумостом драйвер IR2104 (резисторы на затворах 10 ом). Драйвера же полумостов управляются с микроконтроллера STM32F103. Параллельно каждой обмотке шагового двигателя установлен конденсатор 330 нФ. Частота ШИМ 30 кГц. Питаю от БП 12В, то есть на обмотки реально идёт +-6В. Проверял осциллографом — просадки на средней точке во время работы не превышают +-200мВ.
Я успешно запустил шаговый двигатель как в полношаговом, так и в микрошаговом режиме, однако при вращении присутствует определённая неравномерность и вибрации. Хотелось бы от них избавиться.
Вот алгоритм управления двигателем:
По идее ШИМ на обмотках при шагах должен изменяться следующим образом — http://i.imgur.com/kCMfHQP.png.
При низких скоростях, если режим не полношаговый (достигается умножением i на 64 при вызове setStepperState) двигатель перестаёт крутиться (дёргается на месте).
В чём может быть проблема? У меня ошибка в алгоритме переключения обмоток? Или проблема может быть лишь в силовой части схемы?
- Ссылка
Вибрации могу быть, поскольку двигатель находится в колебательной системе.
- Показать ответ
- Ссылка
В настоящий момент двигатель запущен без нагрузки.
- Ссылка
используется конденсаторная средняя точка с резисторным делителем напряжения
при вращении присутствует определённая неравномерность
А поподробнее? Неравномерность циклическая или случайная? Циклическую неравномерность можно компенсировать программными предискажениями данных.
Кто-ж его посадит успокоит, он же шаговый! 🙂
- Показать ответ
- Ссылка
Да всё что угодно может быть, бутстрепный IR2104, ты вот прям хорошо понимаешь что в нем происходит?
- Показать ответы
- Ссылка
А поподробнее? Неравномерность циклическая или случайная?
Я, наверное, неправильно выразился. Крутится он более-менее равномерно. А вот значительные вибрации присутствуют (вплоть до того, что шаговик уверенно ползёт по столу).
И, насколько я понимаю, одно из преимуществ микрошагового режима — как раз значительное уменьшение вибраций, которого в моём случае не происходит. Значит я что-то делаю не так.
Кстати, вот что показывает мой осциллограф:
http://i.imgur.com/qip542n.png — полношаговый режим. Интервал между шагами 10 мс.
http://i.imgur.com/taEfYhv.png — то же самое, но после небольшой обработки (добавил предполагаемые значения управляющих сигналов).
http://i.imgur.com/jYJuh27.png — микрошаговый режим. Интервал между результирующими полными шагами так же 10 мс.
http://i.imgur.com/pjAefFt.png — то же самое, но после небольшой обработки (не уверен, что правильно в этот раз дорисовал управляющие сигналы).
К сожалению, мой осциллограф криво показывает сигналы, частота которых превышает текущий режим работы (нормальный осциллографы всегда снимают данные с максимальной скоростью, но если требуется отобразить не с максимальной, то усредняют до нужного количества точек), поэтому он немного криво показывает ШИМ.
И будет греться эта штука как печка (и даже сильнее — максимальный ток шаговика 2.8 ампера, так что придётся брать транзисторы покруче). Если уж делать по-нормальному, то импульсный преобразователь.
- Ссылка
Не уверен, но могу предположить. Нижним ключом он управляет как обычно. А верхним с помощью чего-то вроде зарядового насоса (не случайно в обвязке стоит конденсатор и диод). Однако данную микросхему вполне себе можно встретить в схемах драйверов шаговых двигателей. Разве что без питания от средней точки.
Вообще, конденсаторной средней точкой вполне объясняются глюки на низких оборотах (типа 10 шагов в секунду и менее) — разряжается одно из плечей конденсаторного делителя. Я уже в этом убедился. Так что данный вопрос снят.
Однако на высоких оборотах (когда конденсаторы разряжаются более-менее равномерно и, как я уже сказал, колебания средней точки не превышают +-200 мВ) проблем быть не должно (точнее не больше, чем у других людей, который используют IR2104 для управления шаговыми двигателями).
- Ссылка
А вот, кстати, схема силовой части драйвера: http://i.imgur.com/YeoblN8.png.
На ней отсутствуют (но в реальности имеются) диоды, защищающие от противо-ЭДС, а также диоды, включенные параллельно с затворными резисторами для ускорения закрытия транзистора.
- Ссылка
Тебе как бы ток в обмотках нужен синусоидальный, а не напряжение. С ШИМом и индуктивностью обмоток, да ещё и с ёмкостями у тебя там чёрти-что, а не нужный ток. Резюки в полОма поставь последовательно с обмотками и посмотри что происходит.
Неспроста практически все микрухи драйверов для ШД таки ток измеряют в обмотках и уже от него пляшут.
Вообще, на самом деле, тебе нужен регулируемый источник тока через обмотку. Его, конечно, можно сделать используя ШИМ stm32, но это не так уж тривиально. И да, мосты нужны настоящие, а не вот эта порнография с конденсаторами. И, кстати, для нормального моста не нужен биполярный источник, а нужно всего лишь пару транзисторов с драйвером в схему докинуть.
Вообще — лучше драйвер ШД готовый пользовать, особенно для мощных двигателей. Там много нюансов и тонкостей всей этой ШД тряхомудии уже учтено. Allegro посмотри, у них дофигищи интересного есть, в том числе и драйвера, которыми можно ШИМом управлять, чтоб нужный тебе микрошаг получить.
- Показать ответ
- Ссылка
Именно поэтому я пару дней назад заказал на AliExpress модули датчиков тока ACS712. Буду в конце каждого периода ШИМ смотреть на текущий ток (благо STM32 имеет достаточно быстрый АЦП, к тому же с поддержкой DMA) и предпринимать какие-то действия.
Но пока как временное решение — возможно ли откалибровать кривую изменения ШИМ (сейчас это банальный синус), чтобы вибрации стали значительно меньше?
Я, кстати, убедился сейчас, что соврал немного. Использование микрошага значительно снижает вибрации по сравнению с полношаговым, но далеко не до нуля.
- Показать ответ
- Ссылка
Но пока как временное решение — возможно ли откалибровать кривую изменения ШИМ (сейчас это банальный синус), чтобы вибрации стали значительно меньше?
Разумеется возможно. Если частота ШИМ не меняется, БП стабилизирован и двигло одно и то же, то можно подобрать такие значения напряжения которые будут давать синусоидальный ток. Вопрос только в геморрое. 🙂
В принципе можно приклеить на ось зеркало, светить туда лазером, где-нибудь в паре метров нарисовать шкалу (сколько он там — 200 шагов на оборот? 1.8 градуса шаг?) чтоб один шаг равномерно разбить на нужное количество микрошагов, ну и вперёд — подбирать напряжение для каждого микрошага, чтобы точно в метку попадать. Думаю за день можно управится. Другое дело, что такой костыль неуниверсален.
Кстати, частоту ШИМ имеет смысл снизить. Вряд-ли на 30кГц с такой индуктивностью обмоток у тебя успевает ток вырасти до нужного значения. Попробуй 15кГц — может получше будет.
ЗЫ: Кстати, с специальнозаточенными под ШД драйверами вибрации нет, зато бывает аццкий писк. 🙂 Индуктивность обмоток большая, высокую частоту ШИМ не сделаешь — не пролезет через обмотку. 🙂
- Показать ответ
- Ссылка
Вот поэтому я и зафигачил туда конденсатор параллельно обмотке. Чтобы высокая частота интегрировалась. Проверял в протеусе (обмотку представил как последовательные индуктивность и резистор). При данных параметрах движка, конденсаторе 330 нФ и частоте ШИМ 30 кГц ток в обмотке вполне нормально регулируется (пробовал разные коэффициенты заполнения). Да, нелинейная зависимость там, но регулировать реально.
Возникла идея, как применить датчики тока, когда они придут.
ШИМ от МК — по сути дела задаёт ток, который мы хотим подать на шаговик. Ток, протекающий через обмотку, будет пропорционален коэффициенту заполнения этого ШИМ.
«Инверсия тока» — сюда надо подать 1, если мы хотим ограничить отрицательный, а не положительный ток (датчик тока выдаёт 2.5В в нуле, при отрицательном токе напряжение уменьшается, при положительном растёт). 30 кГц — просто 30 кГц откуда-нибудь (по сути это будет частота результирующего ШИМ). Скажем, ШИМ от МК с минимальным коэффициентом заполнения. Ну а выход схемы уже идёт на вход Enable драйвера.
По сути дела что-то подобное находится внутри микросхемы драйвера DRV8825, если верить даташиту.
К счастью, вся логика и компараторы как минимум сдвоенные, да и стоит, несмотря на скорость (я подобрал компоненты, которые дадут задержку порядка 1.5 мкс, притом большую часть задержки даёт датчик тока, время срабатывания отсечки DRV8825 — 4 мкс), не дорого.
AVR Урок 18. Подключаем шаговый двигатель. Часть 2
Урок 18
Подключаем шаговый двигатель
Продолжим подключение к микроконтроллеру Atmega8a подключить шагового двигателя.
В прошлой части занятия мы изучили принцип работы шагового двигателя, а также драйвера шагового двигателя, а также изучили определёные режимы работы данного двигателя.
В данной части занятия мы подключим его к живому контроллеру, а венее к нашей отладочной плате, и, хотя мы, скорее всего, им пока ещё не зашагаем, но код писать начнём.
Для наглядности шагания я прицепил яркую скрепку к валу ротора двигателя, получилось вот так
Шаговый двигатель мы будем подключать вот к такому драйверу
Ну, давайте и подключим
Черный и белый провод, которые мы видим подключенными к драйверу будут подавать питание не микросхему, а также, следовательно и на двигатель чеез выходные ножки разъёма. Питание мы подадим вот с такого вот блока питания на 9 вольт от внешнего жесткого диска
Но 9 вольт для двигателя много, так как питаться он должен от 5 вольт, поэтому применим вот такой вот преобразователь, который на выходе нам выдаст стабилизированные 5 вольт. Данный преобразователь может также выдавать и 3,3 вольт, но нам нужно именно 5 вольт
Подключим к преобразователю питание с блока питания
С преобразователя стабилизированное питание пойдёт на драйвер мотора по белому и чёрному проводу
К контроллеру Atmega8A мы подведём 4 провода для управления двигателем через драйвер на ножки 23 – 26 (ножки портов PC0-PC3)
С другой стороны данные провода мы подключим к ножкам драйвера IN1-In3
Осталось нам подключить к плате программатор и включить к питанию 220 вольт блок питания.
Теперь пришло время заняться кодом.
Проект был создан стандартным образом и назван MyStepMotor, также обычным образом к проекту подключен файл main.h и созданы два файла для будущей библиотеки шагового двигателя с именами stepmotor.h и stepmotor.c.
Содержание файла MyStepMotor.c у нас такое
#include «main.h»
int main ( void )
while (1)
А содержимое main.h такое
#ifndef MAIN_H_
#define MAIN_H_
#define F_CPU 8000000UL
#include
#include
#include
#include «stepmotor.h»
#endif /* MAIN_H_ */
В файле stepmotor.c мы подключим хедер-файл и напишем некоторые макроподстановки для удобного написания кода и обращения к ножкам портов, благо мы знаем к каким ножкам драйвера от каких ножек порта поступает сигнал, также напишем макрос для задержки. 5 милисекунд нам хватит
#include «stepmotor.h»
#define SM_port PORTC
#define SM_ddr DDRC
#define IN1 PORTC0
#define IN2 PORTC1
#define IN3 PORTC2
#define IN4 PORTC3
#define SM_delay _delay_ms (5)
Теперь давайте напишем первую функцию. Это будет функция инциализации нашего двигателя
void SM_ini ( void )
SM_ddr |= (1 IN4 )|(1 IN3 )|(1 IN2 )|(1 IN1 );
((1 IN4 )|(1 IN3 )|(1 IN2 )|(1 IN1 ));
Это стандартная функия инициализация ножек порта на выход и установки всех ножке порта в низкое логическое состояние.
Напишем для неё прототип в хедере
void SM_ini ( void );
А затем вызовем в main()
SM_ini ();
Попробуем собрать код, прошивать пока не будем, так как смысла в этом нет. Функций ещё будет много.
Программатор и шаговый двигатель 28YBJ-48 с драйвером ULN2003 можно приобрести здесь:
Смотреть ВИДЕОУРОК (нажмите на картинку)
Связь STM32 с драйвером шагового двигателя A4899
Я хочу написать драйвер шагового двигателя с STM32L152RE .
Я хотел бы контролировать положение шагового двигателя с помощью потенциометра.
Поскольку я новичок, я не знаю, как общаться с (DIR, STEP).
Может кто-нибудь дать мне свет или показать дорогу?
Я использую микрошаговый драйвер A4988 — DMOS с транслятором и защитой от перегрузки по току
Я попытался использовать STM32 tim, но не смог.
1 ответ
- Возврат значений массива в структуре в C для шагового двигателя
Я пытаюсь вращать шаговый двигатель с процессором rabbit 4000. У меня есть очередь, которая будет содержать структуры, и я создал функцию для создания последовательности двоичных битов, необходимых для запуска шагового двигателя с 4 обмотками. Я пытаюсь передать последовательность из функции в.
Я работаю над кодом Python (ниже), который ускоряет шаговый двигатель до тех пор, пока он не достигнет определенного количества шагов. for s in range (steps): if s
На самом деле я написал целый драйвер для a4988, он основан на irq. Но я не могу его раскрыть. Я могу описать путь, с которого нужно начать. В любом случае у вас должно быть какое-то оборудование, потому что A4988 нужны дополнительные компоненты для управления током (резисторы) и некоторые конденсаторы.. Вы могли бы попробовать POLOLU HW .
Если у вас есть какая-то специальная плата, могут быть некоторые недостатки.. Так что перепроверьте булавки. Особенно контакты ROSC, SENSE1, SENSE2, так как они могут привести к тому, что двигатель не будет работать, даже если другие контакты в порядке.
ROSC pin -код предназначен для режима низкой мощности, поэтому здесь вы должны рассчитать, если вы просто игнорируете его, обязательно подключите по крайней мере к резистору 10k. Не позволяй этому всплыть. Контакты SENSE1, SENSE2 могут быть подключены к резисторам 0.25omh. Вы должны это проверить.
Также из силовых контактов очень решительный VREG pin . Он должен быть от 0 до 2000 мВ, если я помню. На самом деле он управляет током для вашего двигателя. Так что это зависит от вашего шагового двигателя. Здесь также могут появиться неприятные недостатки. Например, у вас маленький шаговый двигатель, и установка слишком высокого значения VREG, чем A4988, приведет к слишком большому току, и ваш двигатель будет работать с сбоями. В любом случае вы должны очень точно прочитать технический паспорт A4988.
ШТИФТ DIR предназначен просто для направления, конфигурации двухтактного штифта и управления ВЫСОКИМИ/НИЗКИМИ значениями направления, по часовой стрелке, против часовой стрелки.
СБРОС ВХОДНОГО PIN -кода A4988 должен получить HIGH от вашего MCU.
ВКЛЮЧИТЕ ВХОДНОЙ PIN -код A4988, чтобы получить LOW от вашего MCU.
ВХОДНОЙ вывод A4988 должен получить HIGH от вашего MCU, также очень полезно контролировать его, когда ваша шаговая работа выполнена, иначе, если вы оставите его всегда HIGH, шаговый двигатель будет потреблять ток и нагреваться на холостом ходу.
Также есть 3 МИКРОШАГОВЫХ ШТИФТА , которые предназначены для управления шагами. Поскольку вы только начинаете играть, вам будет достаточно подключить эти контакты к GND, вы получите полный шаговый режим. Если вы будете контролировать эти контакты, вы можете получить другие режимы, такие как 1/2 шага, 1/4,1/8,1/16.
И общий вывод- это вывод STEP, он должен приводиться в действие с выходом TIMER as PWM с постоянной шириной импульса и переменным периодом.
Вот пример управления ШАГОВЫМ выводом :
например, я подключаю выход STEP от MCU PA9 к входу A4988 STEP. Который может управляться с таймера как PWM. Проверьте свою спецификацию бетона MCU. Во-первых, выходной вывод должен быть сконфигурирован как AF, с двухтактным и резистором UP. Также установите линию для чередования контактов.
Теперь настройка таймера:
Здесь я настраиваю таймер 1us, так как моя частота MCU составляет 48 МГц. Также вы настроили, что таймер будет управлять выходом PWM
. TIM1->CCR = 10; с помощью этого регистра я могу управлять шириной импульса, в данном примере это 10us.
TIM1->ARR = 30; с регистром ARR я могу контролировать период, поэтому это означает частоту импульсов STEP, которая равна скорости шагового двигателя. В данном случае 30us.
Если вы используете HAL и CUBEMX, вы можете получить эти конфигурации довольно быстро.
Похожие вопросы:
У меня есть устройство USB, которое связывается с моим приложением с помощью драйвера приложения. Я должен сделать приложение, которое фактически имитирует эту связь USB с драйвером приложения.
Я пытаюсь провести некоторые эксперименты с контроллером шагового двигателя Trinamic StepRocker в Gnu/Linux. ранее я подключил устройство через USB к машине Windows и использовал фирменное.
Есть ли у кого-нибудь опыт перемещения простого 4-выводного биполярного шагового двигателя с помощью Pontech Big-Easy Kard и платы quick420? Я просто пытаюсь взять включенные Arduino примеров.
Я пытаюсь вращать шаговый двигатель с процессором rabbit 4000. У меня есть очередь, которая будет содержать структуры, и я создал функцию для создания последовательности двоичных битов, необходимых.
Я работаю над кодом Python (ниже), который ускоряет шаговый двигатель до тех пор, пока он не достигнет определенного количества шагов. for s in range (steps): if s