Перейти к публикации

Из сообщений удалены кнопки "цитата" и "мультицитата". Используйте выделение для цитирования.

Олег А.

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

Какая версия "гитары", в текущий момент, установлена на Вашем станке?  

85 пользователей проголосовало

  1. 1. Какая версия "гитары", в текущий момент, установлена на Вашем станке?

    • Digital_Feed_2e
      6
    • Digital_Feed_3b
      1
    • Digital_Feed_3b_Uno
      2
    • Digital_Feed_4k
      2
    • Digital_Feed_4k_lite
      1
    • Digital_Feed_5d
      2
    • Digital_Feed_6c_auto
      14
    • Digital_Feed_7e2
      57


Рекомендованные сообщения

Добавка, "рабочая поделка" лежит в "Законченные проекты",

прошу там сильно не раздувать,

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

 

По мотивам темы,

подразумевается, что все заинтересованные хотя бы поперек ее пробежали.

Пытаемся построить (более менее "стандартизированное") управление ходовым винтом на стандартной макетке Arduino Mega 2560,

такая конструкция позволит в дальнейшем собирать "sandwich" под необходимые задачи, вплоть до управления двигателем шпинделя.

Для начала некоторые цитаты:

17.11.2012 в 10:46, Dmitriy_N сказал:

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

17.11.2012 в 19:02, Dmitriy_N сказал:

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

21.11.2012 в 00:14, Аэробус сказал:

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

Вариант 2 - Сервопривод на ГП, сервопривод на вал, два драйвера на сервоприводы, контроллер с кнопками управления (Регулятор скорости шпинделя,самоход,резьба,делилка)

Вариант 3 - Энкодер на шпиндель, сервопривод на вал, драйвер на сервопривод, контроллер с кнопками управления (самоход,резьба,делилка

21.11.2012 в 10:50, Andreyka сказал:

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

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

21.11.2012 в 13:47, Олег А. сказал:

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

2. драйвера отдельно.

21.11.2012 в 16:58, Аэробус сказал:

Установка параметров. (шаг ходового винта...)

Возможность задать вид обработки (проход, резьба, канавка...)

Длина прохода.Шаг резьбы, Угол поворота (в случае наличия энкодера) и Направление.

Вывод на экран, скорость шпинделя, угол поворота(В случае наличия энкодера)

Входы энкодер или датчик, (для расчета и отображения оборотов)

Выходы - энкодер, степ/дир на ГП (для управления скоростью ГП и угла повворота)

Можно в принципе тогда управлять скоростью, хоть движка от стиралки ...

Степ\дир на ХВ винт (для управления движением ХВ)

Тогда у кого что есть из драйверов и приводов цепляет к "коробке" задвет шаг ХВ и вперед

22.11.2012 в 12:50, Artie сказал:

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

22.11.2012 в 16:41, Олег А. сказал:

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

что бы сигналы у всех висели на одних и тех же ногах

22.11.2012 в 23:55, Аэробус сказал:

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

 

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

при достижении какой либо определенности, перейти к интерфейсу управления.

Изменено пользователем Олег А.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне так сдается, что нам надо и энкодер и датчик холла.

По датчику считаем обороты и ежели они превышают скажем 1000 или 2000, то работаем с датчиком, ежели меньше, то работаем с энкодером.

Ну и синхронить можно по датчику скажем начало резьбы ежели маточную гайку разъеденить приходится. :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если энкодер самодельный, то теоретически, можно нанести на его диск "черную метку" и считывать ее отдельной оптопарой,

у Dmitriy_N как раз диск с дополнительными метками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если уж падать на покупное, я бы затеял что-нибудь с таким -

 

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

post-49871-096675400 1353680417_thumb.jpg

Изменено пользователем Andreyka

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По поводу морфинга задавал Счасливчик в той ткме.

Отдельно темы не встречал, по форумам ЧПУшников в разделах контроллеров обсуждается много где.

Ну на пальцах. форма тока в обмотке:

Полный шаг - это меандр

Микрошаг - синусоида.

Морфинг это постепенное преобразование меандра в синусоиду и обратно. Не меняя количество микрошагов :)

Ну ежели кому вопрос интересен, то можно подробнее, только это опять не по данной теме. :wink:

Вообще тема толкового драйвера ШД, это наверное отдельно, там помимо морфинга есть еще вопросы кои надо учесть. И тема разрастется довольно сильно, ежели за это браться серьезно. Ну и это драйвер скорее для ЧПУ. А соорудить и отладить драйвер со всеми чудесами без навыков и знаний...

Проще и дешевле купить готовый.

А для данного проекта, на мое ИМХО достаточно связки 297-298 (кою можно купить за 5 юсд на бэее)

Изменено пользователем Аэробус

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если уж падать на покупное, я бы затеял что-нибудь с таким...

а чем оно будет лучше, кроме как вдвое большей цены?

наличие пустой макетки? так и на плату от Ардуино можно на пины пустую макетку посадить.

 

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

Изменено пользователем Олег А.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Некоторые полезности из темы Андрея, надеюсь он не будет против:

