Контроллер для ЧПУ оборудования (Управление по UART).

Тема в разделе "Глядите, что я сделал", создана пользователем rff-ei, 24 янв 2017.

  1. rff-ei

    rff-ei Гик

     
    Alex19 нравится это.
  2. rff-ei

    rff-ei Гик

    hex файл
     

    Вложения:

    • YMKA.zip
      Размер файла:
      21,4 КБ
      Просмотров:
      309
    Последнее редактирование: 27 янв 2017
    Alex19 нравится это.
  3. rff-ei

    rff-ei Гик

    Подготовка к работе :

    Что бы начать работу с "УМКОЙ 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 строк)
    (ОСТАВЛЯЙТЕ В ЭТОЙ ТЕМЕ КОММЕНТАРИИ)
    ПОСТАРАЮСЬ УЧЕСТЬ ВСЕ ВАШИ ЗАМЕЧАНИЯ И ПРЕДЛОЖЕНИЯ !
     
    Последнее редактирование: 2 фев 2017
  4. rff-ei

    rff-ei Гик

    Использования "УМКИ" может быть очень многообразным ,все зависит от вашей фантазии : В паре сArduino можно например автоматизировать работу чего либо , считать G_code с SD карты и др . С блютуз модулем отсылать команды на расстоянии с планшета или телефона , С Nextion монитором создать полноценную ЧПУ стойку , и многое другое .
    Вот небольшой пример

     
  5. rff-ei

    rff-ei Гик

    Код (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;}
       }
    }
     
     
  6. rff-ei

    rff-ei Гик

    В Коде выше строка
    обнуляет все 4 оси ,что бы обнулить их отдельно отсылаем на "УМКУ" следующие команды
    PT0 -обнуление всех осей
    PT1-обнуление X
    PT2- обнуление Y
    PT3- обнуление Z
    PT4- обнуление A
     
  7. rff-ei

    rff-ei Гик

    попозже выложу примеры для Nextion

     
  8. rff-ei

    rff-ei Гик

    У меня Nextion NX4024T032_11
    Версия программы 0.38 (на других может не работать ,но можно обновить исходник)

    с расширением
    ....tft (скопировать на мини SD ,вставить в слот дисплея)
    и
    .... HMI(исходник для Nextion editor)
     

    Вложения:

    Последнее редактирование: 27 янв 2017
    Alex19 нравится это.
  9. rff-ei

    rff-ei Гик

    КОМАНДЫ, ОТСЫЛАЕМЫЕ В 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 -обнуляем А
     
  10. rff-ei

    rff-ei Гик

    Nextion не может отправлять числа с плавающей точкой ,поэтому с него я отправляю целое число ,а Умка его делит на 1000 ,для того что бы он понял ,что строка пришла с Nextion впереди строки пишем символ '/ '
    Пример : Что бы отправить строку X0.505Y2.010Z-123.000F1000S24000
    отправляем следующую строку
    /X505Y2010Z-123000F1000S24000 (F и S делиться на 1000 не будут)
     
  11. rff-ei

    rff-ei Гик

    Вообще исходник представленный выше для Nextion слишком сложный и не нужный для этой задачи (я его написал изначально когда был плохо знаком с этим дисплеем и устанавливал галочки которые определяют формат отправки строки в зависимости от надобности числа или текста по uart ,нет смысла отправлять числа .
    вообщем немного пообщавшись с этим дисплеем появилось много чего меня перестало устраивать (это мое субъективное мнение ) для многих задач очень даже не плох . А для своих сделал вот что