Управление контроллером MK1 и MK2 (planet-cnc)

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

С осциллографом и контроллерами мк1, и мк2 тестировал телеграмму b2, и вот что получилось:
2015-12-08_013047.jpg (2473 просмотра) <a class='original' href='./download/file.php?id=65449&mode=view' target=_blank>Загрузить оригинал (240.36 КБ)</a>
2015-12-08_013100.jpg (2473 просмотра) <a class='original' href='./download/file.php?id=65450&mode=view' target=_blank>Загрузить оригинал (157.51 КБ)</a>
Вставляю как рисунок, т.к. вывод таблицы более сложная задачка
Так-же в программу добавил поддержку параметра "S", в результате чего при команде "S 1000" посылается значение 1000, в контроллер. И на выходе №2 получаем сигнал с определенной частотой (при условии что ранее была команда M3 - включить шпиндель), генерируемый сигнал имеет заполнение высокий/низкий уровень всегда 50/50
Уже недельки через 2 придет лазер на 2 ватта, нужно теперь только собрать преобразователь который из частоты будет генерировать PWM :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

расковырял формулу ускорения:
TelegramData = 3186.7 * 3600 / SQRT ( Accel * StepsUnit)

сегодня после работы доберусь до разъемов
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

формула скорости:
TelegramData = 1.152e9 / (Speed * StepsUnit)
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

Сергей, выводы подачи охлаждающей жидкости и тумана проверил, сигнал там появляется, шпиндель у меня включается сразу к релюшке, всё на плате сразу, релюха тоже переключается.
Единственное, что те контакты, которые у меня на плате, они идут уже после оптокоплеров. Может у тебя статикой пробит один канал, или еще какая оказия приключилась?
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Уже разобрался, вывод с микроконтроллера идет к транзистору который не работает. Так что все нормально :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

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

Не очень понятно, почему меняются байты в телеграмме A0 при изменении установки для оси "Х" шагов на мм с 200 на 400, меняется содержимое двух байт по смещению 42 с 0x60 0x09 на 0xB0 0x04
В программе есть еще какие-то установки, связанные с осью "Х"?
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Karbofos писал(а):Это хорошо, что только транзистор вылетел.
Продолжаю декодировать. Какие максимальные значения могут принимать "шаги на мм", скорость и ускорение?

Не очень понятно, почему меняются байты в телеграмме A0 при изменении установки для оси "Х" шагов на мм с 200 на 400, меняется содержимое двух байт по смещению 42 с 0x60 0x09 на 0xB0 0x04
В программе есть еще какие-то установки, связанные с осью "Х"?
У оси есть еще управление Enable, инвертирование step,dir, применение остановок при срабатывании концевиков по оси.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

selenur писал(а):У оси есть еще управление Enable, инвертирование step,dir, применение остановок при срабатывании концевиков по оси.
да, но эти байты не похожи на битовые маски, значение поменялось с 2400 на 1200
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Пока на коленке, по быстрому, сделал преобразователь сигнала управления скоростью шпинделя для контроллеров MK1, MK2.
Контроллер planet-cnc генерирует сигнал от 1 до 250 Гц, ардуина преобразовывает этот сигнал в PWM сигнал.
Вот код для arduino UNO:
(для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

/*  10.12.2015 0:50  //G:\PROJECTS\0037_PlanetCNC_mk1
 * Преобразование сигнала от контроллера planet-cnc для управления шпинделем в PWM
 * Подключение пин №2 как вход от planet-cnc (INT0)
 *             пин №3 как выход PWM
 */

volatile unsigned long firstPulseTime;
volatile unsigned long lastPulseTime;
volatile unsigned long numPulses;

void isr()
{
  unsigned long now = micros();
  if (numPulses == 0)
  {
    firstPulseTime = now;
  }
  else
  {
    lastPulseTime = now;
  }
  ++numPulses;
}

void setup()
{
  pinMode(3, OUTPUT);
   
  TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20);
  TCCR2B = TCCR2B & 0b11111000 | 0x01;
  OCR2A = 180;
  OCR2B = 1;
}

unsigned int readFrequency(unsigned int sampleTime)
{
  numPulses = 0;                      
  attachInterrupt(0, isr, RISING);   
  delay(sampleTime);
  detachInterrupt(0);
  return (numPulses < 2) ? 0 : (1000000UL * (numPulses - 1))/(lastPulseTime - firstPulseTime);
}

