Перейти к содержимому



Управление токарным на Atmega


Сообщений в теме: 9060

#1
Автор темы  Олег А. Отправлено 23 November 2012 - 17:56
23 November 2012 - 17:56

     

    • Блог Олег А.
    • Изображения Олег А.
  • Members
  • PipPipPipPipPipPipPipPip
  • 4580 сообщений
  • Город:Рига
Добавка, "рабочая поделка" лежит в "Законченные проекты",
прошу там сильно не раздувать,
перед тем как задавать вопросы ооочень прошу потратить 2 часа времени и бегло проитись по этой теме.

По мотивам темы,
подразумевается, что все заинтересованные хотя бы поперек ее пробежали.
Пытаемся построить (более менее "стандартизированное") управление ходовым винтом на стандартной макетке Arduino Mega 2560,
такая конструкция позволит в дальнейшем собирать "sandwich" под необходимые задачи, вплоть до управления двигателем шпинделя.
Для начала некоторые цитаты:

Просмотр сообщенияDmitriy_N (17 November 2012 - 12:46) писал:

Контроллер у меня без аппаратного модуля энкодера. Я поставил еще один контроллер, который только энкодером и занят (генерирует сигналы CLK и DIR).

Просмотр сообщенияDmitriy_N (17 November 2012 - 21:02) писал:

здесь нет разгона - торможения ШД, т.к. подразумевается, что при включении подачи его стартовая = рабочая скорость достаточно мала. При нарезании резьб подразумевается, что шпиндель остановлен в момент включения функции нарезания резьб. А разгоняется и останавливается он (шпиндель) плавно - вот и разгон и торможение

Просмотр сообщенияАэробус (21 November 2012 - 02:14) писал:

Вариант 1 - Вариант ТС Энкодер на шпиндель, ШД на ведущий вал. Контроллер с кнопками (самоход,резьба,делилка)
Вариант 2 - Сервопривод на ГП, сервопривод на вал, два драйвера на сервоприводы, контроллер с кнопками управления (Регулятор скорости шпинделя,самоход,резьба,делилка)
Вариант 3 - Энкодер на шпиндель, сервопривод на вал, драйвер на сервопривод, контроллер с кнопками управления (самоход,резьба,делилка

Просмотр сообщенияAndreyka (21 November 2012 - 12:50) писал:

В своей разработке "электронной гитары" мне пришлось вставлять ассемблерный код в те критические места
где вполне приличный компилятор CodeVisionAVR не был способен компилировать быстрый код.

Просмотр сообщенияОлег А. (21 November 2012 - 15:47) писал:

1. энкодер на шпиндель, а не у каждого в своем моторе
2. драйвера отдельно.

Просмотр сообщенияАэробус (21 November 2012 - 18:58) писал:

Установка параметров. (шаг ходового винта...)
Возможность задать вид обработки (проход, резьба, канавка...)
Длина прохода.Шаг резьбы, Угол поворота (в случае наличия энкодера) и Направление.
Вывод на экран, скорость шпинделя, угол поворота(В случае наличия энкодера)
Входы энкодер или датчик, (для расчета и отображения оборотов)
Выходы - энкодер, степ/дир на ГП (для управления скоростью ГП и угла повворота)
Можно в принципе тогда управлять скоростью, хоть движка от стиралки ...
Степ\дир на ХВ винт (для управления движением ХВ)
Тогда у кого что есть из драйверов и приводов цепляет к "коробке" задвет шаг ХВ и вперед

Просмотр сообщенияArtie (22 November 2012 - 14:50) писал:

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

Просмотр сообщенияОлег А. (22 November 2012 - 18:41) писал:

...я и предлагаю сделать "наш стандарт" под нашу задачу,
что бы сигналы у всех висели на одних и тех же ногах

Просмотр сообщенияАэробус (23 November 2012 - 01:55) писал:

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

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

Сообщение отредактировал Олег А.: 13 January 2014 - 02:44


#2
Аэробус Отправлено 23 November 2012 - 18:02
23 November 2012 - 18:02

    Из общества нудных престарелых мизантропов.

    • Блог Аэробус
    • Галерея Аэробус
    • Изображения Аэробус
  • Members
  • PipPipPipPipPipPipPipPip
  • 2303 сообщений
  • Город:Украина Николаев
  • Имя:Юрий
Мне так сдается, что нам надо и энкодер и датчик холла.
По датчику считаем обороты и ежели они превышают скажем 1000 или 2000, то работаем с датчиком, ежели меньше, то работаем с энкодером.
Ну и синхронить можно по датчику скажем начало резьбы ежели маточную гайку разъеденить приходится. :).

