مقدمة:

سنتعرَّف في هذه المقالةِ برنامجَ GRBL وكيفيةَ تنصيبهُ واستخدامهُ للتّحكم بماكينة CNC المعتمدة على الأردوينو، وسنتحدّث أيضًا عن كيفيّة استخدام برمجيَّة Universal G-code Sender الّذي يُعدُّ البرنامجَ الأشهر المُستخدم مع GRBL.

ما هو GRBL؟

هو عبارة عن أحدِ البرمجيّات المفتوحة المصدرِ تُستخدم للتّحكم بحركة ماكينة CNC، حيثُ بالإمكان حقنُ برمجية GRBL بسهولة في الأردوينو، فمِن ثمَّ نحصل على متحكّم بسعر مناسب وأداءٍ مرتفع، كما يستخدِم GRBL الـ G-code كدخل له بحيثُ يكون الخرجُ عبارةً عن أوامر التحكّم بالحركة.

لنلقِ نظرةً على الشّكل أدناه لتعزيزِ فهمنا:

نظرة شاملة على ماكينة CNC ومكوّناتها
نظرة شاملة على ماكينة CNC ومكوّناتها (مصدر الصورة: موقع howtomechatronics)

يمكّننا الرسمُ التخطيطي في الشكل أعلاه من معرفةِ مكان توضع الـ GRBL ضمنَ مخطط مبدأ عمل ماكينة CNC، فهو برنامجُ التّثبيت الّذي نحتاج إلى تنصيبهِ أو رفعهِ إلى الأردوينو لنتمكّن من التّحكم بالمحركات الخطويّة Stepper Motors للماكينة، وبمفهومٍ آخرَ يعمل برنامج GRBL على ترجمة الـ G-code وتحويلِهِ بهيئة حركة للمحرّكات.

المكونات المادية المطلوبة (العناصر):

  • لوحة التّطوير Arduino: نحتاج إلى لوحةِ الأردوينو كي ننصّبَ برنامج GRBL، ونحتاج بشكلِ خاصّ إلى أردوينو Atmega 328 الّذي يعني أنّه بالإمكان استخدامُ إمَّا أردوينو أونو UNO وإمَّا نانو Nano.
  • محرّكات خطويّة: المحرّكات الخطويّة هي المسؤولة عن حركةِ الماكينة كما هو واضحٌ.
  • دارات قيادة: نحتاج إلى دارات قيادة للتحكّم بالمحرّكات ويكون الخيارُ الأفضلُ والأشهر -لماكينات DIY CNC الصّغيرة (ذات المحرّكات NEMA 14 or 17)- هو داراتِ القيادةِ نوع A4988 أو DRV8825.
  • شيلد الأردوينو الخاصّ بالماكينة Arduino CNC Shield: يُستخدم كطريقة سهلةٍ لربط المحرّكات بالأردوينو، إذ إنَّ الشيلدَ يستخدم جميعَ أطراف الأردوينو، (الشيلد هو قطعة إلكترونيّة تمنح ميزات إضافيةً للأردوينو بسهولة)؛ فيسهّل الاتّصالُ بأيّ قطعة إلكترونيّة كالمحرّكات والمفاتيح switch وإلى ما ذلك.

تُرجى المُلاحظةُ أنّ القطعَ الإلكترونيّة المذكورة آنفاً هي المكونات التّي نحتاج إليها لفهم كيفيّة عمل الماكينة CNC، فعليّاً، وكمثال على ضرورة ربْط كلّ القطع ووصلها، يمكننا إلقاءُ نظرة على DIY CNC Foam Cutting.

كيفية ربط المكونات المادية وتوصيلِها.
كيفية ربط المكونات المادية وتوصيلِها (مصدر الصورة: موقع howtomechatronics)

تمثل أداة القطع (ويمكن أن تكون أداةً للرسم) الأداة الرئيسة لماكينة CNC التي يُمكنها أن تذيبَ (أو تُصهر) أو تقطع بسهولة من خلال استخدام مادة Styrofoam وبالنتيجة صنعُ أيّ شكل تريده.

الأداة hot wire.
الأداة hot wire (مصدر الصورة: موقع howtomechatronics)

ومع ذلك سنستخدم هذه الماكينةَ كمثال حيث يُطبّق مبدأ العمل ذاته على أيّ ماكينة CNC إن كانت ليزريّة أو يدويّة.

