USB контролер за стъпкови мотори с АРДУИНО

Открих тази интересна възможност на сайтовете на:
http://wiki.zentoolworks.com/index.php/Arduino_Stepper_Motor_Control
и много приятния според мен проект на http://www.shapeoko.com/wiki/

На първия е пълното описание на свързването на Arduino като контролер на драйвери за стъпкови двигатели. Тъй като авторът предполага, че Arduino-то е закупено от техния сайт и програмата е предварително заредена, за да се стигне до успешна реализация, трябва да се следват следните стъпки (някои от долуописаните неща ще повторят източника):

1. Първо (и разбира се, най - важно :) - Платка с Arduino UNO, USB кабел за връзка с компютъра


Схемата на свързване с чудесни снимки се вижда на посочения сайт, тук само ще напиша, че изводите 2, 3, 4 са СТЪПКА (Pulse), а 5,6,7 са ПОСОКА (Dir) съответно за X, Y и Z координатите. Изводите "-" на драйверите са свързани заедно към GND  на Arduino платката.
(Вече е проверено, изводите XYZ следват номерацията)

Очевидно GBRL е претърпял сериозно развитие, защото са включени доста опции:



2. Второ: така или иначе, щом имате вече Ардуино, необходим ви е софтуерът към него, така наречения IDE, който е наличен за безплатно изтегляне на официалния сайт на продукта:

Изтегля се и се инсталира файла, който в горната картинка е ограден в червен правоъгълник (за Windows). Разбира се, може да се изтегли и в *.zip, no тогава след разархивирането драйверът за Arduino трябва да се инсталира ръчно.

3. Трето: След инсталацията включваме Arduino към компютъра и проверяваме устройствата в Device Manager:
kak? Старт бутона, десен клик на Computer, избираме Properties


От следващия екран избираме Device Manager (в лявата страна):


Ако ползвате Windows XP, изберете таба Hardware и после бутона Device Manager


В края на краищата стигате до списъка с устройствата, където трябва да отворите 
Ports (COM & LPT)


Като резултат от инсталацията в списъка трябва да имате Arduino UNO (COMx), при мен в случая е COM1, а при вас си е вашият порт, присвоен от инсталацията.

4. Четвърто: - запис на програмата, т.е Firmware, който прави от Arduino CNC контролер. 

За това има два начина: 1. Запис на готов *.HEX файл и 2. Запис чрез IDE
                                          1. Запис на готов файл:
Програмата е файл в HEX код, който е наличен за свободно изтегляне на сайта https://github.com/grbl/grbl/downloads
Изтеглете си най - новата версия, обикновено е най - отгоре:


Сега този файл трябва да се зареди в паметта на Arduino. За това е нужна програмата XLoader, която се изтегля от тук: http://russemotto.com/xloader/


След като я стартирате, трябва да укажете къде е записан HEX файлът, който преди малко изтеглихте, да изберете вида на устройството, което имате, порта, на който е свързан, а скоростта се определя автоматично и не бива да се променя:


Това е: натискате Upload, и диодите Rx Tx на платката ви започват да светят, програмата се зарежда и ако всичко мине благополучно, резултатът е съобщение за количеството записана информация. 

                                  2. Запис чрез IDE:

Гореописаният начин е добър с това, че може да се зареждат обновени *.HEX версии на GRBL, които се публикуват от авторите на GitHub.com.

Съществува разбира се и стандартен начин на зареждане, който се реализира с естествената IDE на Ардуино. За тази цел от Protoneer са създали библиотека за GRBL, която може да се изтегли от GitHub: https://github.com/Protoneer/GRBL-Arduino-Library/archive/master.zip
Процедурата е следната:
  • Разархивираната библиотеката се копира в папката "Libraries" на Ардуино софтуера, например: C:\Program Files\Arduino\Libraries;
  • Папката се преименува на GRBL (за да се избегне евентуално съобщение на IDE за грешка поради дългото й име);
  • Стартира се Arduino IDE;
  • Кликва се на File -> Examples -> GRBL (или каквото име сте дали на папката в по - горната стъпка) -> GRBLtoArduino
  • Записвате скеча в Arduino с Upload бутона на IDE
Aко се интересувате от това, какъв е кода на библиотеката, той е наличен на   https://github.com/Protoneer/GRBL-Arduino-Library

Какво става, като заредите този скеч?



Това е, скечът не прави нищо друго. Предимството на този метод обаче е, че Arduino остава напълно контролируемо от IDE и може да изпълнява и други инструкции, които да се допишат като добавка към работещия вече GRBL.

5. Пето: Запис на G-код за работа на CNC-то:
С горните стъпки превърнахме Arduino в контролер на стъпкови мотори. Сега трябва да го накараме да работи. За тази цел е необходимо да имаме G-код. Изработваме го с всяка програма, която може да превърне графичния ни дизайн в код, например CamBam. Крайният резултат е текстов файл, например с разширение *.tap. Този G-код се прехвърля в Arduino с програмата Universal_Gcode_Sender, която може да се изтегли от сайта:



След стартиране екранът е следния:



Интерфейсът е интуитивен, трябва да се посочи правилния порт, да се отвори с бутона Open, след което стават активни табовете от дясно: Commands - приема директно команди от клавиатурата, File Manager - зарежда G-kode файл в Arduino, Machine Control - ръчно управление.

Най - горе вляво е Settings: от там се променят настройките на машината.

Този GUI (от Graphic User Interface) има една положителна страна - с бутона за Визуализация ви пуска филмче, което показва текущия процес на обработка:




Пробвах едно тестово файлче - завърта моторите едновременно и после един по един, ето какво се получи:




Извод: Arduino като че ли става за USB контролер на CNC. Записването на GBRL не го лишава от способността да записва Sketch-ове, т.е. когато ми потрябва, винаги мога да си го ползвам за друг проект. 
И понеже не се появяват съмишленици на проекта, следва да се направи модел, за да видим как се държи като система. 

Продължение...

Импровизирах модел на CNC,  в резултат на което кухненското оборудване намаля с няколко дъски за рязане :) 
Няма да лъжа, че програмата UniwersalGcodeSender е по - добра от Mach3. Липсват възможностите за манипулиране на работата с файла, коригирането на координатите е по - трудно, offset на инструмента изобщо не е предвиден и т.н., но пък става за работа. Ето какво предлага екрана с включена визуализация след зареждане на файла с G-код:


Нарочно избрах сравнително по - сложна форма, а не прости геометрични фигури, за да получа по - реална представа за работата на GRBL. Така работи:



А ето го и крайният резултат:



Ето и една по - сложна задача:

с доста добър краен резултат:



Честно казано, за цена около 15 лв. на китайско копие на Arduino резултатът е повече от задоволителен :). Ако пък се ползва PRO Mini, цената за USB контролер става още по - ниска.

Следва...
проба на една немска CAD програма с много приятен интерфейс и изключително лесна за разучаване, представена на: http://www.estlcam.com/
Тя пък освен, че прави G-код на зареден файл, има изход направо към Arduino, без да е необходим GRBL.