Управляйте старым двигателем принтера с помощью позиционного кольца

Сегодня я купил два старых принтера на гаражной распродаже в надежде разобрать их и поиграться с шаговыми двигателями. Разобрав их оба, я обнаружил, что шаговых двигателей нет. Все они управляются полупрозрачным пластиковым кольцом с несколькими «точками/тире» снаружи. У него также есть что-то похожее на датчик, который считывает положение кольца.

Мне интересно, есть ли относительно простой способ управления этими двигателями, как они были задуманы, с пластиковыми кольцами и датчиками? Моя цель — сделать их управляемыми, как шаговый двигатель. Я хотел бы узнать больше об этой системе, они используют, возможно, правильное название для нее. В конце концов я хотел бы, чтобы двигатели управлялись с моего RaspberryPi.

Обновлять:

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

Здесь

Кодер

Ответы (1)

Такой энкодер не управляет двигателем напрямую, его единственная цель - дать вам обратную связь о положении вала двигателя. Независимо от типа двигателя вам нужно будет контролировать положение двигателя с помощью энкодера, а затем соответствующим образом управлять им, пока он не окажется в требуемом положении.

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

Вероятная проблема при попытке использовать его напрямую с Raspberry Pi заключается в том, что выходные данные кодировщика, как показано в таблице данных, вероятно, будут возникать слишком быстро, чтобы их можно было обрабатывать в пользовательской программе, и, вероятно, для надежной работы потребуется использовать прерывания (т. е. код ядра). Я бы обычно использовал отдельный микроконтроллер для такой задачи, чтобы считывать энкодер и управлять двигателем в режиме реального времени, а также связывать его с Pi с помощью SPI или последовательного интерфейса.

Хотя это был бы интересный проект, я не могу придумать какой-либо особенно простой способ использовать комбинацию с Raspberry Pi, и, вероятно, это будет сложный проект, если вы мало что сделали с системами управления двигателем.