تنصيب برنامج GRBL:

أوَّلاً، نحتاج إلى بيئة التّطوير البرمجيّة Arduino IDE لنكونَ قادرين على تنصيب برنامج GRBL أو رفعِه إلى الأردوينو، بعدَها يمكننا تحميلُ برنامج التَّثبيت GRBL من موقع firmware from github.com .

واجهة موقع GITHUB وتحميل البرنامج من خلاله
واجهة موقع GITHUB وتحميل البرنامج من خلاله (مصدر الصورة: موقع howtomechatronics)

حمّلهُ بصيغة مِلف .ZIP ثُمّ اتبعِ الخطواتِ التّالية:

  • افتح مِلف grbl-master.zip واستخرج الملفات.
  • افتح بيئةَ التَّطوير البرمجيَّة Arduino IDE وانتقل إلى المسارِ التالي: Sketch > Include Library > Add .ZIP Library
إضافة GRBL كمكتبة إلى Arduino IDE
إضافة GRBL كمكتبة إلى Arduino IDE (مصدر الصورة: موقع howtomechatronics)
  • انتقل إلى مجلدِ الاستخراج “grbl-master”، واختر من ضمنِه مجلدَ “grbl” ثم انقر عليه ليفتحَ المِلف، والآن أصبح لدينا الـ GRBL كمكتبة من مكتبات Arduino.
مجلد “grbl”.
مجلد “grbl” (مصدر الصورة: موقع howtomechatronics)
  • انتقل بعد ذلك إلى: File > Examples > grbl > grblUpload، عندَئذٍ ستُفتَح واجهة رسومية برمجية جديدة، التي يجب رفعُها إلى الأردوينو، كما قد يبدو الرَّمز البرمجي غريباً ومريباً لمجرّد أنَّه سطرٌ واحد، لكن عمليّاً تحدث الأشياء جميعُها في المكتبة لذا كل ما علينا فعلُهُ هو اختيارُ لوح الأردوينو ومنفذ COM ثم ضغط زر الرّفع.

تهيئة GRBL:

يجب علينا في هذه المرحلة تهيئةُ أو ضبط برنامج GRBL على الماكينة الخاصَّة بنا، حيثُ تمكّننا نافذةُ السّيريال في بيئة التَّطوير Arduino IDE من القيام بذلك، مع العلم أنّه عندَ فتح النافذة سنتلقى رسالةً تحمل العبارة “Grbl 1.1h [‘$’ for help]” وفي حال عدم تلقي هذه الرّسالة تأكد عندها تغييرَ معدل الباود baudrate إلى 115200.

نحصل على قائمة من الأوامر أو الإعدادات الحاليَّة إذا كتبنا “$$”، وتظهر بشكلٍ يشبه ما يلي:

$100=250.000 (x, step/mm)
$101=250.000 (y, step/mm)
$102=3200.000 (z, step/mm)
$110=500.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)

تُضبَط هذه الأوامر كافةً على وَفق ماكينة CNC الخاصَّة بنا، مثلاً يمكّنُنا الأمرُ الأوّلُ $100=250.000 (x, step/mm) من ضبط عددِ الخطوات في كلِّ ميليمتر mm للماكينة أو يمكننا تحديدُ عدد خطوات المحرك على المحور X اللّازمة للتحرّك بمقدار 1 ميليمتر.

ومع ذلك، يُقترَح تركُ هذه الإعدادات كما هي واتّباع طريقة أسهلَ للضبط والتهيئة وفقاً للماكينة عن طريق برمجة المتحكّم والذي سيُشرح في القسم التّالي.

متحكّم GRBL:

يعلم الأردوينو كيفيّةَ قراءة G-code والتّحكم بماكينة CNC من خلاله، وذلك بعد تنصيبَ برنامج GRBL، ولكن نحتاج إلى بعضِ أنواع الواجهات أو برمجة المتحكَّمات لإرسال الـ G-code الذي يخبر الأردوينو عمَّا يجب فعلُه، وفي الحقيقة، يُوجد كثيرٌ من المصادر المفتوحة والبرامج التِّجارية لتحقيق هذا الهدف، وبالطّبع سنختار برنامجًا مفتوحَ المصدر، مثلَ: مرسل Univarsal G-code sender.

المرسل Univarsal G-code sender
المرسل Univarsal G-code sender (مصدر الصورة: موقع howtomechatronics)

