Страница 1 из 2

Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 11:54
RoboTok
Всем привет.

Вот начало:
ссылка на начало

Что в итоге я имею.
Плата 100х150мм.
Вход питания 12В, 3.3В, питание двиг. от 15 до 60В.
Интерфейсы UART, I2C.
4 выхода на коллекторные двигатели.
4 входа для энкодеров квадратурных.

Стоит МК на плате LPC2134 128кБ флеш 16кБ ОЗУ.
Опторазвязки нет.
Нет аппаратной защиты по току.
Теоретически плату делал до 60В питания двигателей и ток ключей 48А.
Практически крутил 2 двигателя нагруженных с потреблением 5А и 24В.
Всё крутится отлично и ключи холодные.
На 10А нагруженный мост был слегка тёплый.

Думаю, что плата сможет работать с двигателями рассчитанными на рабочий ток 7А с пиками до 30А.

Теперь программа.
Прошивка уже есть готовая с управлением через терминал ПК.
Рабочие команды прямая запись ШИМ с направлением и запись ШИМ с плавной регулировкой.
Работа с энкодерами в процессе.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 12:07
spike
А про систему команд расскажи?

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 12:20
RoboTok
Управление моторами.
MX,YYY
X - номер мотора
YYY - ШИМ 7 бит задаёт направление.

Например:
M0,95 - на 1-ый двигатель подать ШИМ 95%
M1, 150 - на 2-ой двигатель подать ШИМ 22% и включить реверс.

Другие команды задают настройки.
Переключение режимов SWX, где Х режим регулирования 0 - прямая запись, 1 - плавное изменение ШИМ до указанного значения.
Например:
SW0 - переключить на режим 0.
Команда TPXX, где XX задаёт паузу между изменением ШИМ для режима 1.

Вот основные команды.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 12:43
kentawrik
А нельзя ли поточнее ссылку на схемку, проанализировать.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 12:45
spike
хм... насколько я понимаю обратной связи по положению пока еще нет?
Для ЧПУ надо реализовывать пространственно-временное управление.
т.е. самое интересное еще впереди!

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 12:45
RoboTok
Схема:

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 12:48
RoboTok
Сделать прошивку с управлением по позиции просто, но нужны энкодеры, которые я сейчас делаю.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 12:49
RoboTok
Например, написать команду переместится на 30 тиков энкодера.

Допустим команда выглядит так:
PZX,YYY - где Х, номер мотора, YYY - количество тиков энкодера и бит 7 направление.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 13:02
spike
RoboTok писал(а):...переместится на 30 тиков энкодера.
Да вот еще надо чтоб за конкретное время

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 13:07
RoboTok
Это уже и будет ПИД с параметрами время и расстояние.
Сделать хорошо не просто такой алгоритм.

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

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 13:21
spike
RoboTok писал(а):Это уже и будет ПИД с параметрами время и расстояние.
Вот, посмотри: ПИД
можт что пригодится...
RoboTok писал(а):Какие обязательные команды нужны у контроллера, чтоб можно было управлять приводом ?
Если чисто для привода - наверное достаточно команды на перемещение на заданное расстояние за заданное время...

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 13:46
RoboTok
Ну вот, можно, для начала, сделать перемещение на расстояние за время.
Команда вот такая.
PTX,N,YYY,ZZZ - где X мотор, N направление, YYY кол-во тиков, ZZZ время в мс.

Команды посылать в COM порт.
Скорость порта 19200 бод.
Если настроить COM порт на нестандартную скорость, то можно и выше.

Вот только как это всё на пальцах делать непонятно.

Как мне кажется, минимум - это когда есть станок готовый под который можно и делать.

П.С.
Про ПИДы я уже начитался.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 17:37
spike
RoboTok писал(а): Вот только как это всё на пальцах делать непонятно.
Как мне кажется, минимум - это когда есть станок готовый под который можно и делать.
А что не понятного, вот тут все правильно написано:
RoboTok писал(а):Ну вот, можно, для начала, сделать перемещение на расстояние за время.
Команда вот такая.
PTX,N,YYY,ZZZ - где X мотор, N направление, YYY кол-во тиков, ZZZ время в мс.
Под такой формат управляющая программа может быть легко настроена.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 20:54
VShaclein
RoboTok писал(а):Вот начало
Контроллер понравился, драйвер - нет. Похож на мой первый. А после него было еще десять версий, и похоже, еще будут )bm( Если кратко, то у вас, из того что я понял, реализован медленный спад тока. Со всеми вытекающими.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 21:43
RoboTok
А можно по конкретнее.
Весь контроллер состоит из одной МК LPC2134.
Если уж делать контроллер хороший, то поставить какой нить покруче чип и загружать весь G-код в него.
Я лучше не мог поставить из за изготовления платы лутом дома.

А что вы имеете ввиду под драйвером с медленным спадом?

Там обычный мост стоит, других вариантов изготовления не встречал...

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 21:59
VShaclein
Тем и понравился, что довольно мощный, хоть для крутых задач может и слабоват.
Медленный спад тока в обмотке - про это уже писано-переписано. Для коллекторника и привода тележки может и не так важно, но для сервы и для шаговиков важно, т.к. без этого они становятся тормозными в управлении - сигнал уже снят, а ток все продолжает течь.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 23:22
spike
VShaclein писал(а):..Медленный спад тока в обмотке - про это уже писано-переписано...
Вить, на "избранное" кинь ссылку - ознакомиться с явлением и методами борьбы...
Мысль кстати пришла: очевидно что энергию в индуктивности двигателя надо куда-то девать, так можт ее в конденсатор? а потом использовать? вроде как "рекуперация"?

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 27 янв 2009, 23:39
VShaclein
Это хде ? Вот дока от алегры - все расписано, что должно быть:

This new IC incorporates several unique design
features, including automatic mixed-mode current decay
control, PWM current control, synchronous rectification,
low rDS(on) power DMOS outputs, full-, half-, quarter-, and
eighth-step operation, HOME output, sleep mode,
and an
easy-to-implement step and direction interface

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 28 янв 2009, 11:33
RoboTok
Хитрые у вас выражения "Медленный спад тока в обмотке".
Довольно трудно понять о чём речь, но я попробую.

Наверно вы хотели спросить, есть ли торможение двигателем в моём драйвере ? )bj(

И скажу я вам, что да есть торможение двигателем и если что, то можно быстро остановить его.

А в моей тележке - это вообще вред.
Железо разбивает в лёт.
Сделал плавное изменение ШИМ и двигатель разгоняется с 0 до максимума за 1с.
Уже работает нормально, хоть и реакция плохая.

Re: Контроллер с драйвером на 4 двигателя (серва)

Добавлено: 28 янв 2009, 12:59
kentawrik
Со схемой понятно.
Но сразу говорю что 4мя сервами на одном контроллере с приемлимой скоростью и разрешением, для станка, управлять невозможно!
Проще тогда ставить драйвер сервы на дуокоре сделанный...
Сила в схеме - важная вещь - но не первостепенная, как я понял работа энкодера - важнее. Необходимо не только обеспечить достаточную точность считывания на больших скоростях, но и еще ПИД-регулирование обсчитать. А вот это задачка не слабая.
Я пока кроме как на ПЛИС это сделать вариантов не вижу.
представьте если с помощью энкодера необходимо обсчитать ПИД для одного двигателя с разрешением 200 импульсов на 1 мм (сразу переведу),
для скорости хотя бы 1 м/c. Какая для этого должна быть производительность контроллера?