پرینتر سه بعدیهمه ی مطالب

راهنمای عملی و مرحله‌به‌مرحله برای راه‌اندازی CNC با GRBL روی Arduino (Uno / Nano) — خلاصهٔ اجرایی

راه‌اندازی CNC با GRBL

پایین‌تر همه‌چیز را به صورت گام‌به‌گام و قابل اجرا آورده‌ام — از نصب و فلش تا پیکربندی محور دو موتوره و عیب‌یابی. هر جا لازم بود مرجع رسمی هم گذاشتم تا اگر خواستی مستقیماً سند را ببینی. (مراجع اصلی: مخزن GRBL و صفحات تنظیمات / شیلد و UGS). (GitHub)


خلاصهٔ راه‌اندازی سریع CNC با GRBL  (اگر عجله داری — انجام بده)

  1. سخت‌افزار را آماده کن: Arduino Uno/Nano، درایورهای استپر، موتورها، منبع تغذیه مناسب، limit switchها، کابل‌ها و (در صورت استفاده) Protoneer/CNC Shield.
  2. GRBL را دانلود کن و با Arduino IDE یا PlatformIO در پوشه libraries/ قرار بده و مثال grblUpload را آپلود کن. (GitHub)
  3. اگر محور دو موتوره لازم داری، در config.h گزینه ENABLE_DUAL_AXIS را uncomment کن و DUAL_AXIS_SELECT را به محور مورد نظر (مثلاً Y_AXIS) تنظیم کن؛ سپس compile & upload. (پین‌های پیش‌فرض شیلد: A3/A4 یا D12/D13 بسته به کانفیگ). (GitHub)
  4. مقدار تئوری Steps/mm را محاسبه کن (فرمول پایین). مقدارها را در GRBL با $100, $101, $102 وارد کن. سپس با فرمان‌های حرکت و کولیس کالیبر کن و مقدار را اصلاح کن. (wiki.neje99.com)
  5. Homing ($22=1) و self-square: دو limit switch برای هر سمت قرار بده، تست کم‌سرعت انجام بده، در صورت نیاز $1=255 تا استپرها همواره فعال بمانند.
  6. کانال کنترل (مثلاً UGS) را وصل کن، مقدار $ها را چک کن و یک تست ساده (مثلاً مربع 10×10 mm) اجرا کن. (winder.github.io)

راهنمای کامل مرحله‌به‌مرحله راه‌اندازی CNC با GRBL

گام 0 — پیش‌نیازها (چه چیز باید داشته باشی)

  • Arduino Uno یا Nano (ATmega328P)، کابل USB
  • درایورهای استپر (A4988/DRV8825 یا مشابه)، موتورهای استپر، منبع تغذیه جدا برای درایورها
  • (اختیاری اما معمول) Arduino CNC Shield / Protoneer v3.51 یا شیلد مشابه برای آسان‌تر شدن سیم‌کشی. (blog.protoneer.co.nz)
  • کامپیوتر با Arduino IDE یا VSCode+PlatformIO، و نرم‌افزار ارسال G-code مثل UGS.

گام 1 — دانلود و آماده‌سازی GRBL

  1. از مخزن رسمی GRBL آخرین نسخه را دانلود کن (gnea/grbl یا grbl/grbl). پوشه grbl را در Documents/Arduino/libraries/ کپی کن تا مثال‌ها در Arduino IDE ظاهر شوند. (GitHub)
  2. یا اگر از PlatformIO استفاده می‌کنی، پروژه را باز کن و board = uno را در platformio.ini تنظیم کن.
  3. باز کردن Arduino IDE → File → Examples → grbl → grblUpload و Upload. اگر برای Nano خطا دیدی، امتحان کن با انتخاب بوت‌لودر قدیمی (Old Bootloader). (Arduino Forum)

گام 2 — فعال‌سازی محور دوبل (Dual-Axis) در سورس (در صورت نیاز)