كيفيّة استخدام المرسل Univarsal G-code sender:

سنستخدم في هذا المثال الإصدارَ 2.0 Platform وعند تحميلِه نحتاج إلى استخراج مِلف zip ثمّ الانتقال إلى مجلّد “bin” وفتح ملفات “ugsplatfrom” التّنفيذيّة، مع العلم أنّ هذا البرنامج هو برنامجٌ يعتمد على لُغة جافا JAVA لذلك وحتَّى نكون قادرين على تشغيلِ البرنامج يجب علينا أوّلاً تنصيبُ البيئة البرمجيّة JAVA Runtime Environment بعد ذلك وعندَ فتح مرسل Universal G-code sender فإنّ أوّل ما نحتاج إليه هو تهيئةُ الماكينة أو تهيئة بارامترات GRBL المذكورة سابقاً، ولتحقيق هذه الخطوة نستخدم برنامج UGS Setup Wizard الذي يعتبر أكثرَ ملاءمة، وثم بعد ذلك يمكننا كتابةُ الأوامر البرمجية يدويّاً عبر نافذة السّيريال لبيئة التطوير Arduino IDE.

واجهة التحقق من الاتصال CONNECTION
واجهة التحقق من الاتصال CONNECTION (مصدر الصورة: موقع howtomechatronics)

تتمثل الخطوةُ الأولى كما هو موضَّح في الشكل (8) باختيار معدل الباود baudrate الذي يجب أن يكون 115200 وبالتحقق من أن منفذ الأردوينو متّصل، وبعد اتِّصال المرسل بالأردوينو يمكننا تأكّدُ اتجاهات الحركة للمحركات في الخطوة التي تليها.

واجهة التحقق من اتجاهات الحركة للمحرّك Motor Wiring.
واجهة التحقق من اتجاهات الحركة للمحرّك Motor Wiring (مصدر الصورة: موقع howtomechatronics)

نستطيع عكسَ الاتجاهات من خلال البرنامج إذا اُضطرّ الأمر، أو يدويّاً عن طريق قلب وصلات المحرّك على شيلد الأردوينو، أمّا في الخطوة التالية، فنستطيعُ ضبطَ بارامتر الخطوة steps/mm وهنا يكون فهمُ كيفيّة الضّبط أسهلَ؛ لأنَّ إعدادات البرنامج تحسبُ ثم تخبرنا بالقيم اللّازمة لتحديث البارامترات.

خطوة المعايرة (الخاصّة بالتحريك)
خطوة المعايرة (الخاصّة بالتحريك) (مصدر الصورة: موقع howtomechatronics)

تكون القيمةُ الافتراضية للخطوات هي 250 steps/mm التي تعني أنه إذا نقرنا على زر “x+” فإنَّ المحرّكَ سيخطو 250 خطوةً، حيث ستتحرّك الماكينة مسافة معينة معتمدةً في ذلك على عدد الخطوات الخاصة بالمحرّك ودقّة الخطوات المختارة ونوع الإرسال، كما نستطيع قياس الحركة الفعلية والمسافة التي قطعتها الماكينة وذلك باستخدام المسطرة؛ ثم ندخل هذه القيمة في حقل “Actual movement” وبالاعتماد على هذه القيمة يخبرنا البرنامج عن القيم الجديدة والمحدّثة لبارامتر الخطوة steps/mm.

استخدام المسطرة لمعرفة المسافة التي تحركت إليها الماكينة
استخدام المسطرة لمعرفة المسافة التي تحركت إليها الماكينة (مصدر الصورة: موقع howtomechatronics)

نلاحظ في حالة الماكينة DIY CNC التي اعتمدناها أنها تحركت بمقدار 3سم ووفقاً لتلك القيمة يقترح البرنامج تحديثَ بارامتر الخطوة steps/mm إلى القيمة 83.

واجهة step calibration التي تعرض بارامترات DIY CNC
واجهة step calibration التي تعرض بارامترات DIY CNC (مصدر الصورة: موقع howtomechatronics)

ومع هذه القيمة الجديدة ستتحرك الماكينة بشكل صحيح، حيث أصبح كل 1 ميليمتر في البرنامج تعني 1 ميليمتر واقعياً لماكينة CNC.

منصة UGS
منصة UGS (مصدر الصورة: موقع howtomechatronics)

