nlothik (nlothik) wrote,
nlothik
nlothik

Виктория

Или "наконец-то это заработало". После долгих поисков контроллеров для шаговых моторов я, наконец-то, вроде купил то, что мне нужно. Это китайская плата с тремя чипами Тосиба TB6560AHQ и интерфейсом для параллельного порта. Всё в одном. Такую и надо было сразу покупать, а не мучаться дурью с ST и Техасскими Инструментами.

Я, правда, пробовал эти контроллеры потому что планировал сначала управлять шаговиками из Ардуино, а ей команды скармливать через USB. Но тогда бы мне пришлось писать интерпретатор команд g-code (низкоуровневый язык программирования ЧПУ) для Ардуино, и ещё месяц отлавливать в нём баги. В принципе, в написании интерпретатора нет ничего такого сильно сложного. Ведь совершенно необязательно уметь интерпретировать ВСЕ команды g-code, штук десяти вполне хватит.

Основная сложность -- в выведении правильных формул для линий в трёхмерном пространстве.

Вот, например, команда g-code: G01 X1.0 Y2.0 Z3.0 F5.0

Это означает -- иди по прямой линии в точку с координатами 1.0, 2.0, 3.0 со скоростью 5.0.

Придётся всё это приводить в параметрические уравнения прямых в пространстве типа x = x0 + p1 t. И пошагово рассчитывать точки, куда надо привести двигатель.

Ну это-то в принципе, несложно. Почесал репу, вспомнил курс матана и вперёд.

Но в g-code есть не только прямые линии. Коды G02 и G03 -- команды для движения по дуге заданного радиуса или вокруг центра с определёнными координатами, по часовой, или против часовой стрелки соответственно. Ну, дуга -- это, конечно, сложнее, чем прямая линия, но подъёмно. Но и G02, и G03 также могут принимать параметр Z! То-есть, это будут уравнения не дуги, а спирали в трёхмерном пространстве. Я, конечно, люблю математику, но не до такой степени :)))

Поэтому идею с Ардуино я похерил и решил всё делать на базе PC с управлением через параллельный порт. Благо программы-интерпретаторы для PC уже давно написаны, и баги в них уже найдены. Сейчас пробую с LinuxCNC. Параллельного порта на том компьютере, что мне достался бесплатно, не было, так что пришлось докупать PCI карту. Вот тут кстати, зарыта мина, на которую я напоролся -- адрес порта на такой плате не стандартный 0x378. Надо делать sudo lspci -v и смотреть на адреса. На моей карте на том компьютере адрес порта был 0xcc00.

Но после того, как всё наконец-то было настроено, оно, наконец-то, заработало!

cnc_working


Работать-то оно работает, но вот максимальными оборотами, который развивает шаговый двигатель, я не очень впечатлён. Примерно 3 оборота в секунду при питании от +12 вольт. На моём ШВП это примерно 18 сантиметров в минуту. Мягко говоря, небыстро. Даёшь команду крутиться быстрее -- дёргается, но не крутится. Или же крутится, но пропускает шаги, из-за чего сильно вибрирует. Проблем может быть две -- либо надо поднимать напряжение питания двигателя, чтобы ток в обмотках нарастал быстрее (максимально плата принимает +36 вольт), или же не успевает параллельный порт/контроллер. Плата сделана более-менее по уму, с изоляцией оптопарами -- но оптопары также вводят дополнительные задержки.

Так что буду пробовать:

1. Повысить напряжение питания
2. Попробовать не Линукс, а Винду, программу Mach3. Она не бесплатная, но в комплекте с платой-контроллером шла лицензия на неё. Вдруг на Винде будет быстрее?
3. Найти оптопары побыстрее

Если кто ещё чего предложит -- буду рад.
Tags: cnc, компьютерное, техника, хобби, чесать репу
Subscribe

  • Как Гугл делает панорамы в пустынях

    VIA Mirrored from Лабораторный Журнал №6 rss2lj

  • Баклажаны

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

  • Про метрическую систему

    Кодекс США от 1975 года, глава 15, параграф 205b: Декларация о политике Соединённых Штатов: (1) определить метрическую систему измерения как…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments