MAL4X Научно-технический форум разработчиков симуляторов и автоматики


Симуляторы перегрузок. DIY электроника. ЭВМ. Компьютерные сети.
Up

Разработка нового контроллера

Строим реалистичный симулятор перегрузок своими руками. Рекомендации. Советы.

Модераторы: Death_Morozz, null, Ale

Сообщение Ale » 03 ноя 2012, 13:15

taran_ob писал(а):Вы не правы, скорей необходимой для спортивной конкуренции с системой Томаса!
А то пока это все плагиат...

Давай на "ты"... Тут как-то "выкать" не принято , привыкай.
"Томаса" улыбнуло Изображение Тоже привыкай. Правильно - "Таноса"

Лады, давай продолжать. Я предлагаю попробовать тебе заинтегрировать все свои предложения в "реальный" проект. Т.е. не отсылать всех к... м... на сайты для ознакомления, а собрать свое предложение в единый пакет. В котором (имхо) должно быть следующее:

1 - Контроллер, где взять, сколько стоит, характеристики, тип связи с компом.
2 - Драйвер (именно который ты рекомендуешь с высоты своего опыта). Где взять, сколько стоит, характеристики.
3 - Двигатель для этого драйвера, где взять.. ну и т.д
4 - Энкодер....

Желательно не в виде ссылок (хотя и они пригодятся) а в виде краткого конспекта.

Я не держусь за проект Таноса. Как раз наоборот. Но он был очень важен для меня в плане понимания собственно темы.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение taran_ob » 03 ноя 2012, 16:34

Ale писал(а):1 - Контроллер, где взять, сколько стоит, характеристики, тип связи с компом.
2 - Драйвер (именно который ты рекомендуешь с высоты своего опыта). Где взять, сколько стоит, характеристики.
3 - Двигатель для этого драйвера, где взять.. ну и т.д
4 - Энкодер....


Давай начну с конца. По стараюсь подробней может кто читает далекий от электроники.

4 - Энкодер - оптический квадратурный инкрементный. Это диск с отверстиями, штрихами или прорезями расположенный между оптроном (светодиодом и двумя фотодиодами). Минимальное разрешение (количество отверстий диска) зависит от конкретного конструктива сима и от разрешающей способности управляющей программы. У программа Таноса программа выдает +-128=256, наверно, достаточно, даже если в симе 500 мм перемещение, то это шаг 500/256=2 мм. Минимальное разрешение энкодера = разрешение программы управления (256)/ на число оборотов двигателя для перемещения от начала до конца (для системы с двумя моторами это в среднем 30 оборотов). Значит отверстий в диске должно быть не менее 256/30=9, лучше больше но без фанатизма. Один шаг мотора - это будет поворот вала на угол между двумя отверстиями енкодера. Управляющей программе указываем, что единица перемещения это столько то шагов.
Как вариант, в диске от шариковой мыши около 45 прорезей-подходит. Диск крепим к торцу вала мотора сзади. Оптрон берем из той же мыши.
http://youtube.com/watch?v=6vVykeyk8KQ


3 - Мотор, любой у кого какой есть.

2 - Драйвер. Под драйвером имеется ввиду силовая часть управления мотором (в случае с DC мотором - Н мост, для 3х фазного синхронного - частотный преобразователь(инвертор, частотник)) с ПИД контроллером и интерфейсом управления STEPDIR. Такие драйвера продаются, давал ссылки. И ли можно собрать самому, к примеру проекты YAPSC:10V для синхронного(контроллер ПИД для чистотника) и YAPSC:V1(H мост+ПИД+STEPDIR) для DC мотора (стоимость = стоимость моста + микроконтроллер 6$Изображение . Драйвер управляется двумя сигнальными линиями. DIR - направление вращения (0- в одну сторону, 1- в другую). STEP - шаг - поворот вала мотора на единичный угол энкодера. Подаются импульсы, 1 импульс - 1 шаг, частота импульсов больше - вал вращается быстее, нет импульсов нет вращения. Но даже если импульсов нет - драйвер не дает отклониться валу мотора больше чем на единичный угол. По этому если использовать редуктор, который может провернуться под весом игрока в статике, лучше энкодер с бОльшим разрешением, чтоб не ощущать колебаний.

1 - Ну и собственно контроллер с программой для компа. Его та нам и нужно сотворить. Связь с компом UART по USB через мост FT232 или встроенный в микроконтроллер. Или HID. Возможность управлять 4мя драйверами - 8 выходов. Отслеживать состояние концевиков с запасом по 2 на ось - 8 входов.
По функциям может быть 2 варианта:
1)должен принимать координаты от компа, расчитывать количество шагов (импульсов) для достижения цели и частоту их следования и направление движения. Дергать ногами. Колибровать перемещения по концевым датчикам (микрикам).
2) должен принимать от компа количество шагов и значение частоты, дергать ногами, и передовать информацию о концевых датчиках.
Я не программист, по этому сразу сходу выбрать микроконтроллер не могу, но основное требование - уметь дергать четырьмя ногами на разных частотах, думаю до 2кгц (не прикидывал-интуитивно).


