27.02.2014 22:11 Количество просмотров материала 3201 Время на чтение ~10 мин
Увеличить | Уменьшить Распечатать страницу

Карманный cnc – станок для выжигания. Часть 3. Информатика и кибернетика

Карманный cnc – станок для выжигания. Часть 3. Информатика и кибернетика

Часть 1 и часть 2.

Наконец, автор добрался до любимого паяльника.

FL4A7Q9GKJF83BG.LARGE

Для подключения шагового двигателя к устройствам управления он использовал спасенные из старых компьютеров проводные шлейфы, на одну из сторон которых были припаяны пины (штырьковые коннектора для макетной платы), а на другую – контакты шлейфа управления двигателя.

F2PU60MGL24A2LP.LARGE

Так же (в тестовой версии), к макетной плате были подключены и контроллеры двигателей (в случае автора – платы Easydriver).

F3YQNF5GKJF83BH.LARGE
Во время  лазерной гравировки дерева и фанеры в комнате не продохнуть из за дыма. Автор ввел в схему реле, которое управляет веером вентилятором.

FD7SMB2GL3JOP0S.LARGE
В случае использования именно контроллера Easydriver, следует обратить внимание на выводы MS1 и MS2, которые отвечают за выбор режима работы двигателя, в частности, включения режима микрошагов. Просто подключите их выводам +5 Вольт контроллеров (см. схему ).

Теперь, подключим выводы шаговых двигателей к соответствующим моторным выводам контроллеров. По словам автора, все шаговые двигателя из оптических приводов, с которыми ему приходилось сталкиваться, имели одинаковую распайку выводов. Так что, если вам повезет, проблем с подключением моторов не предвидится. Соедините клеммы управления контроллеров (STEP, DIR, GND) с соответствующими контактами Arduino.

Примечание переводчика: надо ли говорить, что STEP, DIR подключаются к цифровым портам ввода/вывода Arduino, в то время как GND – именно к порту GND микроконтроллера.

Карманный cnc – станок для выжигания. Часть 3. Информатика и кибернетика

Важно! Шаговые двигателя нуждаются во внешнем питании! Подключать их к выводам +5 и GND Arduino и контроллеров двигателей недопустимо (если не хотите сжечь всё и вся)!

Для питания моторов, вентилятора и  Arduino автор использовал обычный 12-Вольтовый блок питания, который, впрочем, был оборудован регулятором силы тока.  Учитывая, что на шаговых двигателях отсутствовала маркировка, автор выбрал наименьшее значения силы тока, при которых конструкция работала. Индикаторами слишком большого значения тока питания являются сами двигатели – если они сильно греются, значит что-то пошло не так и стоит задуматься :) .
Что же до вентилятора – просто подключите его к соответствующим выводам разумеется, с учетом полярности и желаемого направления выдува воздуха.

F7D4T9LGKJF7O72.LARGE
Каскад питания лазера построен на стабилизаторе напряжения семейства LM317 и не содержит никаких новых схемотехнических решений. Он вполне выполняет свою роль, но все же далеко от идеала по причине слишком высокого выходного тока. Так, автор длительное время питал лазерный диод током 300 МиллиАмпер и всем последователям советует не ожидать от лазера долгого жизненного цикла. Наилучшим решением (по мнению автора), станет выбор мощного лазера и каскада питания с возможностью более широких регулировок. Включение и выключение лазера производится тем же реле, которое управляет вентилятором.
При желании, вы можете значительно упростить схему, использовав любой подходящий блок питания с подходящим выходным током и напряжением питания. Всё, что вам надо сделать  - подключить  питание к клеммам, которые управляют вентилятором.  Разумеется, это будет несколько дороже, чем при самостоятельной сборке блока питания.

Примечание переводчика: подозреваю, что НА 1/6 части суши гораздо дешевле купить б/у готовый блок питания, чем детали для его сборки.

Для облегчения (и оптимизации) сборки, автор разработал специальный  модуль расширения, который назвал LaserShield.

Примечание переводчика: хорошо, что не СОИ). LaserShield – в переводе с английского значит Лазерный Щит. ПРИМЕЧАНИЕ sTs к примечанию переводчика: стратегическая оборонная инициатива (СОИ) Strategic Defense Inintiative :) .

Принципиальную схему и разводку платы в формате приводим здесь. Качаем отсюда. Самостоятельное изготовление печатных плат несколько выходит за рамки данной статьи, однако, в Интернет вы можете найти кучу действительно годных статей по указанной проблеме.

FAEG6ECGKS0SUEW.LARGE

F9DCGWEGKS0U2SL.LARGE
Если же вы желаете разработать собственную плату расширения с отличной от авторской разводкой дорожек, то все равно можете использовать библиотеку для программного пакета Eagle, разработанную автором  специально для подобных устройств.

ШАГ 6. Работа с Arduino

Изначально, для проекта автор попытался написать собственную программу, однако копаясь в  серфя в Интернет, все же изыскал неплохой способ контроля перемещениями головки станка при помощи найденного софта, который некоторые называют «Grbl». Описанный программный продукт представляет интерпретатор команд  g-кода, в котором предусмотрено несколько достаточно интересных функций и возможностей.  Впрочем, код программы пришлось несколько изменить, так-как автор уже собрал электронную схему, а распиновка на Arduino и самодельном шилде отличалась от прописанных в коде программы номеров выводов.  Для этого, ему пришлось скачать среду разработки Winavr и непосредственно программный код приложения с github.com. Для настоящего Мозгочина все это нетрудно. Скачайте архив с кодом и распакуйте его в выбранную директорию.   Теперь, вам предстоит изменить номера портов Arduino в файле config.h, прописав их в правильном порядке. После этого – запустите терминал, войдите в правильную директорию (разумеется ту, в которой размещены распакованные и измененные файлы), введите  команду «make» для компиляции кода и если все пошло хорошо получения файла с расширениеm .hex, готовый для загрузки в Arduino.

Впрочем, автор отмечает, что впоследствии изменил порты Arduino и программный код, который вы можете скачать здесь.

ВАЖНО! Текущая бета-версия «Grbl» (0.6 b) содержит баг, связанный с командами включения и выключения лазера (М3, М5). Из-за некорректной обработки, указанные команды не вносятся в очередь командного стека. Баг был исправлен в полевых условиях, так что вы можете скачать исходники кода здесь, или уже скомпилированный .hex файл тут. Автор надеется, что в полной мере указанный баг будет исправлен в следующей версии «Grbl».

 

В любом случае, в конце-концов вы получите файл с расширение .hex, который необходимо будет загрузить в Arduino. Сам автор, по его словам, перепробовал кучу вариантов, но больше всего ему понравилось использовать программу под названием Xloader.
Все достаточно просто:

  1. Выберите правильный программный порт Arduino
  2. Выберите .hex файл
  3. Выберите тип платы Arduino
  4. Нажмите кнопку «загрузить»

Карманный cnc – станок для выжигания. Часть 3. Информатика и кибернетика

Внимание! Если вы используете новые (конца 2013 года) платы Arduino Uno, с высокой степенью вероятности Xloader работать не будет, выдавая сообщение про ошибку загрузки.

В этом случае автор рекомендует использовать программный продукт ARP/Arduino Uploader (впрочем, проблемы могут быть и с ним). Механизм прошивки в целом сходен – выберите порт и модель микроконтроллера. После этого – внесите изменения в тексте значения «AVR Dude Params».  Удалите строку «-b19200» (без кавычек, разумеется), и нажмите кнопку загрузки кода. Через пару секунд все будет готово: закройте прошивальщик и переходите к следующему параграфу.

Сам микроконтроллер нуждается в предварительной настройке. Запустите ваш любимый терминал последовательного порта (примечание переводчика: он есть в программном пакете программирования Arduino), и подключитесь к вашему микроконтроллеру.

В окне терминала будет выведено приветственное сообщение, что-то вроде этого:

Grbl 0.6b
'$' to dump current settings"

Если же вы введете символ $ и потом нажмете «ввод», то получите список параметров, примерно такого вида:

$0 = 400.0 (steps/mm x)
$1 = 400.0 (steps/mm y)
$2 = 400.0 (steps/mm z)
$3 = 30 (microseconds step pulse)
$4 = 480.0 (mm/sec default feed rate)
$5 = 480.0 (mm/sec default seek rate)
$6 = 0.100 (mm/arc segment)
$7 = 0 (step port invert mask. binary = 0)
$8 = 25 (acceleration in mm/sec^2)
$9 = 300 (max instant cornering speed change in delta mm/min)
'$x=value' to set parameter or just '$' to dump current settings
ok

Теперь вам необходимо изменить значение параметра steps\mm для осей Х и Y  на 53.333. Просто введите команды «$0=53.33» и «$1=53.33» соответственно. Надо ли говорить, что после каждой команды просто необходимо нажать «ввод»? Поскольку ось Z не используется, в ее параметрах ничего менять не будем, однако запомним про ее присутствие для следующих проектов.  Ускорение перемещения каретки поднимите командой  «$8=100» и нажмите «ввод».  Поскольку каретка действительно перемещается с низкой скоростью – значение ускорение должно быть действительно высоким, поскольку при дугообразном движении глубина выжигания будет значительно большей, чем при прямолинейном.
Кстати, автор указывает, что одна из осей может быть зеркально ориентированной , что, впрочем, легко исправить. Пункт 7 (команда «$7») позволяет легко изменить направления движения по осям. Подробные инструкции смотрите тут.

Что ж, с механической, оптический и программной частью мы закончили. Хотите проверить? Нет ничего легче – введите G91 G28 X0 Y0 «Ввод» для вывода головки в нулевое положение. Командами X10 Y10 «Ввод» можете порадовать себя перемещениями лазерной головки по обеим осям на 10 мм.

ШАГ 7. Готовим софт

F0LOHYXGKQ3DBA5.LARGE

Начнем так сказать с информации для нубов  истоков. В этом разделе рассмотрим необходимое прикладное ПО, особенности его настройки и использования. Да, автор предупреждает, что использует исключительно Windows – совместимые программные продукты, а линуксоидам советует идти лесом покопаться в Интернетах  (хотя описываемый софт вполне может работать и в Linux).
Итак, для начала скачайте следующее:
Inkscape – векторный редактор с открытым исходным кодом
Расширение для Inkscape по работе с лазерными гравировальными ЧПУ – станками
G-code sender – написанное автором небольшое Windows – приложение для обмела данными с Grbl.

Установите Inkscape, просто тыкая «Далее» следуя инструкциям по установке. Это не просто, а очень просто и не должно вызвать никаких затруднений.
Следующим шагом будет установка лазерного расширения, что, в принципе, ненамного сложнее.
Примечание переводчика: как правило, с этих слов и начинаются проблемы, не так ли?:)
Последовательность следующая:
- распакуйте zip – архив в соответствующую директорию установки Inkscape, то есть по пути:  C:\Program Files\inscape\share\extensions.
- перезапустите Inkscape
- наслаждайтесь
Расширение представляет собой сильно модифицированную версию дополнительного модуля для Inkscape  под названием Gcodetools, который в первую очередь предназначен для транслирования векторных данных в G-код, который управляет шаговыми двигателями вашего оборудования. В принципе, с настройкой Inkscape закончено.
Что же до G-code sender, то в настойке и инсталляции он не нуждается. Так что можете распаковать его архив в любое удобное вам место, например, на рабочий стол.

Да, автор ни в коей  мере не может назвать себя программистом на языке Python, так что не гарантирует отсутствие багов и глюков в приведенном софте.

Предполагается, что все названное ПО и его расширения установились у вас без проблем и
полностью готовы к работе. Давайте посмотрим, как оно работает…

http://www.youtube.com/watch?feature=player_embedded&v=t_3yQZxXm-Q

Надеюсь, видео не слишком быстрое…  А вообще есть огромное количество документации по работе с Inkscape и его компонентами, ищите и обрящете…

История с G-code sender иная, особенно принимая во внимание факт его создания автором статьи.  Все инструкции приведены в тексте, но  можете смело задавать автору вопросы, используя приведенные ниже  контакты. В принципе, интерефейс программы достаточно интуитивно понятен, однако могут вызвать недоумение чекбоксы «\n\r» и «\r\n», которые определяют настройки окончания линейных перемещений и переключаются в зависимости от версии Grbl (то есть, если не работает один вариант – просто переключите на другой).
Выберите последовательный порт, к которому подключен станок, ими если вы забыли его подключить – скорее сделайте это и нажмите кнопку «Обновить» («Refresh»).
Нажмите кнопку «открыть порт» для получения доступа к консоли управления. Теперь вы можете вводить команды в окно ввода терминала. Для того, чтобы начать гравировку на основании готового файла  изображения, нажмите кнопку «Выбрать» («Browse»)и выберите необходимый вам файл проекта.
Таинство лазерной резки/гравировки, а значит, загрузка команд в микроконтроллер,  начнется после нажатия кнопки «Печать» («Print»).
Команды будут грузится в стек микроконтроллера Arduino до его наполнения (около 20 команд). Когда буфер будет очищен, начнется загрузка другой порции команд и так далее. Если же вы вздумаете прервать последовательность и нажмете кнопку «Стоп»(«Stop») – не спешите извлекать заготовку – можете остаться без пальцев (если лазер мощный), так как работа будет продолжаться до тех. Пор, пока не очистится командный буфер.

Может случится, что отдельные G – коды  или их часть не могут быть  интерпретированы Grbl, в результате чего в окно терминала выводится сообщение об ошибке.  В своем большинстве такие сообщения могут быть смело проигнорированы.  Как правило, они вызваны выполнение команд с комментарием или начинаются и заканчиваются знаком %.  В то же время, если после такой команды в тексте программы  присутствует комментарий, выполнение последовательности команд не прервется.  Например, сообщение команда «G21 (All units in mm)» будет выполнена, но комментарий вызовет сообщение об ошибке.

ШАГ 8. Окончательная сборка и пирожок с полки растущая самооценка

FSY3LLRGL3JOOCR.MEDIUM

Окончательную сборку станка автор произвел на небольшом корпусе – основе из  пресскартона, для чего ему пришлось раскурочить фоторамку (как сами понимаете, не цифровую).  Детали корпуса просто склеены между собой. В лицевой стенке просверлены отверстия и закреплен  небольшой кулер от старой видеокарты (да-да, контроллеры шаговых двигателей при работе в замкнутом объеме рассеивают дохрена значительное количество тепла).

FYAT6ALGL3JOODR.LARGE

Нижняя часть крепится к конструкции при помощи вклеенных в углах резьбовых втулок. В свою очередь, Arduino крепится к указанному днищу при помощи винтов с гайками. Как понимаете, все это превращает наш станочек в компактный и удобный для использования инструмент.

FBON88TGKS0UR0C.LARGE

FLR9FZEGKS0UR0A.LARGE

F343ILAGL3JOO6K.LARGE

Некоторые усовершенствования были  сделаны уже во время окончательной сборки. Например – 40 – Миллиметровый компьютерный вентилятор, предназначенный  для удаления дыма из рабочей зоны.
Примечание переводчика: как вы помните – лазерный луч  представляет собой поток узконаправленного электромагнитного излучения оптического диапазона, которое характеризуется высокой плотностью энергии. Таким образом, любое препятствие приводит к полному либо частичному рассеиванию луча и уменьшению уровня его воздействия на цель. Таким образом, дым в рабочей зоне не только малоэстетичен, но и снижает качество (и глубину) гравировки.

Вентилятор подключен к питанию через то же реле, что и лазер и включается одновременно с ним.

Другим маленьким но очень полезным дополнением являются несколько маленьких магнитов, предназначенные для  удерживание обрабатываемых материалов на рабочем столе (если вы помните – он покрыт магнитным металлом).

FN1X6PFGL46L181.MEDIUM

Фокусировка лазера осуществляется при помощи поворотной головки корпуса с встроенной линзой либо его перемещение вверх-вниз в держателе головки.  Именно таким способом его фокусирует на обрабатываемом материале автор статьи.

F4T7G0UGKS0UR01.LARGE

РЕЗУЛЬТАТЫ

Все на фото – начиная от брелка для ключей и этикеток для рассады, и заканчивая эксклюзивными спичками с гравировкой…

 

F29HLN9GKS0USGF.MEDIUM

FKLQ4Q8GL3JOT5Q.LARGE

 

FH134LCGL3JOOL7.LARGE

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]


Вверх