#3
Автор темы  Олег А. Отправлено 23 November 2012 - 18:17
23 November 2012 - 18:17

     

    • Блог Олег А.
    • Изображения Олег А.
  • Members
  • PipPipPipPipPipPipPipPip
  • 4580 сообщений
  • Город:Рига
Если энкодер самодельный, то теоретически, можно нанести на его диск "черную метку" и считывать ее отдельной оптопарой,
у Dmitriy_N как раз диск с дополнительными метками.

#4
Andreyka Отправлено 23 November 2012 - 18:20
23 November 2012 - 18:20

    ДМБ-72

    • Галерея Andreyka
    • Изображения Andreyka
  • Members
  • PipPipPipPipPipPipPipPip
  • 5149 сообщений
  • Город:Казань
  • Имя:Андрей
Если уж падать на покупное, я бы затеял что-нибудь с таким -

http://www.mikroe.com/ready/xmega/

Прикрепленные изображения


Сообщение отредактировал Andreyka: 23 November 2012 - 18:21


#5
Аэробус Отправлено 23 November 2012 - 18:31
23 November 2012 - 18:31

    Из общества нудных престарелых мизантропов.

    • Блог Аэробус
    • Галерея Аэробус
    • Изображения Аэробус
  • Members
  • PipPipPipPipPipPipPipPip
  • 2303 сообщений
  • Город:Украина Николаев
  • Имя:Юрий
Олег А., Ну у мну есть пара таких же примерно из хюлида, токо на 1200 рисок и есть черные метки и квадратурная метка, ну дык это ж ежели на него оперется, то это буит отдельный проект....

#6
Аэробус Отправлено 23 November 2012 - 18:36
23 November 2012 - 18:36

    Из общества нудных престарелых мизантропов.

    • Блог Аэробус
    • Галерея Аэробус
    • Изображения Аэробус
  • Members
  • PipPipPipPipPipPipPipPip
  • 2303 сообщений
  • Город:Украина Николаев
  • Имя:Юрий
По поводу морфинга задавал Счасливчик в той ткме.
Отдельно темы не встречал, по форумам ЧПУшников в разделах контроллеров обсуждается много где.
Ну на пальцах. форма тока в обмотке:
Полный шаг - это меандр
Микрошаг - синусоида.
Морфинг это постепенное преобразование меандра в синусоиду и обратно. Не меняя количество микрошагов :)
Ну ежели кому вопрос интересен, то можно подробнее, только это опять не по данной теме. :wink:
Вообще тема толкового драйвера ШД, это наверное отдельно, там помимо морфинга есть еще вопросы кои надо учесть. И тема разрастется довольно сильно, ежели за это браться серьезно. Ну и это драйвер скорее для ЧПУ. А соорудить и отладить драйвер со всеми чудесами без навыков и знаний...
Проще и дешевле купить готовый.
А для данного проекта, на мое ИМХО достаточно связки 297-298 (кою можно купить за 5 юсд на бэее)

Сообщение отредактировал Аэробус: 23 November 2012 - 19:02


#7
Автор темы  Олег А. Отправлено 23 November 2012 - 18:39
23 November 2012 - 18:39

     

    • Блог Олег А.
    • Изображения Олег А.
  • Members
  • PipPipPipPipPipPipPipPip
  • 4580 сообщений
  • Город:Рига

Просмотр сообщенияAndreyka (23 November 2012 - 18:20) писал:

Если уж падать на покупное, я бы затеял что-нибудь с таким...
а чем оно будет лучше, кроме как вдвое большей цены?
наличие пустой макетки? так и на плату от Ардуино можно на пины пустую макетку посадить.