(Добавление)
Если возражений по концепции нет, предлагаю обсудить алгоритм работы контроллера и программ.

(Добавление)
К стати, так как у контроллера и программы нет аналоговой обратной свези, связку легко моделировать, скажем в протеусе.

(Добавление)
Еще один вариант реализации управления драйверами по степдир чисто программный через LPT порт. LPT может смело управлять 4мя движками и принимать до 8 сигналов от концевиков. Контроллер вообще не нужен. Но на новых компах его часто нет.

(Добавление)
Предполагаемый алгоритм настройки собранного сима:
1 Настраивается ПИД контроллер драйвера - один раз!. В случае проектов YAPSC - с помощь программы на компе через COM порт или переходник USB. В результате настройки вы получаете информацию о гарантированных динамических возможностях привода (максимальное ускорение, торможение, скорость) и разрешающую способность.

2 Настраивается программа управления контроллером на компе. Указывается число моторов. Схема конструкции сима для построения траектории. Вводится число шагов от начала до конца движения по всем осям с учетом коэффициента = число шагов на единицу перемещения. Линейность-не линейность привода. Схему расположения концевиков. Опираясь на полученную информацию в ходе настройки драйвера, настраиваете динамические характеристики ускорение, торможение, скорость (не требуя невозможного от привода) для достижения максимального эффекта симуляции.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение AlexVr » 03 ноя 2012, 19:08

энкодер из мыши очень трудоемкое именно по механике дело - хлипкие пластмассочки, тоненькая ось, дешевле купить, чем дня 3 потратить на изготовление. Да и ресурс у самоделки будет сопоставим с резистором.
ПИД конечно вещь полезная. Но в моем случае от Кр зависит только начало перерегулирования - раскачки, выставляю на мин. Отклик хороший, асинхроник, благодаря частотнику практически не изменяет скорость при нагрузке (становились на платформу в районе тяги вдвоем, а это 170 кг - качает только в путь). Движки по 750 Вт.
Да и от раскачки относительно центра тяжести я ушел - классные ощущения, когда на кочке тебя подбрасывает вверх, кресло уходит вниз, доли секунды ты в невесомости!!!
Аватара пользователя
AlexVr
SIMER
 
Сообщения: 449
Зарегистрирован: 05 апр 2010, 20:48
Благодарил (а): 23 раз.
Поблагодарили: 32 раз.
Баллы репутации: 71
Технарь

Сообщение taran_ob » 03 ноя 2012, 23:47

AlexVr писал(а):энкодер из мыши очень трудоемкое именно по механике дело - хлипкие пластмассочки, тоненькая ось, дешевле купить, чем дня 3 потратить на изготовление. Да и ресурс у самоделки будет сопоставим с резистором.
ПИД конечно вещь полезная. Но в моем случае от Кр зависит только начало перерегулирования - раскачки, выставляю на мин. Отклик хороший, асинхроник, благодаря частотнику практически не изменяет скорость при нагрузке (становились на платформу в районе тяги вдвоем, а это 170 кг - качает только в путь). Движки по 750 Вт.
Да и от раскачки относительно центра тяжести я ушел - классные ощущения, когда на кочке тебя подбрасывает вверх, кресло уходит вниз, доли секунды ты в невесомости!!!


Во во, я об этом писАл выше, что все проблемы частично решаются установкой моторов с большим запасом мощности. Но цена, вес, потребление...

