Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc...

38
Arduino mini cnc

Transcript of Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc...

Page 1: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

Arduino mini cnc

Page 2: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

สารบัญ

1 ทำความรู้จัก Arduino mini cnc (GRBL)

mini cnc คืออะไร

ระบบ G-code และระบบการทำงานของ mini cnc

mini cnc ด้วย arduino

2 Arduino เบื้องต้น

โครงสร้างของ Arduino บอร์ด

รู้จักเมนูต่างๆของ Arduino ide สำหรับการโปรแกรม บอร์ด arduino

โครงงานไฟกระพริบ(อีกแล้ว)

บอร์ดสำเร็จรูป Grbl cnc shied

3 GRBL firmware

การ Download และติดตั้งแบบต่างๆ

การติดตั้งและใช้งาน Library

การกำหนดค่าต่างๆใน Firmware

ค่าการใช้งานเบื้องต้น

การใช้งาน GRBL ผ่าน Arduino ide

5 GRBL GUI

universal gcode sender

Page 3: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

1 ทำความรู้จัก Arduino mini cnc (GRBL)

Arduino mini cnc คืออะไร สำหรับหลายๆท่านที่รู้จักแล้วข้ามบทนี้ไปได้เลยนะครับ แต่ สำหรับมือใหม่สุดๆยังไม่รู้จัก อาจจะเคยได้ยินมามั่ง หรือ อาจรู้จัก Arduinoแล้วมันเกี่ยวกันได้ยังไงละ เอาง่ายๆ คือ การนำเอา บอร์ดยอดนิยมอย่าง Arduino มาใช้ในการควบคุมเครื่องจักรด้วยระบบตัวเลขเดินตามระบบโคออร์ดิเนต ในพิกัดฉาก

ซึ่งเราใช้ ความสามารถของ ไมโครคอนโทลเลอร์ Arduino เป็นพระเอกในการจัดการระบบทั้งหมดครับ ทั้งนี้วิธีการทำ mini cnc นั้นมีหลากหลายรูปแบบครับซึ่งจะได้กล่าวถึงในตอนต่อๆไปนะครับ ในตอนนี้เราทำความเข้าใจภาพรวมกันก่อนครับ