نستطيع رؤيةَ الأوامر المنفذة من خلال مِنصة UGS، كما ونلاحظ أنّ برنامج UGS أُرسِل إلى الأردوينو فورَ تحديث قيمة بارامتر steps/mm أو يرسل برنامج GRBL الأوامر التي استعرضناها آنفاً.

كانتِ القيمة الافتراضية: $100=250.000 (x, step/mm)، أما القيمة المحدّثة فهي 83 خطوةً في الميليمتر الواحد $100=83.

نستطيع في الخطوة التالية تفعيلَ مفاتيح limit switches واختبارها إن كانت تعمل أو لا.

واجهة مفاتيح limit switches
واجهة مفاتيح limit switches (مصدر الصورة: موقع howtomechatronics)

بإمكاننا أيضاً تبديلُ المفاتيح من هنا، وذلك بالاعتماد على طبيعة المفاتيح إن كانت في حالة الاتِّصال Normally Open أو حالة الاتّصال Normally Closed، كما يجدر بنا ملاحظة أنه في بعض الأحيان لا نكون بحاجة إلى تفعيل المِفتاح Z axis limit switch كما هو الحال بالنسبة إلى الماكينة التي اعتمدناها DIY CNC Foam Cutting حيث لم نفعّله لتعمل الماكينة بشكل صحيح، لذا نحتاج إلى تعديل مِلف config.h للقيام بذلك المتواجد ضمنَ مجلد مكتبة الأردوينو Arduino Library أو من خلال المسار Documents\Arduino\libraries.

كيفية تعديل مِلف config.h
كيفية تعديل مِلف config.h (مصدر الصورة: موقع howtomechatronics)

نحتاج هنا إلى إيجاد السَّطر البرمجي الخاصّ بـ homing cycle وتحويل الماكينة من الوضع الافتراضي الذي يستخدم المحاور الثلاثة إلى تعليق comment، وإلغاء حالة التعليق عن الوضع الذي يسمح باستخدام محورين فقط، بعد ذلك نحفظ المِلف ريثما يستجيب البرنامجُ للتغييرات ثم نعيد رفعَ المقطع البرمجي grblUpload إلى الأردوينو.

ومع ذلك، فإننا نستطيع في الخطوة التالية من تفعيل أو عدم تفعيل الـ homing لماكينة CNC.

واجهة Homing
واجهة Homing (مصدر الصورة: موقع howtomechatronics)

حيثُ ستبدأ الماكينة التّحرّك باتّجاه النهاية المحددة عندَ استخدام زر “Try homing”، وفي حال تحرّكت في الاتّجاه المعاكس فيمكننا عندَئذٍ تغييرُ الاتّجاهات بسهولة.

وفي النهاية تمكننا الخطوة الأخيرة من إعدادات البرنامج من تفعيل soft limits للماكينة والتي تمنع الماكينة من التحرك خارج منطقة العمل.

واجهة soft limits
واجهة soft limits (مصدر الصورة: موقع howtomechatronics)

ملخص:

تعلّمنا في هذه المقالةِ عن برنامج التَّثبيت GRBL وكيفيةِ إعداد ماكينة CNC بسهولة، حيث غطتِ المقالة الأساسياتِ فحَسْبُ، ولكنها كافية لفهم آليَّة العمل وآلية صنعِ  CNC وتشغيله.

لوحة التطوير الأردوينو وشيلد CNC المرافق لها
لوحة التطوير الأردوينو وشيلد CNC المرافق لها (مصدر الصورة: موقع howtomechatronics)

يُوجد بالطبع عديدٌ من الإعدادات والخصائص المتاحة، من حيثُ يمثل GRBL برنامجًا فاعلًا للتحكم بـ CNC كما تشرح مستندات GRBL التفاصيل كافةً، فمِن ثمَّ يمكنك دائماً التحققُ منها من خلال الموقع: wiki page on github.com.

أيضاً هنالك عددٌ من برامج التَّحكم GRBL المفتوحة المصدرِ كـ G-Code وبعض الأمثلة عليها هي:

GRBLweb (Web Browser), GrblPanel (Windows GUI), grblControl (Windows/Linux GUI), Easel (Browser based)

عليك اكتشافُهم واختيارُ الأفضل والمناسب لك.


المصدر: هنا

ترجمة: سارة خضر, مراجعة: علي العلي, تدقيق لغوي: محمد بابكر, تصميم: علي العلي, تحرير: قحطان غانم.