А по поводу энкодера, ни чего страшного что он хлипкий. В торце вала двигателя сверлим отверстие вставляем на клей переходную трубочку, а в нее вал энкодера от мыши, или сразу вал без трубочки если длинна позволит. Так как он веса не имеет, то ни куда не денется. Оптрон на кронштейне. И все. Изнашиваться там не чему, так как нет трущихся поверхностей.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение AlexVr » 04 ноя 2012, 09:08

taran_ob писал(а):В торце вала двигателя сверлим отверстие вставляем на клей переходную трубочку, а в нее вал энкодера от мыши, или сразу вал без трубочки если длинна позволит.

валы в движках как правило каленые, мне сверлом даже поцарапать не удалосьИзображение
Аватара пользователя
AlexVr
SIMER
 
Сообщения: 449
Зарегистрирован: 05 апр 2010, 20:48
Благодарил (а): 23 раз.
Поблагодарили: 32 раз.
Баллы репутации: 71
Технарь

Сообщение Ale » 04 ноя 2012, 10:06

taran_ob писал(а):Если возражений по концепции нет, предлагаю обсудить алгоритм работы контроллера и программ.

Возражения по концепции естьИзображение . Но обсудить алгоритмы можно.

taran_ob писал(а):К стати, так как у контроллера и программы нет аналоговой обратной свези, связку легко моделировать, скажем в протеусе.

Да и с обратной аналоговой связью ПРОТЕУС вполне справляется.

taran_ob писал(а):1 Настраивается ПИД контроллер драйвера - один раз!.

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

taran_ob писал(а):Я не программист, по этому сразу сходу выбрать микроконтроллер не могу, но основное требование - уметь дергать четырьмя ногами на разных частотах, думаю до 2кгц (не прикидывал-интуитивно).

Любой микроконтроллер от ATMEL справится с этой задачей. Я могу поспособствовать в написании софта для контроллера. Буду участвовать в обсуждении. Но сам я пока на твою концепцию переходить не буду. И вот почему (повторюсь) :

Я не хочу использовать энкодеры с их концевиками и обязательной процедурой начальной иннициализации. Да, потенциометры тоже не айс, но их вполне может заменить датчик ХОЛЛА, который тоже не подвержен износу. Это первое.

Я собираюсь в своем симе использовать моторы от Газелевских стеклоочистителей (или подобные) со встроенным редуктором. И использовать пол оборота выходного вала. Как при этом пристраивать энкодер я не знаю - доступа к валу движка нет. А если цеплять на вал редуктора - пол оборота энкодера не дадут нужную точность. Это второе.

Мыши с шариками давно умели, и не всякий сможет найти такую для "распотрошить". Это третье.

@taran_ob: Поскольку ты собираешься строить СИМ, давай сделаем его вместе. Народ поддтянется к обсуждению. Я чем смогу - помогу. Могу нарисовать, развести и запрограммировать контроллер. Можно вообще Arduino платформу использовать. Драйверы с моторами ты сам достанешь. Давай сделаем твой сим, что бы на реальном продукте посмотреть - сколько стоит и как работает...
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение taran_ob » 04 ноя 2012, 12:12

Ale писал(а):1 Настраивается ПИД контроллер драйвера - один раз!.
Это слишком оптимистичное заявление.


Ну конечно же это не 5ти минутное дело, но очень даже реальное. Ранее я давал ссылку на свое творение ПИД регулятора на меге8 с исходниками, правда скорости-не положения, для 220В коллекторного двигателя. Настроил один раз, причем на слух, и забыл. На радиокоте есть моя паяльная станция для фена с ПИ регулятором - мониторилась настройка в терминале. А в предложенном варианте есть визуализация процесса настройки, что упрощает задачу.

Ale писал(а):Любой микроконтроллер от ATMEL справится с этой задачей.

Вот это и нужно, а то в голове крутится код для микроконтроллера у которого 6 таймеров- хотелось бы более дешевый. Так что помощь понадобится.
Ale писал(а):Я собираюсь в своем симе использовать моторы от Газелевских стеклоочистителей (или подобные) со встроенным редуктором. И использовать пол оборота выходного вала. Как при этом пристраивать энкодер я не знаю - доступа к валу движка нет. А если цеплять на вал редуктора - пол оборота энкодера не дадут нужную точность. Это второе.


Да, энкодер на выходной вал точно не поставить. Но вполне реально просверлить отверстие в торце корпуса движка и удлинить вал способом описанным выше.

