Найти в Дзене
DIGANN.RU | Linux & IT

Сервопривод из старого флоппи-диска своими руками. Часть 0: Начало

Давно хотел разобраться, как устроены ВДПТ (вентильный двигатель постоянного тока), или BLDC-двигатели. И вот это время пришло. От старых ПК у меня осталось 5 старых 3,5-дюймовых флоппи-дисководов, и я решил использовать BLDC-двигатели из этих флоппи-дисков. Что из этого получится и получится ли вообще — пока непонятно, но попытка не пытка. Как говорится, дорогу осилит идущий. Сложно? Да. Но безумно интересно. Как итог, если всё получится — сделать хоббийный ЧПУ станок. На фото — двигатели из флоппи-дисков. Один двигатель имеет 15 обмоток и 10 пар полюсов на роторе. Второй двигатель имеет 12 обмоток и 7 пар полюсов (но это не точно, у второго не считал, сколько полюсов). Из двигателя выходит 4 провода: три провода — это фазы A, B и C, и четвёртый — это общая точка (нейтраль), где объединены начала трёх обмоток. На фото — микроконтроллеры, которые у меня есть. В общем, идея — сделать сервопривод и разбираться по ходу дела, что и как. Для управления этим двигателем мне понадобится микрок

Давно хотел разобраться, как устроены ВДПТ (вентильный двигатель постоянного тока), или BLDC-двигатели. И вот это время пришло. От старых ПК у меня осталось 5 старых 3,5-дюймовых флоппи-дисководов, и я решил использовать BLDC-двигатели из этих флоппи-дисков. Что из этого получится и получится ли вообще — пока непонятно, но попытка не пытка. Как говорится, дорогу осилит идущий. Сложно? Да. Но безумно интересно.

Как итог, если всё получится — сделать хоббийный ЧПУ станок.

BLDC двигатели из 3.5 дюймовых флоппи дисков.
BLDC двигатели из 3.5 дюймовых флоппи дисков.
BLDC двигатели из 3.5 дюймовых флоппи дисков. Слева 15 обмоток, справа 12 обмоток.
BLDC двигатели из 3.5 дюймовых флоппи дисков. Слева 15 обмоток, справа 12 обмоток.

На фото — двигатели из флоппи-дисков. Один двигатель имеет 15 обмоток и 10 пар полюсов на роторе. Второй двигатель имеет 12 обмоток и 7 пар полюсов (но это не точно, у второго не считал, сколько полюсов). Из двигателя выходит 4 провода: три провода — это фазы A, B и C, и четвёртый — это общая точка (нейтраль), где объединены начала трёх обмоток.

Две платы arduino pro mini (Atmega168) и одна плата arduino pro micro (Atmega32u4)
Две платы arduino pro mini (Atmega168) и одна плата arduino pro micro (Atmega32u4)

На фото — микроконтроллеры, которые у меня есть.

В общем, идея — сделать сервопривод и разбираться по ходу дела, что и как. Для управления этим двигателем мне понадобится микроконтроллер. У меня есть два микроконтроллера Arduino Pro Mini на МК ATmega168 и один микроконтроллер Arduino Pro Micro на МК ATmega32U4. Пока Pro Micro буду использовать как ISP-программатор для Pro Mini. Для начала нужно сделать сервопривод для одной из осей станка. И мне понадобится трёхфазный полумост для управления обмотками двигателя по шестиступенчатой схеме. Микроконтроллер и полумост будут драйвером для нашего двигателя. Также нужно будет сделать прошивку на Си для управления двигателем. Так как двигатель маломощный, всего 12 В и 1–1,5 А, то скорей всего придётся делать для него редуктор, думаю, редуктора 1 к 10 хватит.

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

Краткая теория: что такое BLDC-двигатель

BLDC (BrushLess DC), или по-русски ВДПТ (вентильный двигатель постоянного тока), — это бесщёточный двигатель, у которого нет коллектора и щёток. Коммутация обмоток происходит электронным способом.

Конструкция:

  • Статор — неподвижная часть с обмотками (обычно 3 фазы: A, B, C)
  • Ротор — вращающаяся часть с постоянными магнитами

Принцип работы:

  1. Подаём ток на две из трёх фаз
  2. В статоре создаётся магнитное поле
  3. Ротор с магнитами поворачивается, чтобы совпасть с полем статора
  4. Переключаем фазы — ротор поворачивается дальше
  5. Повторяем — двигатель вращается

Шестиступенчатая коммутация

Для управления трёхфазным BLDC-двигателем используется шестиступенчатая коммутация (6 шагов на один электрический оборот).

6 шагов коммутации:

-4

Где:

  • AH, BH, CH — верхние ключи (подключают фазу к +12В)
  • AL, BL, CL — нижние ключи (подключают фазу к GND)

Как это работает:

  1. Включаем AH + BL → ток течёт через фазу A в фазу B → ротор поворачивается
  2. Включаем AH + CL → ток течёт через фазу A в фазу C → ротор делает ещё шаг
  3. И так далее по кругу...

За один электрический оборот двигатель делает 6 шагов. Если у двигателя 10 пар полюсов, то для одного механического оборота нужно 10 электрических оборотов = 60 шагов. 60 шагов у первого двигателя с 15 обмотками и 10 парами полюсов на роторе.

Что такое драйвер и MCU

Драйвер — это схема, которая управляет ключами двигателя. Обычно это:

  • 3 верхних ключа (MOSFET) — подключают фазы к питанию
  • 3 нижних ключа (MOSFET) — подключают фазы к земле
  • Драйверы затворов — усиливают сигнал от МК для управления MOSFET

MCU (Microcontroller Unit) — микроконтроллер. В моём случае это ATmega168 (Arduino Pro Mini). Он:

  • Генерирует PWM-сигналы для ключей
  • Считывает энкодер (обратная связь)
  • Реализует PID-регулятор
  • Управляет всем процессом

Схема управления (будет в следующей статье)

В следующей статье я добавлю:

  • Полную схему драйвера
  • Ссылку на прошивку на GitFlic
  • Видео запуска двигателя

Что получилось:

  • ✅ Изучил теорию шестиступенчатой коммутации
  • ✅ Запустил двигатель без обратной связи
  • ✅ Разогнал до 4000 об/мин

Что будет дальше:

  • Добавлю энкодер (1000 PPR)
  • Попробую реализовать точное позиционирование
  • Реализую и настрою PID-регулятор
  • Добавлю редуктор 1:10

Следите за серией и подписывайтесь! Следующая статья: «Часть 1: Схема драйвера и первый запуск»