Скорость потенциометром (ограничено 200 об/мин в режиме резьбы).

Резьба/подача простым поворотным энкодером (как в бытовой технике).

Алгоритм прост - контроллер следит за энкодером серво (скорость/направление)

и выдает импульсы на ШД.

Здесь важно что количество резьб и номиналы резьб практически не лимитированы.

Контроллер способен хранить в себе еще около 100 номиналов резьб и подач.

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

...С комилятор 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

},

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

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

...но всего пару сложений/вычитаний в 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так, где тут мой зуб ? А кто и где, таинство вершит ? Я первый, если что, за чудом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сегодня разбомбил два принтера НР и не обнаружил в них энкодеров.Потом мне популярно объяснили :vava: что они только в струйниках.

Предупреждать надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

chkmatulla, Эк Вы батенька... За зуб исчо надоть побороться.

А таинство вот оно.... Совершается. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, давайте бороться. Сколько Вам нужно времени, чтобы переписать программу AtMega в скетч ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что Вы обзываете высоким словом скетч? :wink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, если я правильно усвоил терминологию то, скетчем называют то, что заливают в Arduino.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Изменено пользователем Dr_Law

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ладно... Мне ехать недалече, А чо буим с Вальтером делать? :shok:

Насчет морфинга. Та нет.. Насчет нормального драйвера.

Итак что он должон уметь.

 

Есть драйвера полно или полушаговые. Они умеют крутить двигатели соответственно в полный шаг или полушаге.

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

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

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

Драйверы которые сегодня представлены на рынке работают только в том режиме в который вы его настроили. Иными словами. Установили мы микрошаговый драйвер в режим дробления 1/8 шага он будет работать в этом режиме на всех скоростях.

Насчет трассы Одесса-Питер поясня в соседней ветке.

Солидные драйверы должны уметь стартовать на микрошаге (1-я скорость) и с повышением скорости переходить в режимы вплоть до полного шага(5-я скорость), при снижении переходить в микрошаг.

Вторая проблема дешовых драйверов это "кривой" слив тока с обмотки, которая в этот момент не под напругой.

Т.е. опять таки поскольку обмотка имеет индуктивность, ток не появляется в обмотке мгновенно и не может "уйти" мгновенно.

Посему смотря в каком положении ротор и в какой из обмоток надо слить ток, солидные драйвера применяют быстрый, медленный или смешанный спады тока. Умеют перестраивать режимы спада от скорости...

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

Потом еще одна из проблем которые не решаются в дешовых драйверах. Это при высоких скоростях движка и микрошаговых режимах ток в обмотке не успевает вырости до заданного режима. Поэтому теряют скорость и момент.

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

И наоборот снижать в несколько раз на малых скоростях. Это все снижает нагрев двигателей и повышает характеристики, т.е дает возможность удерживать момент на довольно высоких скоростях.

Ну и должны уметь снижать ток в режиме "длительного" времени удержания ротора.

 

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

Давайте тут пока решим более глобальные вопросы. По сути это вопрос "интерфейса" Хоть к ШД, хоть к серве.

А Тему драйверов ШД наверное уместней поместить в раздел ЧПУ, потому как эти все чудеса нужны именно там. :)

З.Ы. На самом деле Вы ставите движок в какоето дробление шага - ну допустим 1/16 А контроллер вместо того, что б тупо выдаать синусоиду для каждого микрошага, смотрит на какой скорости счас двиг и в обмотку гачит ток значительно больше или меньше.

Ну эт так - на кирпичах. :hi:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Podushkin, Нет, это синусоида, ну скажем это микрошаг

Изменено пользователем Аэробус

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну так что ? Сколько водки получится из 200 литров спир... Сколько времени нужно ?

Изменено пользователем chkmatulla

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Точно такое же объяснение я слышал всегда, когда заходил разговор. Потом шло, не было времени, ездил в отпуск. Потом, давай лучше через программатор, а то у Arduino что- то не идёт...

Наверное тогда не будем даже и начинать. Итог я уже знаю.

Пойду я тогда своим путём.

Изменено пользователем chkmatulla

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну никто не заставляет. Иначе чем я сказал не бывает. Это все одно как я к Вам пришол и говорю - выточите мне вал.

Вы мне - а размеры?

А я вам говорю Вы точите потом разберемся....

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

Вот сейчас мы над чертежом и работаем. Программирование в данном случае ничем от этого процесса не отличается.

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

Изменено пользователем Аэробус

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да нет, я даю готовую программу,а Вы её, из CodeVizion в Ардуино. И Фсё.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Ну и к слову. Готовая программа подразумевает (в частности для МК) Абсолютно точное повторение ЖЕЛЕЗА. Т.е. платы куда она заливается и перефирии коеей она управляется. Потому как МК всегда затачивается под то чем он управляет.

Изменено пользователем Аэробус

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://www.cncmaster...9adbd17fa5e9017

Исходников нет, но есть прошива. Из самоделок пока лучше не видел

Прошел всю тему, а для развития и две параллельных, не нашел принципиальной схемы,

у тя нет случайно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×