AlexVr писал(а):валы в движках как правило каленые, мне сверлом даже поцарапать не удалось


Коленные, но не в центрах! Я сверлил даже дрелью и резьбу резал на 4, но если удлинять на много лучше на токарном.

Ale писал(а):Мыши с шариками давно умели, и не всякий сможет найти такую для "распотрошить". Это третье.

На колесе прокрутки тоже диски бывают. Можно и маленький шаговый двигатель использовать в качестве энкодера.

Ale писал(а):@taran_ob: Поскольку ты собираешься строить СИМ, давай сделаем его вместе. Народ поддтянется к обсуждению. Я чем смогу - помогу. Могу нарисовать, развести и запрограммировать контроллер. Можно вообще Arduino платформу использовать. Драйверы с моторами ты сам достанешь. Давай сделаем твой сим, что бы на реальном продукте посмотреть - сколько стоит и как работает...


Ок, спасибо! Согласен. Пока детали собираю.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Сообщение kuzevan » 13 ноя 2012, 12:08

Ale, хочу попробовать связать твою управляющую программу с Ардуино. Но не нашел описания управления снятием данных с контроллера. Формат данных (26 байт) нашел на буржуйском сайте. Как я понимаю, для получения данных на контроллер надо послать какой-то запрос. Какой?
Не нашел и исходников прошивки, они открыты?
Аватара пользователя
kuzevan
Парторг
 
Сообщения: 60
Зарегистрирован: 25 окт 2011, 17:17
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Баллы репутации: -6

Сообщение Ale » 13 ноя 2012, 13:15

kuzevan писал(а):Ale, хочу попробовать связать твою управляющую программу с Ардуино. Но не нашел описания управления снятием данных с контроллера. Формат данных (26 байт) нашел на буржуйском сайте. Как я понимаю, для получения данных на контроллер надо послать какой-то запрос. Какой?


Привет! Значица так:
- формат данных, которые прога xSimCTRL ждет от контроллера действительно описан на буржуйском сайте. Сейчас я его опишу еще и тут, в ветке про новую прошивку. Это будет логичнее.

- Сама программа xSimCTRL после включения флажка "прием данных" готова получать эти данные от контроллера для отображения. Но, поскольку в моей прошивке передача данных ведется не постоянно, а включаться и выключается, то программа естественно посылает на контроллер команду "включить передачу". Формат этой команды (как и многих других) я тоже опишу. Но ты можешь постоянно слать данные, и просто игнорировать эту команду.

kuzevan писал(а):Не нашел и исходников прошивки, они открыты?

Исходники прошивки не открыты (в смысле, не лежат в открытом доступе). Если нужно - я тебе перешлю, стучись в личку.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Сообщение kuzevan » 13 ноя 2012, 14:31

К сожалению, тема прошивки только для тестеров, поэтому пишу здесь.
Описание команд там не закончено (или не поместилось полностью).
С какой периодичностью идет передача данных от контроллера на программу, 3.57мс?
А если контроллер работает с другим периодом, будут ли данные приниматься и отображаться корректно?
Аватара пользователя
kuzevan
Парторг
 
Сообщения: 60
Зарегистрирован: 25 окт 2011, 17:17
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Баллы репутации: -6

Сообщение Ale » 13 ноя 2012, 14:47

kuzevan писал(а):К сожалению, тема прошивки только для тестеров, поэтому пишу здесь.
Описание команд там не закончено (или не поместилось полностью).
С какой периодичностью идет передача данных от контроллера на программу, 3.57мс?
А если контроллер работает с другим периодом, будут ли данные приниматься и отображаться корректно?


Я просто не успеваю.. потерпи Изображение
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Разработка нового контроллера

Сообщение taran_ob » 29 ноя 2012, 12:38

Набросал альтернативную схемку, каким мне видится контроллер с драйвером для сима. Прошу покритиковать предметно.
Если в часть схемы 485 включить трансформатор DA2303-AL - 3$, можно не питаться от USB.
При использовании драйверов полевиков типа ir2184, нужно позаботиться о том, чтоб питание мотора появлялось не раньше питания логики.
Вложения
servo4sim.GIF
предполагаемая схема контроллера
servo4sim.GIF (178.08 КБ) Просмотров: 14971
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Re: Разработка нового контроллера

Сообщение taran_ob » 29 ноя 2012, 17:17

