Страница 18 из 85
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 07 дек 2015, 23:39
selenur
С осциллографом и контроллерами мк1, и мк2 тестировал телеграмму b2, и вот что получилось:
Вставляю как рисунок, т.к. вывод таблицы более сложная задачка
Так-же в программу добавил поддержку параметра "S", в результате чего при команде "S 1000" посылается значение 1000, в контроллер. И на выходе №2 получаем сигнал с определенной частотой (при условии что ранее была команда M3 - включить шпиндель), генерируемый сигнал имеет заполнение высокий/низкий уровень всегда 50/50
Уже недельки через 2 придет лазер на 2 ватта, нужно теперь только собрать преобразователь который из частоты будет генерировать PWM

Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 08 дек 2015, 10:02
Karbofos
расковырял формулу ускорения:
TelegramData = 3186.7 * 3600 / SQRT ( Accel * StepsUnit)
сегодня после работы доберусь до разъемов
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 08 дек 2015, 20:20
Karbofos
формула скорости:
TelegramData = 1.152e9 / (Speed * StepsUnit)
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 09 дек 2015, 00:21
Karbofos
Сергей, выводы подачи охлаждающей жидкости и тумана проверил, сигнал там появляется, шпиндель у меня включается сразу к релюшке, всё на плате сразу, релюха тоже переключается.
Единственное, что те контакты, которые у меня на плате, они идут уже после оптокоплеров. Может у тебя статикой пробит один канал, или еще какая оказия приключилась?
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 09 дек 2015, 04:44
selenur
Уже разобрался, вывод с микроконтроллера идет к транзистору который не работает. Так что все нормально

Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 09 дек 2015, 11:43
Karbofos
Это хорошо, что только транзистор вылетел.
Продолжаю декодировать. Какие максимальные значения могут принимать "шаги на мм", скорость и ускорение?
Не очень понятно, почему меняются байты в телеграмме A0 при изменении установки для оси "Х" шагов на мм с 200 на 400, меняется содержимое двух байт по смещению 42 с 0x60 0x09 на 0xB0 0x04
В программе есть еще какие-то установки, связанные с осью "Х"?
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 09 дек 2015, 11:59
selenur
Karbofos писал(а):Это хорошо, что только транзистор вылетел.
Продолжаю декодировать. Какие максимальные значения могут принимать "шаги на мм", скорость и ускорение?
Не очень понятно, почему меняются байты в телеграмме A0 при изменении установки для оси "Х" шагов на мм с 200 на 400, меняется содержимое двух байт по смещению 42 с 0x60 0x09 на 0xB0 0x04
В программе есть еще какие-то установки, связанные с осью "Х"?
У оси есть еще управление Enable, инвертирование step,dir, применение остановок при срабатывании концевиков по оси.
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 09 дек 2015, 12:12
Karbofos
selenur писал(а):У оси есть еще управление Enable, инвертирование step,dir, применение остановок при срабатывании концевиков по оси.
да, но эти байты не похожи на битовые маски, значение поменялось с 2400 на 1200
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 09 дек 2015, 23:21
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);
}
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 13 дек 2015, 23:16
Karbofos
привет всем. нашёл ещё кое-что.
телеграмма A0, смещение 42 - скорость Jog
телеграмма A0, смещение 62 - jog reverse, битовая маска.
телеграмма A0, смещение 5 - jog swap, битовая маска. в нормальном состоянии отправляется 0x12
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 14 дек 2015, 08:21
selenur
Вот небольшое обновление программы:
Конечно пока сыровато, но любые пожелания приветствуются

Поддерживаются следующие коды: G0,G1,M3,M5,M7,M8,M9,F,X,Y,Z,A,G90,G91
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 14 дек 2015, 08:27
selenur
Для выполнения g-кода из файла, нужно дополнительно включить если ранее была выключена боковая панелька.
Если в списке с G-кодом выделить одну строку кода, то выполнение начнется с неё (включительно), и до самой последней команды.
Если в списке выделить несколько строк, то выполняться будет лишь выделенный список команд.
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 15 дек 2015, 02:21
Karbofos
приветствую!
1. В программе для работы с OpenGL теперь делаю массивы координат и цветов только на QVector, так что без всяких проблем код можно переписать на дотнет.
2. Отрисовку таблицы оптимизировал, теперь вместо десяти минут на моём АМД процессоре тот файл на 8 мегабайт G-Code загружается за пять секунд, начиная с парсера, заканчивая таблицей
3. Выяснил, что поиск по регулярным выражениям QRegExp("([A-Z])") работают медленно, так что, если нуно ускорить, то нужно избавиться от подобного в программе
4. Исходники проактуализировал
5. Грустная новость: полноценная поддержка OpenGL для RasPi будет только в linux kernel 4.5. Пичалька
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 15 дек 2015, 14:04
Karbofos
у меня вопрос знатокам:
если прикрутить возможность управлять игровым геймпэд с возможностью переназначения клавиш, будет ли им удобно пользоваться? пока я таких, прикрученных к управлению фрезой, не видел
что-то вроде такого, через USB:
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 15 дек 2015, 14:47
AlexNikov
У к-флопа есть управление гейм-падом таким - по-мне не удобно, но там кнопки перезначать нельзя. А так эргономика отличная, можно и до ума довести.
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 15 дек 2015, 23:08
selenur
Добавил поддержку кодов: G92, G92.1, G92.2, G92.3
Правда что касается G92, пока нельзя указать "x,y,z, или a" в качестве параметров
Вот пример видео
https://www.youtube.com/watch?v=VgqyL5YKOAg
Вот только думаю как графически удобнее отобразить смещенное начало координат. Т.к. для контроллера ничего не меняется, только программно у меня происходит смещение....
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 16 дек 2015, 00:15
Karbofos
может пунктирной линией? цвета такие же, но прерывистой.
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 16 дек 2015, 04:46
selenur
Вот тоже думаю, пунктиром, или точками отображать смещенную ось. По идее должно быть интуитивно понятно...
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 16 дек 2015, 12:27
Karbofos
AlexNikov писал(а):У к-флопа есть управление гейм-падом таким - по-мне не удобно, но там кнопки перезначать нельзя. А так эргономика отличная, можно и до ума довести.
а можно описать, какие клавиши там как назначены и какими из них неудобно пользоваться? спасибо!
Re: Управление контроллером MK1 и MK2 (planet-cnc)
Добавлено: 16 дек 2015, 21:30
selenur
Последняя версия программы для тестирования