п.с. чуть позже постараюсь еще с одной темы полезное вытянуть.

Сообщение отредактировал Олег А.: 23 November 2012 - 18:42


#8
Автор темы  Олег А. Отправлено 23 November 2012 - 20:30
23 November 2012 - 20:30

     

    • Блог Олег А.
    • Изображения Олег А.
  • Members
  • PipPipPipPipPipPipPipPip
  • 4580 сообщений
  • Город:Рига
Некоторые полезности из темы Андрея, надеюсь он не будет против:

Просмотр сообщенияAndreyka (08 February 2012 - 20:14) писал:

Скорость потенциометром (ограничено 200 об/мин в режиме резьбы).
Резьба/подача простым поворотным энкодером (как в бытовой технике).
Алгоритм прост - контроллер следит за энкодером серво (скорость/направление)
и выдает импульсы на ШД.

Просмотр сообщенияAndreyka (08 February 2012 - 21:37) писал:

Здесь важно что количество резьб и номиналы резьб практически не лимитированы.
Контроллер способен хранить в себе еще около 100 номиналов резьб и подач.
Сейчас же прошито только 14 метрических и столько же дюймовых резьб (самых базовых)

Просмотр сообщенияAndreyka (08 February 2012 - 22:10) писал:

...С комилятор CodeVisionAVR.
Прога 16Кб (из 64Кб доступных), в основном забита таблицами деления для получения резьб.
Проблема в том, что нужно в реальном времени вычислить значение делителя шага ШД,
который не может быть представлен в виде целого.
Например как поделить на 1.5? Легко - первый делим на 1, второй на 2 и т.д.
Была сделана утилита генерации таблиц. Задача - создать периодичность в 256 байт.
Это важно, если индексы таблицы размером в байт, тогда не нужно отслеживать выход индексов
за пределы таблиц (AVR -8-ми битный!). Вот фрагмент получаемой таблицы -
// *** Thread: 0.35, divisor: 9.375000 ***
{
9, 9, 10, 9, 9, 10, 9, 10, 9, 9, 10, 9, 9, 10, 9, 10, 9, 9, 10, 9, 9, 10, 9, 10, 9, 9, 10, 9, 9, 10, 9, 10,
...
...
...
9, 9, 10, 9, 9, 10, 9, 10, 9, 9, 10, 9, 9, 10, 9, 10, 9, 9, 10, 9, 9, 10, 9, 10, 9, 9, 10, 9, 9, 10, 9, 10
},

Просмотр сообщенияSermir (08 February 2012 - 22:16) писал:

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

Просмотр сообщенияAndreyka (09 February 2012 - 09:28) писал:

Без таблиц не получится. Абсолютно нет времени что-либо вычислять...

Просмотр сообщенияArtie (09 February 2012 - 22:29) писал:

...но всего пару сложений/вычитаний в long - не такая уж реурсоемкая операция...
...У меня делитель написан сходным образом; - на меге на 16MHz с энкодером 1000lpr (что дает 4000 прерываний на оборот) и двигателе в четвертьшаге успевает крутить 1:1 (оборот ходового на оборот шпинделя) примерно до 800 об/м.

// for 1.8deg, 1/4step, 4000ipr

const thr_t Threads[] PROGMEM=
{{ 1, 79,5242880l, 0,125}, // #0 0.125 mm
{ 3, 199,4369066l, 0,15 }, // #1 0.15 mm
...
...
...
{127, 449, 232214l,0x09,0}, // #42 9 tpi
{127, 399, 206412l,0x08,0}}; // #43 8 tpi


#9
chkmatulla Отправлено 23 November 2012 - 22:59
23 November 2012 - 22:59

     

    • Изображения chkmatulla
  • Banned
  • PipPipPipPipPipPipPipPip
  • 6394 сообщений
  • Имя:Walter
Так, где тут мой зуб ? А кто и где, таинство вершит ? Я первый, если что, за чудом.

#10
kutuzov69 Отправлено 23 November 2012 - 23:12
23 November 2012 - 23:12

     

    • Изображения kutuzov69
  • Members
  • PipPipPipPipPipPipPipPip
  • 852 сообщений
  • Город:Москва
  • Имя:Константин