وقتی نیاز داری یک محور (مثلاً Y) دو موتور داشته باشد و هر طرف امکان homing مستقل داشته باشد.

  1. در سورس GRBL فایل config.h را باز کن.
  2. خط مربوط به Dual Axis را از حالت کامنت خارج کن:
#define ENABLE_DUAL_AXIS
#define DUAL_AXIS_SELECT Y_AXIS   // یا X_AXIS اگر محور X دوتایی است
  1. یک کانفیگ سخت‌افزاری را انتخاب کن (برای CNC Shield/Protoneer معمولاً گزینه‌ای پیش‌فرض هست مثل DUAL_AXIS_CONFIG_PROTONEER_V3_51 یا DUAL_AXIS_CONFIG_CNC_SHIELD_V3_0). پین‌های پیش‌فرض در شیلدها معمولاً A.STP/A.DIR روی A4/A3 یا D12/D13 هستند؛ اگر شیلد نداری، می‌توانی پین‌ها را در cpu_map.h تغییر دهی. (GitHub)
  2. سورس را کامپایل و آپلود کن. سپس سیم‌بندی موتور دوم را مطابق نقشهٔ شیلد/پین‌ها انجام بده.

نکته: برخی کاربران گزارش داده‌اند که Dual-Axis گاهی نیاز به تنظیمات/اشکال‌زدایی دارد (مطالعهٔ issues مربوطه در GitHub مفید است). (GitHub)

برد کنترل CNC و دستگاه لیزر MKS DLC32 V2.1 با Wi-Fi

برد کنترل CNC و دستگاه لیزر MKS DLC32 V2.1 با Wi-Fi

لینک خرید

درایور استپر موتور A4988 Reprap

درایور استپر موتور A4988 Reprap

لینک خرید

شیلد درایور CNC ورژن 4

شیلد درایور CNC ورژن 4

لینک خرید

 


گام 3 — سیم‌کشی و نکات سخت‌افزاری راه‌اندازی CNC با GRBL

  1. موتورها به درایورها، درایورها به شیلد/آردوینو وصل شوند (STEP, DIR, ENABLE). برای محور دو موتوره، یک درایور دوم برای همان محور اضافه کن و پین‌های STEP/DIR آن را به پین‌های A.STP/A.DIR یا پین‌های تعیین‌شده در سورس وصل کن. (blog.protoneer.co.nz)
  2. Limit switchها: برای self-squaring هر سمت گانتری یک limit switch داشته باش — آن‌ها را به پین‌های مربوط وصل کن (GRBL معمولاً از Z_LIMIT به‌عنوان مشترک برای A limit استفاده می‌کند؛ بررسی سورس و docs شیلد لازم است).
  3. تنظیم جریان در درایورها (Vref) را انجام بده؛ قبل از تست، ولتاژ و جریان را مطابق موتور تنظیم کن و از خنک‌کنندگی مناسب استفاده کن.

گام 4 — تنظیمات اولیه GRBL ($-commands)

بعد از آپلود، با UGS یا Serial Monitor به GRBL متصل شو و دستور $$ را بزن تا تنظیمات فعلی را ببینی. سپس مقادیر اولیه پیشنهادی زیر را وارد کن (مثال برای ماشین سبک تا متوسط — بسته به دستگاه خودت تغییر بده):

$0=10       (step pulse μs)
$1=255      (step idle delay — 255 => استپرها همیشه enabled)
$22=1       (enable homing)
$100=85.333 (X steps/mm)   ; مثال برای پولی 15 دندانه و میکرواستپ 1/32
$101=85.333 (Y steps/mm)
$102=800    (Z steps/mm)   ; مثال برای لیداسکرو 8mm
$110=3000   (X max rate mm/min)  ≈ 50 mm/s
$111=3000   (Y max rate mm/min)
$112=500    (Z max rate mm/min)
$120=200    (X accel mm/s^2)
$121=200    (Y accel mm/s^2)
$122=50     (Z accel mm/s^2)