Arduino mini cnc นั้นอาศัย firmware ที่ชื่อว่า GRBL ซึ่งเป็น OPEN SOUCE ที่ได้รับการเผยแพร่ใน ปี คศ. 2009 โดย Simem Svale Skogsrud และกลุ่ม OPEN SOUCE เป็นการปล่อย GRBL รุ่นแรก ให้เราๆได้มีโอกาศใช้งานกัน โดยอาศัย บอร์ด arduino เป็น hardware ในการควบคุมอุปกรณ์ต่างๆนั้นเอง(https://github.com/grbl/grbl/wiki)

โดยที่ firmware grbl นั้นมีหน้าที่ให้การแปลง G-code ซึ่งเราจะทำความรู้จักในบทต่อๆไปนะครับ โดย เมื่อ g code สั่งงานให้ mini cnc เดินตามคำสั่งต่างๆ ตัว firmware จะทำหน้าที่จัดการ ระบบต่างๆในไมโครคอนโทรลเลอร์ เพื่อให้ เกิดการเคลื่อนที่ตามที่ค่าของ g code ได้ทำการระบุบไว้

รูปตัวอย่าง G-code ในโปรแกรม cad/camhttp://bobcad.com/products/predator-cnc-editor/

Page 4: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

mini cnc คืออะไร Mini cnc หรือ Cnc router หลายๆท่านอาจจะรู้จักดี แต่บ้างท่านอาจจะยังไม่รู้จักมนัคืออะไร??

ถ้าเราเข้า Google แล้วค้นหาคำว่า minicnc ค้นรูปเราจะเจอรูปภาพเครื่อง minicnc เยอะแยะมากมายหลายแบบด้วยกัน

เอาที่นี้มันทำงานยังไง มีประโยชน์อะไร การทำงานโดนทั่วไปมันจะเคลื่อนที่ในแนวแกนแกน X แกน Y และแกน Z จึงๆมีมากกว่าสามแกนก็มีนะครับ แต่ในที่นี้เราทำความเข้าใจรในรูปแบบสามแกนปกติๆกันก่อนนะครับ

ที่วิธีการทำงานที่หัดกัด หรือเรียกว่า spindle นั้นจะมีการหมุนเหมือนสว่าน นั้นเอง แล้วจะเลื่อนเข้าไปตัด เฉือน หักออก ทำให้เป็นรูปร่างของงานที่เราได้ทำการเขียน g code ไว้นั้นเองครับ

เดิม เครื่องจักรที่ควบคุมด้วยระบบ CNC นั้น มีราคาสูงมากนิยมใช้ในกลุ่มอุตสาหกรรมแม่พิมพ์

ในช่วงเริ่มแรกๆนั้น มันเป็นเครื่องจักรที่ควบคุมด้วยระบบ NC เครื่องจักรในช่วงนั้นเป็นการควบคุมด้วยระบบตัวเลขจากเทป Numerical control หลังจากนั้นก็มีการใช้ computer เข้ามาช่วย จนเป็นเครื่องที่เราเห็นในปัจจุบัน

Mini cnc เป็นการจำลองการทำงานของเครื่องจักรควบคุมด้วย CNC ของงานอุตสาหกรรม

Page 5: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

โดยการจำลองโปรแกรมลงบน PC หรือ ใน Arduino ที่เราเล่นๆกัน โดยโปรแกรมจำลองเหล่านี้จะทำการเปลี่ยน G-code เป็นสัญญาณทางไฟฟ้าเพื่อใช้ในการควบคุมเครื่องตามวงจรที่ได้กำหนดไว้

ตัวอย่างการใช้เครื่อง minicnc กัดลายhttp://www.smartcncs.com/

ระบบ G-code และระบบการทำงานของ mini cnc

ระบบ G-code นั้นเป็นการแทนค่าของการเคลื่อนที่ใน ระบบโคออร์ดิเนต โดนการกำหนดตัวเลขตำแหน่ง กับคำสั่งในการเดินทาง เช่น ต้องการให้เคลื่อนที่ในระนาบ X Y โดยไปทางแกน X 10 mm และไปทาง Y 10 mm เราก็จะกำหนดเป็นG00 X10 Y10 แกนก็จะวิ่งจากจุดที่อยู่เดิมไปจุด X10 Y10 ตามตำแหน่งโคออร์ดิเนตถ้าจุดเริ่มต้องเป็น X0 Y0 เราก็จะได้เส้นทางการเดินเป็นเส้นทะแยงมุม

เราก็สามารถสร้าง minicnc กันได้เองโดยใช้โปรแกรมควบคุมมีหลายรูปแบบครับทั้งใช้โปรแกรมคอมพิวเตอร์สำเร็จรูป หรือที่เรากำหนดกล่าวถึงคือการใช้บอร์ดไมโครคอนโทรลเลอร์ สำเร็จรูปอย่าง Arduino นั้นเอง

Page 6: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

รู้จัก Arduino บอร์ดไมโครคอนโทรลเลอร์สำเร็จรูป แสนง่าย

Arduino เป็นบอร์ดไมโครคอนโทรลเลอร์สำเร็จรูปที่เราสามารถใช้ภาษา C/C++ในการเขียนคำสั่งได้ โดยสามารถโหลดโปรแกรมได้ง่ายๆทาง USB นั้นเอง

ตัวอย่างบอร์ด Arduino รุ่นต่างๆ

https://www.arduino.cc/en/Main/Products

Page 7: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

mini cnc ด้วย arduino

minicnc เราสามารถใช้โปรแกรมเฉพาะอย่าง MACH3 , NC studio , EMC2 ซึ่งโปรแกรมเฉพาะทางเหล่านี้จะอาศัยการจำลองให้คอมพิวเตอร์แล้วทำการส่งสัญญาณควบคุมมาทาง Port สื่อสารของคอมพิวเตอร์

แต่เราจะใช้บอร์ด arduino แทนครับ

ส่วนในรูปแบบของการใช้งาน arduino เป็นตัวประมวลผลนั้นเราใช้ตัว arduino เป็นตัว แปลง สัณญาณ pulse ทางขาของ avr โดยรับข้อมูล g-code ทาง ตัว usb ของ arduino

เราได้ทำความรู้จักกับ minicnc และความแตกต่างของรูปแบบการควบคุมของ minicnc แบบ ใช้โปรแกรมสำเร็จรูปและแบบ ที่ใช้ arduino กันไประดับหนึ่งแล้ว ในส่วนนี้เราจะมาทำความเข้าใจรูปแบบการทำงานของ minicnc by arduinoอย่างที่ได้กล่าวไปมั่งแล้ว หลักการก็คือเจ้าตัว arduino จะทำหน้าที่ในการประมวลผล file G-code แล้วส่งให้กับไดร์ของสเต็ปโดยตรง

หลักการทำงานจะเป็นตามขั้นตอนดังนี้นะครับ1. คอมพิวเตอร์ ไม่ว่าจะ PC หรือ notebook หรือ บอร์ดลีนุกช์เช่น Raspberry pi หรือ BeagleBone อื่นๆ ทำการอ่าน file g-code แล้วส่งออกทาง usb post2. Arduino รับ คำสั่งมาทำการประมวลผล แล้ว ส่ง pulse ออกตาม pin ต่างๆของ บอร์ด เพื่อทำการควบคุม ไดร์ของสเต็ป3. ไดร์ รับ pulse แล้วแปลงเป็นการจ่ายกระแสเข้าตัวสเต็ปเพื่อกำหนดรอบการหมุน4. สเต็ปมอเตอร์ทำงานเพื่อขับ แกนต่างๆ

Page 8: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

Arduino เบื้องต้น

โครงสร้างของ Arduino บอร์ดโดยทั่วๆไปบอร์ด arduino มักจะใช้ ไมโครคอนโทรลเลอร์ของ Atmal ในบอร์ดที่ใช้ในการสร้าง arduino cnc นั้นเป็นรุ่นที่ใช้ AVR รุ่น atmage 328p ซึ่งมีหลายรุ่นที่ใช้เบอร์นี้เช่น arduino uno ,arduino nano ,arduino duemilanove

ซึ่งสามารถใช้งาน grbl firmware ได้ grbl เราจะกล่าวในตอนต่อไป

Page 9: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

บอร์ด arduino นั้นจะมี โปรแกรม Arduinoide เป็น เครื่องมือในการเขียนโปรแกรมลงในบอร์ด สามารถ Load ได้ฟรี จากเวป ของ arduino นั้นเองโดยสามารถเข้าไปโหลดได้ที่ https://www.arduino.cc/en/Main/Software

สามารถเลือกโหลดได้ตาม OS ที่เราใช้งาน

กดเลือกที่ just download เพื่อทำการโหลดได้ทันที แล้วทำการติดตั้งแบบโปรแกรมทั่วๆไป

Page 10: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

โปรแกรม Arduino ที่ได้ก็จะมีหน้าตาคล้ายๆโปรแกรม Text Editor ทั่วๆไป

โปรแกรม Arduino ide นั้นใช้ในการเขียนโปรแกรมในรูปแบบ C/C++ โดยสามารถเรียนรู้เพิ่มเติมได้ที่ https://www.arduino.cc/en/Guide/HomePageและสามารถหาโปรเจคอื่นๆได้อีกมากมายใน google

อีกทั้งยังสามารถโหลดโปรแกรมตัวอย่างได้มากมายใน เมนูตัวอย่างอีกด้วยเลยทำให้ Arduino ได้รับความนิยมมากมาย

Page 11: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

รู้จักเมนูต่างๆของ Arduino ide สำหรับการโปรแกรม บอร์ด arduino

1 เมนู File

ประกอบด้วย เมนูย่อยๆ New → สร้างโปรแกรม งานใหม่ Open → เปิดโปรแกรม งาน Open Recent → เปิดโปรแกรมที่พึ่งเปิดไปไม่นาน Sketchbook → เปิดงานจาก Sketchbook Examples → ตัวอย่างโปรแกรม

Page 12: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

Close → ปิดโปรแกรมSave → จัดเก็บSave As → จัดเก็บแบบตั้งชื่อใหม่Page Setup → จัดหน้าPrint → สั่งพิมพ์Preferences → การตั้งค่า

เราสามารถจัดตั้งค่าต่างๆของการเขียนโปรแกรมเช่น การแสดงเลขบรรทัด การคอมไฟล์ก่อนการโหลดโปรแกรม ได้ในเมนูย่อยนี้ และในเมนูนี้เราสามารถเพิ่ม บอร์ดพิเศษที่ไม่มีในโปรแกรม Arduino ide ได้อีกด้วยโดยการเพิ่ม ลงในเมนู Additional Board Manager URLs: ทำให้เราสามารถโหลดบอร์ดชนิดอื่นๆมาเล่นเพิ่มเติมได้ อีกด้วย

Page 13: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

เมนูEdit

เมนูEdit ประกอบด้วยคำสั่งที่ใช้ในการจัดการ Text edit ต่างๆคล้ายๆกับโปรแกรม TextEdit ทั่วๆไป

เมนู Sketch

Page 14: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

เมนู Sketch จะมีเมนูย่อยคือVerify / Compile → ใช้ในการคอมไฟล์ โปรแกรมก่อนทำการโหลดUpload → ใช้ในการโหลดโปรแกรมเข้าสู่บอร์ดทาง USBUpload Using Programmer → เป็นการอัพโหลดโดนการอาศัยตัวโปรแกรมเมอร์โหลดโปรแกรมทาง ICSPExport compiled Binary → การสร้างเป็น Bin fileShow Sketch Folder → เปิดดู SketchbookInclude Library → เพิ่ม library และเรียกใช้งาน library

เราสามารถเรียกใช้ library เพิ่มจาก internet ได้โดยเข้าไปที่เมนู Managa Libraries โดยจะทำการติดต่อกับ ฐานข้อมูลใน internet ใหเราสามารถเรียกเพิ่มได้และสามารถ add จาก Zip file ได้เช่นกันโดย เข้าไปที่ Add ZIP Library

Page 15: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

Add File → เพิ่ม Flie .ino , .cpp , . h เพื่อทำการโหลดเพิ่มต่อจากโปรแกรมหลักหรือเพิ่ม library ที่เมนูนี้ก็ได้

เมนู Tools

เมนูย่อย Auto Format → จัดรูปแบบ format ของโปรแกรมให้เข้ารูปแบบ Archive Sketch → จัดเก็บ Sketch Fix Encoding & Reload → โหลดโปรแกรมใหม่ Serial Monitor → เป็นการติดต่อกับ Serial Port ของบอร์ด

Page 16: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

Board: → เลือกบอร์ดที่เราใช้งาน

ในเมนูนี้จะมีเมนู BoardsManager ที่เราสามารถเพิ่มบอร์ดชนิดอื่นๆที่ไม่มีในเมนูได้โดยการโหลดเพิ่มจาก internet

Page 17: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

Port → เลือกให้ตรงกับ port ที่เราได้ทำการเชื่อมต่อProgrammer → เป็นการเลือกตัวโปรแกรมเมอร์ที่ใช้ในการโหลดโปรแกรมผ่านทาง ICSPBurn Bootloader → เป็นการสร้าง Bootloader arduino ในกรณีที่เราใช้ ไมโครคอนโทรลเลอร์ใหม่ที่ยังไม่ได้สร้างเป็น arduino หรือสร้างบอร์ดใช้งานเอง

เมนู Help

เป็นเมนูช่วยเหลือต่างๆในกรณีที่เข้าไม่เข้าใจสามารถเข้ามาใช้งานในเมนูนี้เพื่อทำความเข้าใจได้นั้นเอง

เมนูลัด เราสามารถใช้งานเมนูลัดได้จากรูปต่างๆ

1 Verify 2 upload 3 New 4 Open 5 Save 6 Serial Monitorในส่วนของเมนูลัด upload ถ้าเรากด shift ค้างไว้ จะกลายเป็น Upload Using Programmer

Page 18: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

โครงงานไฟกระพริบ(อีกแล้ว)

ทดลองเล่นบอร์ดง่ายๆด้วยการทำไฟกระพริบกันก่อนครับเพื่อความเข้าใจในการใช้งาน ทำไมต้องไฟกระพริบ อารมณ์ก็คงคล้ายๆกับ Hello world ของการเขียนโปรแกรมครับ เพราะต้องการทำลองใช้งานดูดังนั้นจีงยังไม่ควรใช้งาน ทีซับซ่อนและยุ่งยากมากเกินไป

เริ่มต้นด้วยการเรียกใช้งาน Examples → Basics → Blink

จากนั้นจะได้โปรแกรมvoid setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(13, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }

ตัวโปรแกรมเริ่มด้วยการประกาศ pinmode pin13 เป็น ขา output จะสังเกตได้ว่าการเรียกใช้งาน hardware สามารถเรียกใช้ง่ายๆตรงๆตัวได้เลยหลังจากนั้นจะเป็นการ สั่งให้ digitalWrite(13, HIGH); เป็นการเปิดให้ โลจิกเป็น 1 คือการเปิดให้ LED ติดนั้นเอง digitalWrite(13, LOW); เป็นการปิด ให้โลจิกเป็น 0 เป็นการปิด LED โดยมีการกำหนด delay time เป็นการหน่วงเวลานั้นเอง

Page 19: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

ให้เราทำการต่อ LED เข้าที่ขา 13 กับ GND

เลือกบอร์ดกับ port ในเมนู Tools ให้ตรงแล้วทำการ upload ได้เลย

เราก็จะได้ไฟกระพริบ ที่นี้ทดลองแก้โปรแกรมให้ขาอื่นๆกระพริบดูเพื่อทำความเข้าใจ

Page 20: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

บอร์ดสำเร็จรูป Grbl cnc shied

ข้อดีอีกหนึ่งอย่างของการใช้งาน arduino คือมีบอร์ด Shied ให้ใช้งานเยอะมาก โดยในที่นี้เราจะใช้งาน Grbl cnc shied

Ref.http://blog.protoneer.co.nz/arduino-cnc-shield-v3-00-assembly-guide/

Page 21: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

โดยแกนต่างๆจะกำหนดไว้เป็นตัว X Y Z และ A แต่ในที่นี้ A เป็นแกนที่4 และเป็นแกนที่ทำงานคู่ เช่นเดิน X สองแกน Y แกน หรือ Z แล้วแต่เราจะให้ทำงานเหมือนแกนไหน

สำหรับ shield cnc นี้ใช้งานรวมกับไดร์ขนาดเล็ก A4988

ref. http://www.digitaldroid.co.za/blogs/tutorials/77051265-quick-start-cnc-shield-v3-for-arduino

ดูขา ENABLE ที่ไดร์ให้ตรงกับ EN ในบอร์ด shield

Page 22: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

ref. http://www.digitaldroid.co.za/blogs/tutorials/77051265-quick-start-cnc-shield-v3-for-arduino

ในส่วน A เราต้องเซตจัมเปอร์เพื่อให้เดินเหมือนแกนที่เราต้องการและเซตเป็นแกน A

Ref. http://blog.protoneer.co.nz/arduino-cnc-shield-v3-00-assembly-guide/

ไฟเข้า12-36v DC จัมเปอร์ตั้งค่าstepper z

จัมเปอร์ตั้งค่าstepper x

จัมเปอร์ตั้งค่าstepper y

จัมเปอร์ตั้งค่าstepper a

Page 23: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

วิธีการเซตจัมเปอร์แกนเสมือน

เหมือนแกน x

เหมือนแกน y

เหมือนแกน z

ให้ pin 12 ,13 เป็นแกน A

Ref. http://blog.protoneer.co.nz/arduino-cnc-shield-v3-00-assembly-guide/

จุดที่เป็น pin 4 pin เป็นจุดต่อเข้า stepper motor

Page 24: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

GRBL firmware

GRBL คือ อะไร Grbl คือ firmware ที่วางตัวเองไว้บน arduino เพื่อให้สามารถรัน g -code ได้นั้นเองในความเป็นจริงแล้ว grbl ไม่ได้เขียนในรูปแบบของ arduino platform แต่มันอาศัย hardware ของ arduino นั้นเองโดยหลักการคือ เราใช้ตัว arduino เป็นตัวสร้าง สัญญาณ pulse ทางขาของ arduino โดยรับข้อมูล g-code ทาง usb ของ arduino ซึ่งก็คือ serial port ที่มี ตัว IC serial แปลงเป็น usb นั้นเองหลังจากนั้นเจ้าตัว arduino จะทำหน้าที่ในการประมวลผล file G-code แล้วส่งให้กับไดร์ของสเต็ปโดยตรงหลักการทำงานจะเป็นตามขั้นตอนดังนี้นะครับ

1. คอมพิวเตอร์ ไม่ว่าจะ PC หรือ notebook หรือ บอร์ดลีนุกช์เช่น Raspberry pi หรือ BeagleBone อื่นๆ ทำการอ่าน file g-code แล้วส่งออกทาง usb post

2. Arduino รับ คำสั่งมาทำการประมวลผล แล้ว ส่ง pulse ออกตาม pin ต่างๆของ บอร์ด เพื่อทำการควบคุม ไดร์ของสเต็ป

3. ไดร์ รับ pulse แล้วแปลงเป็นการจ่ายกระแสเข้าตัวสเต็ปเพื่อกำหนดรอบการหมุน

4. สเต็ปมอเตอร์ทำงานเพื่อขับ แกนต่างๆ

Page 25: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

การติดตั้ง GRBL ใน arduino

เริ่มกันเลยนะครับ ไปโหลด grbl 0.9 กันก่อนครับ

https://github.com/grbl/grbl

แล้วทำการ unzip และเปลี่ยนชื่อเป็น grbl

Page 26: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

เข้าไปที่ sketch --> import library --> add library แล้วเลือก grbl

แล้วเราจะได้ library ชื่อ grbl

ให้โหลดเข้ามาแล้วทำการ upload ลงใน arduino ได้เลยครับส่วนในการใช้งานเราต้องปรับ baud rate ใหม่เป็น115200 as 8-N-1

Page 27: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

G-code ในงาน GRBLRef. https://github.com/grbl/grbl/wiki

Page 28: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

การอัพโหลด Grbl สามารถทำอีกวิธีโดยการใช้โปรแกรม Xloader โหลดโปรแกรมได้ที่ http://xloader.russemotto.com/แล้วทำการอัพโหลด Hex file

เราสามารถดาวโหลด Hex file ได้จาก https://github.com/grbl/grbl

็Hex file ท่ีต้องการโหลด

บอร์ดท่ีใช้งาน

Port

Baud rate

Page 29: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

การ setup ค่าใน GRBL

มาทำความรู้จัก pin ต่างๆครับหลังจากที่เราโหลด GRBL แล้วนั้นเจ้าบอร์ด arduino ของเราก็จะกลายร่างเป็น controller mini cnc โดยที่pin ต่างๆจะเปลี่ยนเป็น pin ที่ไว้ใช้ในการควบคุม อุปกรณ์ ดังนี้ครับ

pin2 -pin4 = เป็นสัญญาณ pulse ที่ใช้ในการควบคุม ไดร์สเต็ปเปอร์ แกน x y z ตามลำดับpin5-

pin7 = เป็นสัญญาณ pulse direction ที่ใช้ในการควบคุมทิศทางในการหมุนช้าย หมุนขวา ของสเต็ปเปอร์ แกน x y z ตามลำดับ

pin8 = เป็นสัญญาณเปิดปิด ไดร์สำหรับไดร์สเต็ปบ้างรุ่นจะมีการสั่งเปิดปิด

pin9-pin11 = เป็นลิมิตแกน x y z ตามลำดับโดนการวายลิ่งนั้นให้ใช้trigger switch ต่อลงกราวpin12 = ใช้ในการควบคุม spindle โดยควบคุมไปยัง inverter หรือ ชุดควบคุมความเร็วแบบที่สามารถรับสัญญาณในการควบคุมความเร็วได้หรือความสั่ง M03pin13 = ใช้เป็นสัญญาณในการกลับทางหมุนของ spindle หรือคำสั่ง M04A3 = coolant enable เป็นคำสั่งเปิดปิดน้ำหล่อเย็น โดยต่อกับกราว เราต้องต่อสัญญาณไปขยายหน้าคอนเทคอีกที่โดยต่อกับ relay mosfet เพื่อขยายสัญญาณA2 = Cycle start เป็นสัญญาณการกดเริ่มโปรแกรมแบบอัตโนมัติต่อเนื่องจากปุ่นกด โดยไม่ต้องกดจากหน้าโปรแกรม ต่อโดยใช้trigger switch ต่อลงกราวA1 = Feed Hold เป็นการหยุดการทำงานเครื่องชั่วคราวเมื่อกดอีกครั้งเครื่องจะทำงานต่อจากเดิมที่ค้าง ต่อโดยใช้trigger switch ต่อลงกราวA0 = รีเชตระบบโปรแกรมทั้งหมด ต่อโดยใช้trigger switch ต่อลงกราว

Page 30: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

การตั้งค่าของ grbl โดยตัว grbl นั้นการตั้งค่าจะโดยเก็บค่าไว้ที่ตัว AVR หรือที่ตัวบอร์ด arduino นั้นเอง วิธีการนั้นเราสามารถตั้งค่าต่างๆ ผ่านได้จะโปรแกรมที่เราใช้ในการควบคุมไม่ว่าจะเป็น grbl controller หรือ universel g-code sender แต่ในที่นี้เราจะสอนกันแบบพื้นๆโดยผ่านทาง serial moniter ของ arduino ide นั้นเองครับต่อตัว arduino ที่เราได้ลง grbl ไว้เรียบร้อยแล้ว หลังจากนั้นให้เปิด โปรแกรม arduino ideตั้งค่า comport กับรุ่นของบอร์ด ให้ตรงกับบอร์ดเรานะครับ

หลังจากนั้นให้เข้าไปที่ serial moniter

จะได้หน้าตาแบบนี้นะครับ

Page 31: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

คีย์ $ ลงให้ช่อง send

จะได้ชุดคำสั่งในการเข้าไปแก้ไขค่าต่างๆกันนะครับที่นี้เราต้องเข้าไปแก้ไขหลักๆก็จะเป็นในส่วนของview grbl setting คือการพิม $$ ที่ ช่อง sand

Page 32: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

การตั้งค่าให้พิม $ค่าที่จะตั้ง = ค่าที่ตั้ง$0=10 (step pulse, usec)$1=25 (step idle delay, msec)

$2=0 (step port invert mask:00000000)

$3=6 (dir port invert mask:00000110)

$4=0 (step enable invert, bool)

$5=0 (limit pins invert, bool)

$6=0 (probe pin invert, bool)

$10=3 (status report mask:00000011)

$11=0.020 (junction deviation, mm)

$12=0.002 (arc tolerance, mm)

$13=0 (report inches, bool)

$20=0 (soft limits, bool)

$21=0 (hard limits, bool)

$22=0 (homing cycle, bool)

$23=1 (homing dir invert mask:00000001)

$24=50.000 (homing feed, mm/min)

$25=635.000 (homing seek, mm/min)

$26=250 (homing debounce, msec)

$27=1.000 (homing pull-off, mm)

$100=4 (x, step/mm)

$101=4(y, step/mm)

$102=4 (z, step/mm)

$110=500.00 (x max rate, mm/min)

$111=500.00 (y max rate, mm/min)

$112=500.00 (z max rate, mm/min)

$120=50.000 (x accel, mm/sec^2)

$121=50.000 (y accel, mm/sec^2)

$122=50.000 (z accel, mm/sec^2)

$130=225.000 (x max travel, mm)

$131=125.000 (y max travel, mm)

$132=170.000 (z max travel, mm)

Page 33: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

การคำนวณ Resolution

วิธีการหาค่า มักจะมีสูตรคำนวณนูนนี้นั้นมาให้ งง กัน แทนค่ายังไง เอาง่ายๆเลยครับ1. มอเตอร์ใช้จำนวน pulse เท่าไรในการหมุน 1 รอบ หรือค่า pulse ที่เราตั้งที่ไดร์ นั้นเอง ในกล่องไดร์ปัจจุบัน จะมีเขียนไว้ที่กล่องแต่ถ้ามาเป็นแบบองศา เช่น 1.8 องศา ก็คือ 1 pulse จะหมุนไป 1.8 องศา ที่นี้รอบหนึ่งก็คือ 360 องศาก็หมายความว่า ต้องเอา 360 /1.8 เท่ากับต้องใช้ 200 pulse นั้นเอง

2.เมื่อได้ค่า pulse ต่อการหมุนหนึ่งรอบมาแล้วนั้น ก็หมายความว่าเราต้องตั้งให้โปรแกรมมันรู้ว่ารอบหนึ่งที่มันหมุนนะ เคลื่อนที่ไปเท่าไร ก็คือถ้าเราใช้บอลสกูล ที่มีระยะ pitch 5 mmก็คือหมุนบอลสกูลรอบหนึ่งตัว nut จะเคลื่อนที่ 5 mm นั้นเอง

3.เอาค่า pulse มาหารด้วยระยะทางในการเคลื่อนที่ต่อหนึ่งรอบของการหมุนของมอเตอร์ ก็จะเท่ากับ 200/5 =40 นั้นเองครับสรุปคือ เอาค่า pulse ที่ทำให้มอเตอร์หมุนหนึ่งรอบ/ด้วยระยะที่เกิดการเคลื่อนที่เมื่อมอเตอร์หมุนหนึ่งรอบดังนั้นไว้ว่าจะเป็นเคลื่อนที่ด้วย บอลสกูล หรือ สายพานทามมิ่ง หรือ เฟืองสะพาน หรืออื่นๆ ให้เอาค่า pulse ที่ทำให้มอเตอร์หมุนหนึ่งรอบ/ด้วยระยะที่เกิดการเคลื่อนที่เมื่อมอเตอร์หมุนหนึ่งรอบ

Page 34: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

ค่าที่จำเป็นหลักๆในการตั้งค่า Grbl

$100=4 (x, step/mm) ค่าคงที่การเคลื่อนที่ใน 1 pulse ในแนวแกน X$101=4 (y, step/mm) ค่าคงที่การเคลื่อนที่ใน 1 pulse ในแนวแกน Y$102=4 (z, step/mm) ค่าคงที่การเคลื่อนที่ใน 1 pulse ในแนวแกน Z$110=500.00 (x max rate, mm/min) ความเร็วสูงสุด G01 ในแนวแกน X$111=500.00 (y max rate, mm/min) ความเร็วสูงสุด G01 ในแนวแกน Y$112=500.00 (z max rate, mm/min) ความเร็วสูงสุด G01 ในแนวแกน Z$120=50.000 (x accel, mm/sec^2) ความเร่งในแนวแกน X$121=50.000 (y accel, mm/sec^2)ความเร่งในแนวแกน Y$122=50.000 (z accel, mm/sec^2)ความเร่งในแนวแกน Z$130=225.000 (x max travel, mm) ความเร็วสูงสุด G00 ในแนวแกน X$131=125.000 (y max travel, mm) ความเร็วสูงสุด G00 ในแนวแกน Y$132=170.000 (z max travel, mm) ความเร็วสูงสุด G00 ในแนวแกน Z

สามารถตั้งได้โดยทำการพิมค่าที่ต้องการลงใน serial monitor ได้และยังสามารถแก้ที่ Gui ที่เราใช้งานได้ด้วย

Grbl Gui Universal-G-Code-Senderเราสามารถโหลด Gui ได้ที่

https://github.com/grbl/Universal-G-Code-Sender

Page 35: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

Run start-windows.bat หรือ .jar

จำเป็นต้องมีการติดตั้ง java ก่อนนะครับ

Page 36: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

ตั้งค่า port ตามบอร์ดBaud115200 กด openFirmware grbl

เลือก G-code

Send เป็นการส่ง G code ไป grbl

Page 37: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc

โหมด machine control เป็นโหมดที่เราสามารถควบคุมแกนได้แบบ manual

ในส่วนของ setting เราสามารถแก้ไขค่าต่างๆที่ตั้งไว้ใน Firmware ได้ที่นี้ด้วยนอกจากที่เราตั้งมาจาก arduino ide นั้นเอง

สำหรับ Gui ของ Grbl นั้นมีอีกหลายตัวสามารถหาได้จาก google อีกหลายรูปแบบตามแต่เราถนัดในส่วนของ Universal-G-Code-Sender นั้นมีข้อดีคือสามารถใช้งานทุก OS

Page 38: Arduino mini cnc · 2019-03-20 · 1 ความก Arduino mini cnc (GRBL) mini cnc ออะไร ระบบ G-code และระบบการ&งานของmini cnc