Сегодня разбомбил два принтера НР и не обнаружил в них энкодеров.Потом мне популярно объяснили :vava: что они только в струйниках.
Предупреждать надо.

#11
Аэробус Отправлено 23 November 2012 - 23:16
23 November 2012 - 23:16

    Из общества нудных престарелых мизантропов.

    • Блог Аэробус
    • Галерея Аэробус
    • Изображения Аэробус
  • Members
  • PipPipPipPipPipPipPipPip
  • 2303 сообщений
  • Город:Украина Николаев
  • Имя:Юрий
chkmatulla, Эк Вы батенька... За зуб исчо надоть побороться.
А таинство вот оно.... Совершается. :)

#12
chkmatulla Отправлено 23 November 2012 - 23:21
23 November 2012 - 23:21

     

    • Изображения chkmatulla
  • Banned
  • PipPipPipPipPipPipPipPip
  • 6394 сообщений
  • Имя:Walter
Ну, давайте бороться. Сколько Вам нужно времени, чтобы переписать программу AtMega в скетч ?

#13
Аэробус Отправлено 23 November 2012 - 23:22
23 November 2012 - 23:22

    Из общества нудных престарелых мизантропов.

    • Блог Аэробус
    • Галерея Аэробус
    • Изображения Аэробус
  • Members
  • PipPipPipPipPipPipPipPip
  • 2303 сообщений
  • Город:Украина Николаев
  • Имя:Юрий
А что Вы обзываете высоким словом скетч? :wink:

#14
chkmatulla Отправлено 23 November 2012 - 23:24
23 November 2012 - 23:24

     

    • Изображения chkmatulla
  • Banned
  • PipPipPipPipPipPipPipPip
  • 6394 сообщений
  • Имя:Walter
Ну, если я правильно усвоил терминологию то, скетчем называют то, что заливают в Arduino.

#15
Dr_Law Отправлено 23 November 2012 - 23:25
23 November 2012 - 23:25

     

    • Галерея Dr_Law
    • Изображения Dr_Law
  • Members
  • PipPipPipPipPipPipPipPip
  • 5884 сообщений
  • Город:Одесса
  • Имя:Алексей
Аэробус, если чо, я стоматолог. И от Одессы до Николаева недалеко :) Скажете, когда/если проиграете свой зуб :) :) :)

А про морфинг шага - хорошо бы поподробнее. Потому что те драйвера от пурелиджика, на которых гордо написано "сделано в России" (поржал) и которые типа с морфингом - на них тоже джамперы полушаг/четверть и т.п....

Если морфингов управлять от контроллера - надо еще два провода как минимум. Если же сам драйвер управляет - откуда он знает, сколько ему еще ехать-то???

Сообщение отредактировал Dr_Law: 23 November 2012 - 23:25


#16
Podushkin Отправлено 23 November 2012 - 23:44
23 November 2012 - 23:44

    2-ой разряд

    • Изображения Podushkin
  • Members
  • PipPip
  • 81 сообщений
  • Город:Питер
  • Имя:Дмитрий
Это морфинг? Управление токарным на Atmega: morf.gif

#17
Аэробус Отправлено 23 November 2012 - 23:48
23 November 2012 - 23:48

    Из общества нудных престарелых мизантропов.

    • Блог Аэробус
    • Галерея Аэробус
    • Изображения Аэробус
  • Members
  • PipPipPipPipPipPipPipPip
  • 2303 сообщений
  • Город:Украина Николаев
  • Имя:Юрий
Ладно... Мне ехать недалече, А чо буим с Вальтером делать? :shok:
Насчет морфинга. Та нет.. Насчет нормального драйвера.
Итак что он должон уметь.