منابع و لیست کامل پارامترها را در مستندات GRBL ببین. (wiki.neje99.com)


گام 5 — محاسبهٔ Steps/mm (تئوری) و کالیبراسیون عملی

فرمول پایه

Steps_per_mm = (Motor_steps_per_rev × Microstepping) / Travel_per_rev
  • برای موتور 1.8° → Motor_steps_per_rev = 200
  • برای تسمه پولی: Travel_per_rev = pulley_teeth × belt_pitch
  • برای لیداسکرو: Travel_per_rev = screw_lead (می‌تواند برابر pitch یا lead بسته به نوع اسکرو باشد)

مثال‌ها (تطابق با متن شما)

  • X/Y با تسمه T5، پولی 15 دندانه، میکرواستپ 1/32:
    • Travel_per_rev = 15 × 5 = 75 mm
    • Steps/mm = (200 × 32) / 75 = 6400 / 75 ≈ 85.333 steps/mm
  • Z با لیداسکرو 8 mm lead:
    • Steps/mm = 6400 / 8 = 800 steps/mm

کالیبراسیون عملی (پیشنهادشده)

  1. مقدار تئوری را در $100/$101/$102 قرار بده.
  2. دستور حرکت بزرگ (مثلاً G0 X100) بده.
  3. با کولیس/خط‌کش اندازه‌گیری کن Actual_Distance.
  4. فرمول اصلاح:
New_Steps = Old_Steps × (Commanded_Distance / Actual_Distance)

مثال: اگر Old_Steps=85.333 و دستور 100 mm داده‌ای، ولی ابزار 99.6 mm حرکت کرده:

New_Steps ≈ 85.333 × (100 / 99.6) ≈ 85.676

مقدار جدید را با $100=85.676 وارد و دوباره تست کن تا خطا به حداقل برسد. (سعی کن با ابزار دقیق اندازه‌گیری کنی). (wiki.neje99.com)


گام 6 — راه‌اندازی و اتصال با UGS (مثال)

  1. UGS Platform را دانلود و اجرا کن (نسخه مناسب سیستم‌عاملت). (winder.github.io)
  2. Arduino را وصل کن، پورت COM را انتخاب کن و Baud را روی 115200 بگذار و Connect بزن.
  3. در Console: $$ را بزن تا تنظیمات را ببینی.
  4. Jog چند میلی‌متر با Jog Controller؛ بررسی کن جهت‌ها درست باشند.
  5. اگر limit switch نصب است، $H را برای Homing اجرا کن (ابتدا سرعت‌های Homing در $24/$25 را پایین قرار بده).
  6. یک G-code کوچک (مثلاً مربع 10×10) را اجرا و مسیر را در Visualize چک کن.

راهنمای نصب و نکات بیشتر UGS را در سایت رسمی UGS ببین. (winder.github.io)


گام 7 — Homing و Self-Squaring محور دو موتوره

  1. مطمئن شو $22=1 و limit switchها صحیح وصل شده‌اند.
  2. Homing را با سرعت پایین اجرا کن و مشاهده کن که هر سمت به نوبت تریگر می‌شود.
  3. اگر می‌خواهی بعد از Homing گانتری قفل بماند، $1=255 بگذار تا استپر همیشه فعال بمانند (برای جلوگیری از تغییر هندسی).
  4. اگر سمت‌ها متفاوت عمل کردند: چک کن polarity و invert mask ($3 و $23) و سیم‌بندی limit switchها.
  5. قبل از گذاشتن بار واقعی، چند بار با سرعت پایین تست کن تا مطمئن شوی خودِ-اسکوار کردن (self-square) پایدار است. (برای جزئیات پیاده‌سازی سخت‌افزار/سیم‌بندی شیلد‌ها، مرجع شیلد و issues گیت‌هاب را ببین). (blog.protoneer.co.nz)

گام 8 — چک‌لیست نهایی قبل از کار راه‌اندازی CNC با GRBL

  • Vref درایورها تنظیم شده و خنک‌کننده مناسب هست.
  • تمامی کابل‌ها ایمن و کانکتورها فشرده‌اند.
  • $های اصلی ($100..$112, $120..$122, $0, $1, $22) ست و ذخیره شده‌اند.
  • Limit switchها کار می‌کنند و جهت موتورها صحیح است.
  • E-Stop سخت‌افزاری وصل و تست شده است.
  • روی هوا (بدون ابزار یا بار) اجرای یک G-code ساده برای اطمینان.

عیب‌یابی سریع (مشکلات رایج و راه‌حل)

  • هیچ حرکتی ندارم: بررسی پورت COM/baud، پیغام شروع GRBL در سِریال، Vref درایورها، enable pin.
  • از دست رفتن استپ در سرعت بالا: کاهش $110/$111 یا شتاب $120/$121، افزایش $0 (pulse) از 10µs به 20–100µs، بررسی جریان موتور و خنک‌کننده.
  • Homing مشکل دارد / گانتری اسکوار نمی‌شود: چک کن limit switchها به پین درست وصل شده‌اند و $23/$27 تنظیم شده؛ $1=255 را امتحان کن.
  • حرکات دایره‌ای (G2/G3) کیفیت ندارد: مقدار junction deviation ($11) یا arc tolerance ($12) را تنظیم کن.
    (برای لیست کامل تنظیمات و توضیحات، docs GRBL را ببین). (wiki.neje99.com)

منابع برای مطالعهٔ عمیق‌تر (لینک‌های کلیدی)

  • مخزن رسمی GRBL (دانلود و Releases و راهنمای نصب). (GitHub)
  • مستندات و لیست تنظیمات GRBL (لیست $ها و معانی‌شان). (wiki.neje99.com)
  • Protoneer / CNC Shield V3 docs (پین‌اوت و راهنمای نصب شیلد). (blog.protoneer.co.nz)
  • مباحث GitHub درباره Dual-Axis (مسائل و راهنمایی‌های عملی کاربران). (GitHub)
  • Universal G-code Sender (UGS) — دانلود و راهنمای نصب. (winder.github.io)

اگر بخواهی، همین الآن می‌تونم:

  • یک چک‌لیست قابل چاپ (PDF) از مراحل تولید کنم؛
  • یا یک فایل step-by-step برای چک‌لیست در قالب markdown / تک‌صفحه آماده کنم؛
  • یا بر اساس مشخصات دقیق سخت‌افزار تو (نوع موتور، میکرواستپ، پولی، pitch یا lead screw، مدل شیلد) مقدارهای اولیه‌ی $100/$101/$102 و $110..$122 پیشنهادی دقیق‌تری تولید کنم.

کدوم یکی دوست داری بعدی انجام بدم؟

 

Köhnə Dərviş

Adım Köhnə Dərviş, əsrlərdir bu dünyanın təlaşını izləyirəm. Əvvəllər mənə "mistik" deyərdilər, indi "geek" deyirlər. Çölə çıxıb transa keçmək əvəzinə, artıq Arduino ilə transistora keçirəm. Mənəvi aləmdəki səfərimi WiFi siqnalı izləyərək tamamlayıram – "İlahi Router"ın mənasını hələ də axtarıram. Mənə görə ən böyük mərciməh "sükut"du, indi bunu noise-cancelling algoritmlə təmin edirəm. Həyat mənə "debug" etməyi öyrətdi: öz kodu ilə yaşayan bir dərvişəm. Və xeyir, dua etməyə çay əvəzinə kofeinsiz espresso tövsiyə edirəm – çünki dərin məşğuliyyət tələb edir. ☕️🔧

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

دکمه بازگشت به بالا