приемопередатчик USB <-> RS485
Вложения
usb2rs485.GIF
приемопередатчик USB <-> RS485
usb2rs485.GIF (15.57 КБ) Просмотров: 14962
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Re: Разработка нового контроллера

Сообщение Ale » 01 дек 2012, 10:37

taran_ob писал(а):Прошу покритиковать предметно.

Предметно, так предметно.

1 - включение IR2184 отличается от рекомендованного в даташите.

IR2184 connection.jpg
IR2184 connection.jpg (45.86 КБ) Просмотров: 14944

Если это не ошибка, обоснуй. Если ошибка, могу еще раз процитировать Жванецкого - тщательнее надо (с). :D

2 - сейчас (для наброска схемы) это не принципиально, но силовые транзисторы выбраны не оптимальные. Те же IRF3205 имеют сопротивление открытого канала 0.008 Ом против 0.04 Ом у IRF260.

3 - не очень удобно иметь кроме напряжения питания HV силового, еще и +14В.

Пока все, это совсем на первый взгляд.
Аватара пользователя
Ale
Разработчик
 
Сообщения: 1477
Зарегистрирован: 01 фев 2011, 20:48
Откуда: Дубна
Благодарил (а): 570 раз.
Поблагодарили: 595 раз.
Баллы репутации: 277
ТехнарьТехнарьТехнарь

Re: Разработка нового контроллера

Сообщение taran_ob » 01 дек 2012, 16:16

Оговорюсь сразу, возможно я погорячился что запостил в этой ветке, так как схемное решение, действительно, далеко не главное. А написать код лучше тебя, Ale, не смогу, буду пытаться портировать. Это всего лишь один из вариантов схемной реализации, к которому я буду придерживаться. Лично меня больше беспокоит, собственно, не схема, а развязка питания и логики, точки соединения земли.
Освоить проектирование мощных импульсных схем, наскоком, мне кажется, сложно, опыт имеется :( . По этому для себя уяснил: дешевле повторить проверенную схему (связку) и очень желательно топологию, так как ошибки приводят к выгоранию кучи не дешевых деталей; питание силовой части подавать гарантированно после логики; тщательно продумывать развязку.
У меня уже есть движки 48В 12А в импульсе, которые будут питаться от трансформаторов, тоже есть, 260Вт 54В. По этому мост подбирался соответствующий.
Теперь по вопросам.
1 Если имеются ввиду элементы в цепях затворов, то правильнее объяснить чем в той ветке (ссылка на оригинал в теме про мост) где я взял схему у меня не получится. Но для движков 12В такой огород не нужен, достаточно по одному сопротивлению как в даташите.
2 Сопротивление открытого канала не самое важное в динамическом режиме. И не смотря на то, что IRF3205 мне не подходят по напряжению, альтернатива за те же деньги с лучшими характеристиками чем IRFP260 все же есть, IRF3415 на пример. Но я перебдел чтоб его быстродействие не вылезло боком.
3 Согласен, очень не красиво. При 12В все просто - кренка 5в. Если до 30В, то импульсный стабилизатор mc34063 на 12В для питания ирок, потом все та же кренка на 5В. Если до 72В, то тогда луше заводской DC-DC типа NSD05-S, но стоит он дороже 220 AC-DC. Напряжение очень желательно последовательно уменьшать! Ale, вариант как у тебя с повышающим DC-DC у меня не пошел. Да и надежность ниже. Но в любом случае, если питаться от силы, то чтоб она попала на ключи позже 12В-14В нужно, либо все очень тщательно рассчитать, либо ставить ключ. Самое простое это реле, но тут есть серьезные ограничения по коммутируемому постоянному напряжению. Вывод: при питании до 24В все красиво, если выше - дешевле внешнее питание.

ПС если нужно было бы покупать моторы и питание, то я бы строил на частотниках. 200Вт трехфазник стоит дешевле качественного газелевского моторедуктора, а импульсный блок питания 12В 350Вт не на много дешевле частотного преобразователя.
taran_ob
Комсорг
 
Сообщения: 137
Зарегистрирован: 27 окт 2012, 22:05
Откуда: Ukraine
Благодарил (а): 5 раз.
Поблагодарили: 11 раз.
Баллы репутации: 19
Новичок

Пред.След.

Вернуться в X-SIMULATOR и RU-SIMULATOR & SimTools

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 148

cron
x

#{title}

#{text}