Есть драйвера полно или полушаговые. Они умеют крутить двигатели соответственно в полный шаг или полушаге.
Есть микрошаговые они умеют каждый полный шаг дробить на микрошаги.
При работе в полном шаге и даже в полушаге может возникать явление резонанса и ведущий вал будет колбасить. И двигатель начнет пропускать шаги.
Микрошаговые драйверы дают более плавный ход и снижают значительно это явление.
Драйверы которые сегодня представлены на рынке работают только в том режиме в который вы его настроили. Иными словами. Установили мы микрошаговый драйвер в режим дробления 1/8 шага он будет работать в этом режиме на всех скоростях.
Насчет трассы Одесса-Питер поясня в соседней ветке.
Солидные драйверы должны уметь стартовать на микрошаге (1-я скорость) и с повышением скорости переходить в режимы вплоть до полного шага(5-я скорость), при снижении переходить в микрошаг.
Вторая проблема дешовых драйверов это "кривой" слив тока с обмотки, которая в этот момент не под напругой.
Т.е. опять таки поскольку обмотка имеет индуктивность, ток не появляется в обмотке мгновенно и не может "уйти" мгновенно.
Посему смотря в каком положении ротор и в какой из обмоток надо слить ток, солидные драйвера применяют быстрый, медленный или смешанный спады тока. Умеют перестраивать режимы спада от скорости...
Дешовые всегда стоят в одном режиме (если он вообще у них есть) в который вы его настроили.
Потом еще одна из проблем которые не решаются в дешовых драйверах. Это при высоких скоростях движка и микрошаговых режимах ток в обмотке не успевает вырости до заданного режима. Поэтому теряют скорость и момент.
"Правильные" драйвера умеют повышать предел номинала тока в несколько раз, что позволяет довести ток до номинального даже при больших скоростях.
И наоборот снижать в несколько раз на малых скоростях. Это все снижает нагрев двигателей и повышает характеристики, т.е дает возможность удерживать момент на довольно высоких скоростях.
Ну и должны уметь снижать ток в режиме "длительного" времени удержания ротора.

Насчет как это работает это наверное все же не тема данной ветки, потому как ежели мы начнем все это обсуждать "выплеснем ребенка".
Давайте тут пока решим более глобальные вопросы. По сути это вопрос "интерфейса" Хоть к ШД, хоть к серве.
А Тему драйверов ШД наверное уместней поместить в раздел ЧПУ, потому как эти все чудеса нужны именно там. :)
З.Ы. На самом деле Вы ставите движок в какоето дробление шага - ну допустим 1/16 А контроллер вместо того, что б тупо выдаать синусоиду для каждого микрошага, смотрит на какой скорости счас двиг и в обмотку гачит ток значительно больше или меньше.
Ну эт так - на кирпичах. :hi:

#18
Аэробус Отправлено 23 November 2012 - 23:51
23 November 2012 - 23:51

    Из общества нудных престарелых мизантропов.

    • Блог Аэробус
    • Галерея Аэробус
    • Изображения Аэробус
  • Members
  • PipPipPipPipPipPipPipPip
  • 2303 сообщений
  • Город:Украина Николаев
  • Имя:Юрий
Podushkin, Нет, это синусоида, ну скажем это микрошаг

Сообщение отредактировал Аэробус: 23 November 2012 - 23:52


#19
chkmatulla Отправлено 24 November 2012 - 00:04
24 November 2012 - 00:04

     

    • Изображения chkmatulla
  • Banned
  • PipPipPipPipPipPipPipPip
  • 6394 сообщений
  • Имя:Walter
Ну так что ? Сколько водки получится из 200 литров спир... Сколько времени нужно ?

Сообщение отредактировал chkmatulla: 24 November 2012 - 00:09


#20
Аэробус Отправлено 24 November 2012 - 00:16
24 November 2012 - 00:16

    Из общества нудных престарелых мизантропов.

    • Блог Аэробус
    • Галерея Аэробус
    • Изображения Аэробус
  • Members
  • PipPipPipPipPipPipPipPip
  • 2303 сообщений
  • Город:Украина Николаев
  • Имя:Юрий
chkmatulla, Ну дык народ пока думает над функционалом. Как буит ТЗ то не очю долго. Проблема в том что каждый ТЗ видит по своему. Основное время уходит на утрясание ньюансов. Кои для программирования, могут вылезти в гемороидальные задачи. Посему пока не буит полной ясности, что мы творим, говорить о сроках - это вообще не о чем говорить.





Количество пользователей, читающих эту тему: 3

2 зарегистрированных, 1 гостей, 0 скрытых


Модератор темы: