📌 این سری در دو بخش است
- بخش ۱/۲: اسکلت چوبی، جداکردن قطعات پرینتر، مونتاژ محورهای X/Y/Z ✅
- بخش ۲/۲ (همین پست): الکترونیک، هاتاند DIY، فریمور Marlin، کالیبراسیون و چاپ اول
مغز و قلب پرینتر سهبعدی چطور کار میکند؟
RAMPS 1.4 (RepRap Arduino Mega Pololu Shield) یک برد الکترونیکی است که روی Arduino MEGA نصب میشود و همه کارهای کنترلی پرینتر را انجام میدهد: فرمان دادن به موتورها، کنترل دمای هاتاند، خواندن Endstopها، و ارتباط با کامپیوتر از طریق USB. این برد را میتوان با کمتر از ۵۰۰ هزار تومان خرید — یا برای صرفهجویی بیشتر، با یک Arduino MEGA و چند درایور A4988 جداگانه جایگزین کرد.
A4988 یک درایور موتور پلهای است — یک تراشه کوچک که فرمان «یک قدم به جلو» از آردوینو را به جریان الکتریکی دقیق تبدیل میکند که موتور را میچرخاند. برای هر محور (X, Y, Z, E) یک درایور جداگانه نیاز داری.
Marlin فریمور (نرمافزار داخلی) متنباز آردوینو است که پرینتر را هوشمند میکند. فایل G-code که از نرمافزار اسلایسر (مثل Cura) میگیری توسط Marlin تفسیر میشود و به حرکت دقیق موتورها و کنترل دما تبدیل میشود. Marlin روی آردوینو MEGA اجرا میشود و کاملاً رایگان است.
هاتاند (Hotend) قلب پرینتر است — جایی که فیلامنت ذوب میشود. در این پست یاد میگیریم با یک لوله برنجی M6، یک مقاومت ۵۰Ω/۱۰W، و یک ترمیستور NTC100k یک هاتاند DIY واقعی بسازیم.
🛠️ کارت پروژه — بخش الکترونیک
| زمان الکترونیک | ۶–۱۰ ساعت (شامل تنظیم Marlin) |
| بودجه الکترونیک | ~۸۰۰–۱۲۰۰ هزار تومان (RAMPS + Arduino + درایورها) |
| آلترناتیو ارزانتر | SKR Mini E3 (~۴۰۰ هزار تومان) — همهچیز در یک برد |
| فیلامنت اول | PLA 1.75mm — آسانترین، دمای ۱۸۵–۲۱۰°C |
BOM الکترونیک کامل
| قطعه | مشخصات | تعداد | قیمت |
|---|---|---|---|
| Arduino MEGA 2560 | کلون چینی هم کافی است | 1 | ~۲۵۰ هزار تومان |
| RAMPS 1.4 | شیلد روی MEGA | 1 | ~۱۵۰ هزار تومان |
| درایور A4988 | + هیتسینک کوچک | 4 | ~۱۲۰ هزار تومان |
| مقاومت ۵۰Ω / ۱۰W | المنت گرمایش هاتاند DIY | 1 | ~۱۵ هزار تومان |
| ترمیستور NTC 100kΩ B3950 | حسگر دما هاتاند | 2 | ~۳۰ هزار تومان |
| لوله برنجی M6×30mm | بدنه هاتاند DIY | 1 | ~۲۰ هزار تومان |
| نازل برنجی M6 0.4mm | نوک هاتاند | 2 | ~۴۰ هزار تومان |
| PTFE Tube 4mm/2mm | لوله گلو هاتاند (cold zone) | 30cm | ~۳۰ هزار تومان |
| فن ۴۰×۴۰mm / ۱۲V | خنککاری Cold End | 2 | ~۶۰ هزار تومان |
| منبع تغذیه ۱۲V / ۱۰A | اگر از پرینتر نداری | 1 | ~۲۵۰ هزار تومان |
| Endstop مکانیکی | اگر از پرینتر نداری | 3 | ~۳۰ هزار تومان |
| فیلامنت PLA 1.75mm | رول ۱kg برای چاپ اول | 1 | ~۳۰۰ هزار تومان |
ساخت هاتاند DIY — گام به گام
مراحل ساخت هاتاند:
- داخل لوله برنجی M6 را با مته ۲mm از داخل سوراخکاری کن تا فیلامنت ۱.۷۵mm عبور کند.
- نازل M6 را از پایین لوله پیچ کن — از تفلونتیپ استفاده نکن (دما خیلی بالاست).
- مقاومت ۵۰Ω را با سیم نازل نگیر دور بدنه لوله در ناحیه گرمایش بپیچ — ۳–۴ دور.
- ترمیستور NTC100k را کنار مقاومت با سیم نازل فلزی ثابت کن.
- یک لایه نازک «نوار میکا» یا فویل آلومینیوم روی مقاومت بپیچ تا عایق شود.
- PTFE tube را از بالای لوله وارد کن — باید تا ۲cm از نازل برسد (ناحیه سرد).
- فن ۴۰mm را روی ناحیه سرد (Cold Zone) بالای Heat Break نصب کن.
نقشه سیمکشی RAMPS 1.4
فریمور Marlin — پیکربندی برای این پرینتر
فریمور Marlin 2.x را از github.com/MarlinFirmware/Marlin دانلود کن. فایل اصلی برای تنظیم Marlin/Configuration.h است.
تنظیمات کلیدی در Configuration.h:
// ===== مادربرد =====
#define MOTHERBOARD BOARD_RAMPS_14_EFB // RAMPS 1.4: Extruder + Fan + Bed
// ===== نوع موتورها — گام هر محور =====
// اگر از Lead Screw T8 (گام 2mm) با 16 microstep استفاده میکنی:
// Z: (200 * 16) / 8 = 400 قدم در هر میلیمتر
// اگر از تسمه GT2 + پولی 20T استفاده میکنی:
// X,Y: (200 * 16) / 40 = 80 قدم در هر میلیمتر
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80.0, 80.0, 400.0, 93.0 }
// X Y Z E(extruder)
// ===== سرعت و شتاب — برای موتورهای ضعیفتر، کمتر بزار =====
#define DEFAULT_MAX_FEEDRATE { 200, 200, 5, 25 } // mm/s
#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 1000 } // mm/s^2
#define DEFAULT_ACCELERATION 200
#define DEFAULT_TRAVEL_ACCELERATION 200
// ===== حسگر دمای هاتاند =====
// ترمیستور NTC 100k B3950 = type 11 در Marlin
#define TEMP_SENSOR_0 11 // هاتاند
#define TEMP_SENSOR_BED 0 // بدون بستر گرم (فعلاً)
// ===== PID هاتاند — مقادیر شروع برای هاتاند DIY =====
#define PIDTEMP
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114.0
// ===== ابعاد ناحیه چاپ =====
#define X_BED_SIZE 100
#define Y_BED_SIZE 100
#define Z_MAX_POS 100
// ===== Endstop — در کجا قرار دارند؟ =====
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define X_HOME_DIR -1 // به سمت چپ
#define Y_HOME_DIR -1 // به سمت جلو
#define Z_HOME_DIR -1 // به سمت پایین
// ===== جهت موتورها — اگر معکوس بود true کن =====
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
کامپایل و آپلود Marlin روی Arduino MEGA:
- نصب: VS Code + افزونه PlatformIO (رایگان).
- فولدر Marlin را در VS Code باز کن.
- در فایل
platformio.iniمطمئن شوdefault_envs = mega2560باشد. - کلیک «Build» (تیک سبز پایین) — اولین بار ۵–۱۰ دقیقه طول میکشد.
- Arduino MEGA را با USB وصل کن، کلیک «Upload» (فلش پایین).
کالیبراسیون — گام به گام
مرحله ۱: تنظیم جریان درایور A4988
با مولتیمتر (پروب منفی روی GND برد، پروب مثبت روی پتانسیومتر درایور) ولتاژ Vref را اندازه بگیر:
| محور | Vref هدف | جریان موتور | توضیح |
|---|---|---|---|
| X / Y | 0.4–0.6V | ~400–600mA | موتورهای کوچک جوهرافشان |
| Z | 0.5–0.7V | ~500–700mA | باید وزن بستر را تحمل کند |
| E (Extruder) | 0.7–0.9V | ~700–900mA | باید فیلامنت را فشار بدهد |
فرمول: Vref = I_max × (8 × Rs) — برای A4988 استاندارد: Vref = I × 0.625
مرحله ۲: PID Autotune هاتاند
از طریق Pronterface یا Octoprint این دستور را بفرست:
M303 E0 S200 C8 ; کالیبراسیون خودکار PID هاتاند در ۲۰۰°C، ۸ چرخه
; بعد از اتمام، مقادیر Kp, Ki, Kd را در Configuration.h بنویس
M500 ; ذخیره در EEPROM
مرحله ۳: Homing و تست حرکت
G28 ; Home همه محورها — باید به Endstop برسند
G1 X50 F1000 ; حرکت به وسط محور X
G1 Y50 F1000 ; حرکت به وسط Y
G1 Z10 F300 ; بالا رفتن Z به ۱۰mm
مرحله ۴: Bed Leveling دستی
G28 ; Home
G1 Z0 F300 ; برو به ارتفاع صفر
; با کاغذ A4 (ضخامت ~0.1mm) فاصله نازل از بستر را چک کن
; ۴ گوشه را تنظیم کن تا کاغذ به سختی زیر نازل بکشد
مرحله ۵: کالیبراسیون E-steps (اکسترودر)
; روی فیلامنت ۱۰۰mm از یک نقطه مشخص علامت بزن
M92 E93 ; مقدار اولیه پیشفرض
G1 E100 F100; ۱۰۰mm اکسترود کن
; اندازه بگیر — اگر کمتر از ۱۰۰mm رفت: E_new = E_old × 100 / واقعی
M92 E[مقدار_جدید]
M500 ; ذخیره
تنظیمات Cura برای اولین چاپ
| پارامتر | مقدار توصیهشده | دلیل |
|---|---|---|
| دمای نازل PLA | 195–205°C | شروع با ۲۰۰°C |
| دمای بستر | ۰°C (بدون heated bed) | از چسب PVA یا لاک موی بیرنگ روی شیشه استفاده کن |
| ارتفاع لایه (Layer Height) | 0.2mm | 50% قطر نازل — بهترین کیفیت اول |
| سرعت چاپ | 30–40 mm/s | برای موتورهای ضعیف جوهرافشان |
| Infill | 20٪ Grid | برای تست اول کافی است |
| Shell Thickness | 0.8mm (2 دیواره) | – |
| اولین چاپ | مکعب ۲۰×۲۰×۲۰mm | سادهترین شکل برای تشخیص مشکل |
عیبیابی — شایعترین مشکلات اول
| مشکل | علت احتمالی | راهحل |
|---|---|---|
| فیلامنت به بستر نمیچسبد | فاصله نازل زیاد یا بستر چرب | Bed leveling + لاکموی بیرنگ روی شیشه |
| موتور صدای تقتق میدهد | جریان A4988 کم | Vref را 0.1V بالا ببر |
| لایهها به هم نمیچسبند | دمای پایین یا سرعت بالا | دما را ۵° بالا ببر، سرعت را کم کن |
| هاتاند Thermal Runaway میدهد | ترمیستور شل است | ترمیستور را با سیم فلزی محکم ببند |
| چاپ در هوا شروع میشود | Z_HOME_DIR اشتباه | در Marlin جهت Z را عوض کن |
| ابعاد چاپ اشتباه است | Steps/mm غلط | Steps را با فرمول بالا محاسبه و تنظیم کن |