void loop()
{
  unsigned int freq = readFrequency(1000);
  OCR2B = freq;
  delay(10); 
}
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

привет всем. нашёл ещё кое-что.
телеграмма A0, смещение 42 - скорость Jog
телеграмма A0, смещение 62 - jog reverse, битовая маска.
телеграмма A0, смещение 5 - jog swap, битовая маска. в нормальном состоянии отправляется 0x12
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Вот небольшое обновление программы:
cnc.rar
(549.65 КБ) 340 скачиваний
Конечно пока сыровато, но любые пожелания приветствуются :-)
Поддерживаются следующие коды: G0,G1,M3,M5,M7,M8,M9,F,X,Y,Z,A,G90,G91
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Для выполнения g-кода из файла, нужно дополнительно включить если ранее была выключена боковая панелька.
2015-12-14_102308.png (2308 просмотров) <a class='original' href='./download/file.php?id=66050&mode=view' target=_blank>Загрузить оригинал (293.28 КБ)</a>
Если в списке с G-кодом выделить одну строку кода, то выполнение начнется с неё (включительно), и до самой последней команды.
Если в списке выделить несколько строк, то выполняться будет лишь выделенный список команд.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

приветствую!
1. В программе для работы с OpenGL теперь делаю массивы координат и цветов только на QVector, так что без всяких проблем код можно переписать на дотнет.
2. Отрисовку таблицы оптимизировал, теперь вместо десяти минут на моём АМД процессоре тот файл на 8 мегабайт G-Code загружается за пять секунд, начиная с парсера, заканчивая таблицей
3. Выяснил, что поиск по регулярным выражениям QRegExp("([A-Z])") работают медленно, так что, если нуно ускорить, то нужно избавиться от подобного в программе
4. Исходники проактуализировал
5. Грустная новость: полноценная поддержка OpenGL для RasPi будет только в linux kernel 4.5. Пичалька
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

у меня вопрос знатокам:
если прикрутить возможность управлять игровым геймпэд с возможностью переназначения клавиш, будет ли им удобно пользоваться? пока я таких, прикрученных к управлению фрезой, не видел
что-то вроде такого, через USB:
Вложения
919735_LB_00_FB.EPS_1000.jpg (2255 просмотров) <a class='original' href='./download/file.php?id=66172&mode=view' target=_blank>Загрузить оригинал (54.22 КБ)</a>
Аватара пользователя
AlexNikov
Мастер
Сообщения: 1212
Зарегистрирован: 05 янв 2014, 20:09
Репутация: 721
Настоящее имя: Алексей
Откуда: Томск
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение AlexNikov »

У к-флопа есть управление гейм-падом таким - по-мне не удобно, но там кнопки перезначать нельзя. А так эргономика отличная, можно и до ума довести.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Добавил поддержку кодов: G92, G92.1, G92.2, G92.3
Правда что касается G92, пока нельзя указать "x,y,z, или a" в качестве параметров
Вот пример видео
https://www.youtube.com/watch?v=VgqyL5YKOAg
Вот только думаю как графически удобнее отобразить смещенное начало координат. Т.к. для контроллера ничего не меняется, только программно у меня происходит смещение....
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

может пунктирной линией? цвета такие же, но прерывистой.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Вот тоже думаю, пунктиром, или точками отображать смещенную ось. По идее должно быть интуитивно понятно...
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Karbofos
Опытный
Сообщения: 121
Зарегистрирован: 11 июн 2015, 10:40
Репутация: 85
Настоящее имя: Эдя Калиновский
Откуда: Ганновер
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение Karbofos »

AlexNikov писал(а):У к-флопа есть управление гейм-падом таким - по-мне не удобно, но там кнопки перезначать нельзя. А так эргономика отличная, можно и до ума довести.
а можно описать, какие клавиши там как назначены и какими из них неудобно пользоваться? спасибо!
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Управление контроллером MK1 и MK2 (planet-cnc)

Сообщение selenur »

Последняя версия программы для тестирования
cnc.rar
(549.83 КБ) 403 скачивания
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Ответить

Вернуться в «Windows / Mach»