Подготовка к работе : Что бы начать работу с "УМКОЙ 1.01", необходимо записать параметры конфигурации вашего станка в энергонезависимую память микроконтроллера . Запись строки в память всегда нужно начинать с буквы W. Чтобы параметры вступили в силу ,нужно перезагрузить микроконтроллер. 1.Установка шага винтов. Шаг винта на осях X,Y,Z,A -это расстояние пройденное выбранным порталом, за один оборот шагового двигателя.Будем обозначать его латинской буквой V. Пример: X=4mm,Y=8mm,Z=1.25mm Для оси А записывается редукторность . А=2 (на 2 оборота шагового , поворотная ось делает 1 оборот ) Отсылаем в COM порт следующую строку : W VX4 VY8 VZ1.25 VA2 перезагружаем , проверяем . 2.Дробление установленное на драйверах обозначим латинской D. Пример: W DX8 DY8 DZ8 DA4 перезагружаем , проверяем . 3.Начальная скорость разгона двигателей R ( При токарной обработке учитываться не будет ) от 0 до 10 Для фрезерных рекомендуется установить 8-9, для лазера 10 , для непредсказуемых от 0 до 8 Пример : W RX9 RY9 RZ9 RA9 перезагружаем , проверяем . 4. Направление движения по осям обозначим N ( Для выбора направления установим 0 или 1 ) Пример: W NX0 NY1 NZ1 NA0 перезагружаем , проверяем . 5. S-максимальная частота оборотов вашего шпинделя или лазера . Для лазера удобнее установить S=100. W S100 перезагружаем , проверяем . После этого ,если отослать в порт S100 на 3пине PWM (ШИМ) будет равен 5в(100%) , а если S10 , то 0.5в(10%) 6.Используя HPGL или PLT комманды ,для фрезерного станка нужно ограничить глубину и зону безопасности по Z отсылаем: W GZ-2.5 BZ5 ( глубина будет -2.5мм а зона безопасности 5мм) перезагружаем , проверяем . Для лазерного станка нужно просто включать и отключать TTL ( 3пин для АРДУИНО ) отсылаем W GZ0 BZ0 перезагружаем , проверяем . ПРОШИВКА ТЕСТОВАЯ(ограничение 72 часа работы ,за 1 сеанс не более 99 строк) (ОСТАВЛЯЙТЕ В ЭТОЙ ТЕМЕ КОММЕНТАРИИ) ПОСТАРАЮСЬ УЧЕСТЬ ВСЕ ВАШИ ЗАМЕЧАНИЯ И ПРЕДЛОЖЕНИЯ !
Использования "УМКИ" может быть очень многообразным ,все зависит от вашей фантазии : В паре сArduino можно например автоматизировать работу чего либо , считать G_code с SD карты и др . С блютуз модулем отсылать команды на расстоянии с планшета или телефона , С Nextion монитором создать полноценную ЧПУ стойку , и многое другое . Вот небольшой пример
Код (C++): char simvol; String stroka[]={ "PT0;", "Z5", "X10Y10", "Z-2", "X50", "Y50", "X10", "Y10", "Z5", "X0Y0Z0A0", }; int i=0; void setup() { Serial.begin(9600); } void loop() { while(!Serial.available()){} simvol=Serial.read(); if (simvol=='%')//пока не придет такой символ следующую строку не отправляем { Serial.print(stroka[i]);//не устанавливать Serial.println(); i++; if(i==10){i=0;} } }
В Коде выше строка обнуляет все 4 оси ,что бы обнулить их отдельно отсылаем на "УМКУ" следующие команды PT0 -обнуление всех осей PT1-обнуление X PT2- обнуление Y PT3- обнуление Z PT4- обнуление A
У меня Nextion NX4024T032_11 Версия программы 0.38 (на других может не работать ,но можно обновить исходник) с расширением ....tft (скопировать на мини SD ,вставить в слот дисплея) и .... HMI(исходник для Nextion editor)
КОМАНДЫ, ОТСЫЛАЕМЫЕ В COM ПОРТ: ^ -вход в токарную обработку и выход из нее. Если ^0 -выход. Если с другим значением ,допустим ^0.5 , то подача врезания фрезы в заготовку, после каждого прохода по оси А, будет равна 0.5мм PT0-обнуление всех 4-х осей PT1-обнуление оси X PT2-обнуление оси Y PT3-обнуление оси Z PT4-обнуление оси A B - диаметр заготовки. Если вы в процессе работы хотя бы 1раз вводили B, то перед изменением этой переменной нужно обнулить Z отправив в порт PT3 или PT0. X,Y,Z,A - объяснять я думаю не надо ,вводить их нужно заглавными латинскими буквами, а значения для них можно отсылать в любом виде ( 0.6 3 5.09 ),но обязательно должна быть точка ,а не запетая. d -требуемый диаметр.(только малая латинская) Вводя эту переменную ,"УМКА" пересчитывает ее в координату по Z с учетом введенного вами B (диаметра заготовки ) F- в режиме токарной обработки скорость поворота оси А ( об\мин ) F- в обычном режиме ,скорость перемещения по осям X,Y,Z,A ( мм\мин ) ОСОБЕННОСТИ ТОКАРНОЙ ОБРАБОТКИ: При токарной обработки после поворота оси А на заданный градус координата ее обнуляется. Она не может быть больше 360 (градусов),но может быть с отрицательным значением (меняется направление ).Выйдя из токарной обработки ось А становиться обычной координатой ,то есть если B=40 (диаметр заготовки 40мм) длина окружности А=125.66мм (это будет видно в мониторе порта после ввода B).И если в порт послать это значение : A125.66 ,ось А сделает один полный оборот ,а если A1256.6 ,то 10оборотов.Это помогает нам сделать резьбу на заготовке . Допустим на заготовке диаметром 40мм нужно пройтись фрезой по X 120мм на глубине 2мм и с шагом резьбы 6мм . 120 / 6 = 20 оборотов ,следовательно длину окружности 125.66мм * 20 = 2513.2мм отсылаем : PT3 -обнуляем Z ^0 -выходим из токарной обработки Z-2 –врезаемся на 2 в глубину X120A2513.2 при необходимости PT4 -обнуляем А
Nextion не может отправлять числа с плавающей точкой ,поэтому с него я отправляю целое число ,а Умка его делит на 1000 ,для того что бы он понял ,что строка пришла с Nextion впереди строки пишем символ '/ ' Пример : Что бы отправить строку X0.505Y2.010Z-123.000F1000S24000 отправляем следующую строку /X505Y2010Z-123000F1000S24000 (F и S делиться на 1000 не будут)
Вообще исходник представленный выше для Nextion слишком сложный и не нужный для этой задачи (я его написал изначально когда был плохо знаком с этим дисплеем и устанавливал галочки которые определяют формат отправки строки в зависимости от надобности числа или текста по uart ,нет смысла отправлять числа . вообщем немного пообщавшись с этим дисплеем появилось много чего меня перестало устраивать (это мое субъективное мнение ) для многих задач очень даже не плох . А для своих сделал вот что