ЧПУ на arduino
- Войдите на сайт для отправки комментариев
Доброго времени суток уважаемые форумчане.
Хочу предложить совместный проект, по созданию станка с ЧПУ, который бы управлялся через USB а не через LPT. Думаю не стоит обяснять актуальность.
Так вот задачи следующие.
1. сопряжение arduino с драйвером двигателей. (Это наерно самая простая часть.)\
2. Выбор или разработка библиотеки для управления ШД.
3. Разработка ПО для работы со станком.
Пока все в таком виде, потому как на данный момент делаю небольшой тестовый станочек, для дальнейших исследований (сама станина).
Прошу подключиться всех интересующихся, и программирующих. Потому что один я не осилю, особенно программирование самого ПО.
Возможно что в итоге контроллер будет не ардуино, т.е. тут не играет принципиальной роли ... главное все отработать с работой через USB/
Тема интересна, но смущает Возможно что в итоге контроллер будет не ардуино, т.е. тут не играет принципиальной роли , просто при таком раскладе лучше обратится на форум к чепеушникам.
По третьему пункту мне как раз кажется не имеет смысл городить новое ПО, а следует делать под какое-нибудь существующее решение и стандартный протокол передачи данных для CNC - G-код. Например, EMC под linux правда, но бесплатно и с открытым исходным, но ничего наверное не мешает запустить его на виртуальной машине. Делать под G-code, это как мне кажется правильно, хорошо и универсально с точки зрения ПО, плюс не надо изобретать велосипедов, плюс можно много полезного из спецификации подчеркнуть.
Arduino думается способен сильно упростить разработку, особенно для начинающих, так что почему бы не на нем.
все уже давно придуманно http://www.planet-cnc.com
да и Mach3 работает через юсб
но это все так мелочи а суть в том предлогаю Вам подумать почему многие если не все до сих пор рулят через LPT ?
попробую натолкнуть на мысль проследите путь упровляющего импульса
от USB бежать надо а не стремится или делать очень скоростной на основе FPGA или CDLP буфер с памятью
Если у Вас огромное желание сделать станок на основе ардуины то мой совет вам пойте путем сброса данных и дальнейшего их выполнения силами самого ардуино или через USB или вообще флешкой или через сеть но суть таже вся инструкция сбрасывается целиком проверяется и лиж потом начинает выполнятся
Ну вот я потому и написал 3 пункт, так как не уверен что контроллер в том виде в котором он сможет обеспечить достаточную аппаратную платформу. И хватит ли скоростей. По поводу LPT - это просто панацея. Если бы изначально было USB то все бы пользовали его, но так как на то время это единственный порт передачи данных такого рода, то его и пользовали.
Если MAch3 работает через USB то значит можно и ее поюзать, главное разобраться как связать с ардой.
Пока в планах следующее:
1. Доделать станину, сейчас почти готова ось Х и Z.
2. на базе ардуино сделать что то типа ручного управления, для отработки позиционирования по 0 точкам и крайним положениям, ну и все механические части соответственно проверить, всю метрику отследить.
3. Попробовать через USB и ардуино поотправлять координаты и так далее.
суть паралельного порта именно в его паралельности и сообветсвенно в том что команды приходят паралельно на разные приводы но синхронно и согласовано вы как бы сразу посылаете трем двигателям координаты направления скорость ну или пустое место то есть пропуск что то же значение и так цикл за циклом а в usb так не сделать вам нужно передать данные заранее последовательно в буфер а потом по команде выдать их на приводы синхронно тут получится что вам так и так придется создовать паралельный порт хоть и виртуальный ну то есть вы просто можете купить переходник usb - lpt и вот вам и все ли бо нужно создовать систему независемого управления и контроля каждой оси в реальном времяни как это реализованно на современных станках только вот программное обеспеч там сложное мне кажется тут не обойтись своими силами если с апаратной частью я бы мог чем то вам помочь то с программами ничем вы сейчас когда вся механика будет готова можете на sd карту записать логинг и прогнать
в ардуино не USB порт а эмуляция com порта через транспорт usb это во многом усложняет все но в принципе там быстродействия большого не надо думаю при продуманном алгоритме все должно получиться
и еще выскажу свое субьективное мнение что использовать луч серводвигатели если нет таковых то начать нужно именно с разработки их так как в последующем это даст огромные приемущества чего в случае применения шаговиков не будет сервопривод можно изготовить из любова коллекторника прицепив на вал счетчик оборотов энкодер или любое устройство обратной связи
еще хотел спросить а вы используете ШВП направляющие профеля или это как то по другому выглядит
to kikia99: Прям расставил точки над И. Теперь стало понятно, что сложновато но можно. Ладно до этого еще далековато так что думаю успею этот вопрос прошерстить.
Я использую не ШВП. Использую обычную резьбовую шпильку М8. Рама станины это алюминиевый уголок, и прямоугольный профиль из строительных уровней. Другого найти не удалось. Для большого станка я буду применять "правило" так как его жесткость больше чем у обычного прямоугольного профиля.
Тип станка будет портальный. Вскором времени выложу фотки.
для фрезеровки плат и сверления должно хватить я сам примерно так начинал потом на низкокачественном станке делал детали для следующего уже болле качественно а на нем для следующего так что путь вы выбрали интересный а главное практичный и полезный если что пишите помогу всем чем смогу
по поводу червяка присмотритесь к домкратам автомобильным там и гайка и червь есть
Вот примерно по такому пути и хочу пойти, кстати да чет даже в голову не пришло домкрат я думаю достану.... Но это уже для большего и помощнее станочка)).
Вопросец в тему чпу, хочу тожесделать мелкий для сверления и рисования плат. Со сверлением всё ясно а вот рисованием слабо предсталяю чем и как, может кто видал похожие проекты как там реализовано.
А зачем рисовать? Их фрезеруют, фреза тонкая делает канавки между дорожками, глубину канавок можно выставить, хоть фигрурные платки делай)
Наверно о фрезеровке и идет речь. Вот здесь на английском человек описывает свой опыт в этом деле. Там и про софт и про фрезы.
Я так понял фрезы он использовал навроде этих
если изначально ставить задачу под платы делать тогда в качестве шпинделя луч безколекторники использывать от авиомоделей там цена не высока а дури хоть отбовляй и оборотов хватает для чистой проходки плюс алгоритм управления не сложный для урдуины
если народу набрать и проработать схему то можно шилд чпу продумать судя по прикидкам меги за глаза хватит можно еще даж сервисных функций накидать
только всем сразу наверно луч определиться сервы или шаговики и программные и апаратные части совсем разные так что надо решать
Посмотрев снимки с фрезами и готовыми платами - думаю однозначно именно рисовать, фреза слишком грубый инструмент и большой. Вот меня заинтерисовал во такой девайс http://vri-cnc.ru/modules.php?name=Forums&file=viewtopic&t=443&postdays=0&postorder=asc&start=75
Еслиб ещё всё таки реализовать именно лазерное рисование (запеконие краски на плате при помощи лазера) то тогда точно цены бы небыло.
Вот есть прект 3d принтереа на arduino http://wiki.makerbot.com/thingomatic
это вы зря использую зубные буры и высокооборотистый шпиндель качество получается на 5 + или даже шесть http://www.youtube.com/watch?v=19jMzr9X-QQ&feature=related
для рисования и сверления можно собрать самый простой чпу. Чем рисовать можно подобрать опытным путем, я раньше платы рисовал маркером перманентным (только не всегда попадается хороший с густым красителем), на два раза прорисовывал через трафарет и все хорошо протравливалось. Но собственными глазами видел профрезерованную плату - шикарно, еще и канавки пролиты лаком, вобщем тут наврядли травление сравнится.
по поводу применения серв - думаю что вариант хороший но попариться придетсся.
Да и потом всеже нужно попработать с ардуиной в качестве контроллера ЧПУ прежде чем вообще понять стоит оно того или нет. Хотя полагаю что скоро все к тому и придет, т.к. LPT себя изживает.
это вы зря использую зубные буры и высокооборотистый шпиндель качество получается на 5 + или даже шесть http://www.youtube.com/watch?v=19jMzr9X-QQ&feature=related
Шикарный пример. Платки мего классные можно получать. Тоже хочу такой станочек, но чтоб с запасом на прочность и размеры заготовки. Формата А3 должно хватить. Много читал про ето но пока не решился. Надо много времени свободного, сейчас с этим напряг (+ в этом году у меня свадьба)
Хех, вот со временем проблема действительно реальная. У самого по 2-3 часа в день свободного времени. А еще надо за запчастюлями успеть сгонять. А жена ... жена это либо подмастерье, либо ломастерье, тут как повезет. Мне как-то посреднему повезло, не ломает и не помагает, так тока косо посмматривает)))).
да отношение близких не всегда радужное особенно когда я включаю шпиндель на 30 000 тыс оборотов
в свое время я не столько занемался развитием станка сколько конструирывал ящик от шума для него
Вот всё таки решился на способ фрезировки, правда пока с самой фрезой-буром неясно где брать. Делать собираюсь и подручного хлама. Есть в наличии ухандоханый принтер lexmark z65, двигатель с вот такими характеристиками
Напряжение питания, В : 27
Номинальная мощность, Вт : 0,411
Частота вращения, об/мин : 4000
Номинальный ток, А : 0,11
ещё планирую где нибудь раздобыть сканер, буду его использовать в качестве корпуса, ну и соответственно транспортов в одной из плостостей.
ммммм, не советую сканер использовать как таковой, там прецензионные направляющие довольно малы в диаметре, прогибаются нажатием пальца, и втулки там довольно плохие (вкачестве подшипника скольжения), такие направляющие можно использовать для оси Z.
Лучше брать направляющие из МФУ, или струйных принтеров старых, там эти направляющие потолще и пожеще.
А вообще самый идеальный вариант это трубка никелированная для торгового оборудования. По всем физическим характеристикам раза в два лучше прецизионных валов. Да и найти проще... у нас в городе 3 метра стоит 600р, германская труба. Только не надо говорить что труба неоднородна по ширине - это не так, буквально недавно полученный образец трубки в 1м был проверен на механические искажения и однородность метрик, так вот даже китайская трубка показала неплохие результаты. Само сабой ненадо брать сантехническую трубу.
Что за движек то я не понял. вы его хотите в качестве шпинделя использовать или из него сделать серву. Если шпиндель то надо бы рудуктор придумать, ато боюсь 4000 оборотов карявить будут медную фольгу.
я делал из сканеров все было ок даж алюминий фрезеровал тут наверно модель от модели разница но я все же советую рассмотреть возможность покупки настояших валов и подшипников скольжения к ним вариант с трубками хорош а вот притерать или изготавливать к ним подшипники не просто в качестве шпинделя для начального уровня луч всего покупать гравер самостоятельно изготовить качественный ОЧЕНЬ трудно при частотах на валу мене 10 000 потребуется дополнительные проходы а ковыряет не частота оборотов а отсутствие момента на валу при выборе шпинделя смотрите за моментом это важно так же полезно измерять обороты вала и корректировать их ШИМОМ из собственного опыта могу сказать что большие обороты и момент из доступных движков выдают только безколекторники авиомодельные да и у них есть еще огромный плюс это тишина (относительная ) а это бесценно
http://s58.radikal.ru/i159/1105/ae/3c3f618f6407.jpg
Вот наконец фото (огромная блин) того что имеется уже на данный момент. Справа на лево:
1 Уголок алюминиевый. Точнее это не совсем уголок это порожек для лестницы, т.к. уголка найти не удалось. Стоимость 80р за 1,5 метра.
2. Шпилька резьбовая М8.
3. две направляющие из многих от сканеров... в основном MAstek, диаметр 8мм, Очень гибкие, очень. На них одеты собственно подшипники обычные и втулки скольжения.
4. две направляющие 9мм от струйных принтеров. с втулками скольжения. Они попрочнее но тоже прогибаются.
5. одна втулка от МФУ, 10мм. Самая прочная которую удалось раздобыть.
6. Рама станка, на которой расположен кусочек каретки оси Х. Я отказался от прецизионных направляющих для осей Х и У, ну не нравятся мне они.
7. Внутри рамы еще немного подшипников для каретки с внутренним диаметром 10мм.
Как оказалось не так то просто ручной дрелью просверлить дырки строго в опрнеделенном месте, но как оказалось в итоге все равно приходится растачивать до овалообразного отверстия для настройки уровня. Так что будем считать повезло.
Таких кареток (полностью доделанных) будет две, для одной оси, а между ними перекладина из строительного уровня (еще не купил, стоит 260р за 3 м.) . Пока все. Упорно печатаю деньги для закупа материалов. Пока потрачено на все инструменты и запчасти (вмести с движками) около 1000р, пока надо еще 1000р. Так что не так много, главное придумать как на этом минимуме грамотно сыграть.
опоры подшипников и мелкие переходники и стыки можно отливать из эроксидки смешанной с металической крошкой в пластелин или силикон получается очен качественно и не дорого
Очень интересно всё это жду продолжения!
Опоры для подшипников, мне действительно придется отливать, в основном для резьбовой шпильки. Формы для отливки думаю делать из фотополимера, по технологии изготовления печатей. Только думаю не эпоксидку применить а поксипол.
поксипол это и есть эпоксидка только сдобавками и дорогая луч обычную взять пропитать в ней вату и получившеюся кашу в форму плюс порошка алюминиевого или проволочку тоненькую комками
фотополимеры не знаю весь мир льет в силикон накрыв крышкой куполом и откочав компрессором автомобильным воздух прочность выше стали я много так сделал живет годами уже и ничего плюс силиконовая форма остается и можо тиражировать деталь
я помню первый станок я печатал на принтере сотни деталей вырезал их из бумаги пропитывал эпоксидкой прокладывал бинтом и так слой за слоем за три дня все детали можно сделать
ну фотополимер и есть жидкий силикон))).
Разобрал свой Lexmark z65 (картриджи совсем сдохли, а новые стоят как принтер каждый :))
обнаружил там 2 электродвигателя, к моему сожалению , один из них, оказался не шаговым
Первый движёк (не шаговик) - RS-386sh дока по нему
Второй - M42SP-6GT дока по нему (не совсем его дока так как даже на сайте производителя по этой модели пусто)
Шаговик меня немного смушает шагом 7.5 градуса, достаточно ли этого для точного позиционирования в поставленной задаче.
Можно ли первый двигатель использовать для фрезы, вроде обороты то что нужно.
направляющие серьёзные диаметром 6 и 7 мм.
к сожелению фотку выложить немогу(ненашёл дома ни одного нормального комплекта батареек, а телефон в машине забыл :)), хотя есть вопрос непосредственно о возможности использования станины принтера как основы станка
расстрою вас но эти приводы не годятся шаговиком наверно еще можно оси потоскать а вот колекторник на перемещения без редуктора не годен а в качестве шпинделя он очен слаб толком только пыль смахнет
да 10 000 оборотов маловато, а шаговиквполне можно использовать, тут зависит от конструкции, и лучше через доп шестеренку, ну то есть через редуктор, чтобы сгладить 7,5 градуса, иначе рывок будет даже при минимальном шаге шпильки.
Насчёт 10000 об предполагаю что неверное суждение пересмотрел кучу фрез(готовых) как нормальных так и китайских - это вполне приемлемая скорость. Ломал голову насчёт направляющих, есть конечно крутые вещи, но цену продавцы не сложат, даже за очень маленькую направляющую просят не менее 30$. Так как я собираюсь сделать вариант для себя и без изысков остановился на покупке мебельных(шариковых) уже в принципе и купил. Взял самые маленькие 250мм 4 шт. , пока не решил, буду спаривать или использовать на 1 ось 1 направляющую. Цена ))) 1$ за штуку.
на счет цен посмотрите тут вполне приемлимые что то можно и купить что то можно самому сделать http://www.purelogic.ru/2965.html
насчет ЧПУ интересная идея, давно хотел занятся подобным, об ардуино узнал только на этои неделе ) конечно сразу же захотелось ЧПУ =) но мне в этом плане интереснее как раз программировать все это дело, т.к. я больше программист... жаль только времени для этого всего совсем нет...
и кстати, а не поидут ли для перемещении вот такие серво http://shop.roboforum.ru/product/servo-privod-serva-hxt900/ переделанные под бесконечное вращение http://roboforum.ru/forum8/topic6511.html ....
и еще вопрос... сможет ли андруино вообще адекватно управлять таким... т.е. чтобы вместо положения устанавливать скорость вращения...
судя по всему интерес к теме есть у многих тогда хочу рассказать о принципах что бы предостереч от ногих ошибок
и так допустим что у вас три оси перемешения X Y Z допустим для прохода вам необходимо послать трем моторам следующие вещи
1 напровление вращения
2 количество шагов
3 качество шагов ( полу шаг шаг пропуская щаг итд ) это не обезательно но допустим до подхода к месту фрезерования далеко и качественно ползти туда нет нужды и плоскасть можно быстро пропуская шаг или да же 10 шагов переместить к месту фрезерования а вот уже в месте опускания фрезы луч передти на полу шаг для тщательной обработки
не забывайте что все движки работают параллельно по сути ваша команда состоит из трех
x 0(направление ) 17776 (колво шагов) 2 ( пропуская шаг ) у0 4555 2 z01 0 0
почему не годятся сервы модельные наверно понятно они изначально придуманны для повторения угла и заточенны именно под угол поворота
принципов управления и подходов много тут можно в слепую бросать импульсы на шаговики ( все просто но есть проблема накопления ошибки в следствии не точной отработки шага не полного доворота вала итд но за то дешево и сердито) можно ставить серы ну или моторы плюс энкодеры тут все сложнее но есть плюс вы всегда знаете реально проеденное растояние минус это конечно заметно боллее сложный алгоритм и апаратная часть
главное обеспечивать скоорденированное действие всех плоскостей ну на пример одна ось уже выполнила перемещение а другая еще перемещается все плоскости перед началом действия должны дожидаться окончания предидущего действия всех приводов и дальше кадр повторяется уже с новыми координатоми и инструкциями
допустим ардуино упровляет сервоприводом тогда его алгоритм прост включить пин такой то допустим 12 что означает обороты мотора по часовой стрелки а сам в это время подсчитывает количество импульсов от энкодера или датчиков на валу и когда достигается значение стоп
пример
пин 12 в еденицу
значение А константа
значение В переменная
сравниваем А и В если = то пин 12 в ноль
можно так же сравнивать на сколько они не равны и из получивщегося делать скорость перемещения
А я вот чтото сообразить немогу вот в чем. В ардуино последовательный проход по программе значит мы в любом случае несможем параллельно запустить два двигла. Т.е. влюбом случае будет запущен первый а потом только втторой. Или я ошибаюсь ...
ну если смотреть формально то это действительно так не только в ардуино но и во всех подобных чипах включая и интелы в наших компах ( в последних моделях ряда производителей стали появляться паралельные потоки но это будущее процессоров ) на практике такие проблемы решаются через внешний или внутренний буфер вы как бы накидываете команды в переменную а потом ее значение отдельной командой выталкиваете но в данной задаче подобные схемы не нужны во первых разница состовляет миллионные доли секунд что создает погрешность менее 2 процентов от общей а остальное приходится на механику и приводы они косячат на много более значимо а во вторых нам не существенно следить за синхронностью а нужно следить за тем что бы они не выполнялись в отрыве друг от друга ну тоесть не важно какая ось идет с какой скоростью важнее что бы отставшую ось дождались и не переходили к следующему кадру
вся программа обработки состоит из тысяч кадров каждый кадр состоит из трех координат и параметров направления и частоты шага и только по исполнению всеми приводами своих параметров и координат можно преступать к следующему кадру
так что ардуино вполне справится с этой задачей с запасом важнее момент получения кадров из компа их хранение и отправка кадра на выполнение или хранения в памяти ардуино всех кадров например на сд карте и их последовательное выполнение
берем три координаты пускаем приводы отслеживаем достижение этих координат, достигли, проверили , сигнал готовности к следующему кадру и так до победы
тут для понимания процесса можно взять пример с моторшилдом и алгоритмом програмирования машинки моторы вперед на 10 оба ждем 3 сек потом один вперед на 5 ждем
машинка едит и крутится хотя на самом деле как вы правильно заметели старт моторов не синхронен но это совсем незаменто
Ну вот белее менее попанятнее вроде стало.
А я гдето читал что в ардуине можно одновременно задавать значения на нескольких портах. Не стандартными средствами digitalWrite, а уже портами? но для меня пока сильно это мудренно
C паралельным выводом поможет любой расширитель портов или демультиплексор. В случае с расширителем портов как раз всё просто, передача идёт по протоколу i2c одним пакетом и выполняется в самой микрухе паралельно. (про эти микрухи почитайте в теме про расширитель портов)
Ну в итоге то получится что все равно двигатели только последовательно работать будут
Нет не верно, данные на экспандер отсылаются одним пакетом, в этом пакете(в режиме записи) инфа о состоянии всех портов, после того как пакет блогополучно получен и обработан, значение на выходных портах устанавливается единовреммено на всех сразу.
ПО для работы arduino в качестве чпу
http://www.mmcpix.com/CNC/CNCdriver.zip
http://www.mmcpix.com/CNC/GCode_Interpreter.zip
К сожалению пока не разбирался времени нет, но вроде то что нужно.
Ещё вопрос в тему. Кто какую микруху (драйвер -контроллер) посоветует, просто сам по работе с ними никогда не сталкивался. Бывают ли сборки , чтобы скажем 4 драйвера в одном корпусе? Токи большие мне не нужны, станочек я проэктирую миниатюрный.
вот подобрал пока что 2 варианта
Микросхема-контроллер шагового двигателя - LS7290
Микросхема микрошагового драйвера шагового двигателя,
позволяет упрвлять как БИполярными, так и УНИполярными ШД.
Режимы работы: 1/1, 1/2, 1/4, 1/8, 1/16, 1/32
Управление: ШАГ и НАПРАВЛЕНИЕ
Ток поддерживается при помощи 8-ми битного ШИМ контроллера.
Напряжение питания 3 - 5.5В
Используя различную силовую часть LS7290 позволяет управлять
ШД с токами от 1-го до 10А
вариант №2
минимальное количество обвеса
http://www.culibin.net/samodelnyj-drajver-kontroller-shagovogo-dvigatelya-na-a3977-a3979/
A3977SLPTR
http://test.roboforum.ru/product_11571.html что нибудь такое если решили шаговик
Неплохой драйверочек, тока по току непонятно, для среднего чпу надо бы токи до 2А хотябы. Выдержит ли. Хотя черт его знает, у мну движки на 0,6А вполне крутят прилично.
icms а как быть с аппаратной частью для этой проги, как что подключать то.
да вы не торопитесь за амперами соберите сначало что то простое (для плат 1 ампера за глаза ) может поиграете и пройдет и боги вас милуют ну а если всетаки зацепит то всегда можно двигаться дальше но вас уже будет опыт навыки ну а так с ничего гнаться за амперами и мощным моментом неправельно. Первый станок на то и первый все должно соответствовать а так получится что вы на напровляющую за 400 рублей и винт катанный поставите движки по 3 или 4 тысячи хотя и есть люди которые тащуться от движка бумеровского в капейке но помойму все должно соответствовать
Ув. kikia99 предложил этот вариант http://test.roboforum.ru/product_11571.html ">http://test.roboforum.ru/product_11571.html :) полностью поддерживаю выбор, я в свою очередь http://schmalzhaus.com/EasyDriver/ вышел на автора(который в принципе указан на странице в первой ссылке).
Насчёт вкладывания денег в первый чпу, я подхожу более чем аккуратно, куплено уже многое , а потрачено не более 20$. ЧПУ делаю для работы(инженер сервисной службы торгового оборудования), для фрезировки сверления плат, резки акрила и др полимеров.
эту схему при необходимости можно легко усилить поставить на пины моторные по одному полевику и можно хоть 100 амперами ворочить
ММм. Ребят а как обозначается усилие или момент у шагового двигателя, я имею ввиду в даташите. Хотя и даташита толком нет на имеющиеся двиглы. Просто я подумал можно приязать к валу груз и крутить двигло, соответственно максимально поднятый груз должен быть усилием так веть или нет? Просто у меня ось довольно тяжелая получается, думаю что не хватит движков.