กลับไปหน้ารวมไฟล์
cnc-flatbed-pen-plotter-944ccd.md

CNC Flatbed Pen Plotter

ผมตัดสินใจที่จะสร้าง flatbed pen plotter สำหรับโปรเจกต์จบการศึกษาของผมในเดือนตุลาคม 2016 มีเวลาคิดมากพอแล้ว

แนวคิดเบื้องหลังการสร้างนี้คือการพิมพ์ภาพวาดขนาด A4 ที่แม่นยำด้วยปากกาเกือบทุกชนิด: ดินสอ, ปากกาลูกลื่น, ปากกาเมจิก, ฯลฯ

Flatbed plotter ต้องการ linear actuators ในทั้ง 3 axes ตอนแรกผมคิดถึงสายพาน แต่ปรากฏว่ามันแพงมากสำหรับโปรเจกต์ของผม นั่นเป็นเหตุผลที่ผมคิดว่าไม่มีอะไรที่จะสร้างได้เร็วและเคลื่อนที่ได้แม่นยำเท่า lead screw ที่จะช่วยเน้นย้ำถึงประสิทธิภาพทางเศรษฐกิจของการติดตั้งได้ดีกว่านี้ มันเป็นเพราะการหาสายพานและเฟืองในภูมิภาคของเรานั้นค่อนข้างท้าทาย

ตั้งแต่นั้นมา ผมก็เข้าใจว่า motors และ drivers แบบไหนที่เหมาะสมกว่าที่จะหามาใช้ - 28BYJ-48 และ PCB ที่ใช้ ULN2003A สรุปได้ว่าผมต้องซื้อและทดสอบพวกมัน ผมได้เรียนรู้ว่าเราจำเป็นต้อง ระวังผู้ผลิตที่ไม่น่าเชื่อถือ ด้วย

Power supply

ผมไม่ค่อยชอบ switching power supply (เช่นจาก PC) มากนักเพราะขนาด, น้ำหนัก และอิทธิพลทางแม่เหล็กไฟฟ้า มันดีสำหรับการจ่ายไฟให้กับงานสร้างขนาดใหญ่ แต่ไม่จำเป็นสำหรับ CNC plotter ขนาดเล็กของผม เมื่อสรุปกระแสสูงสุดสำหรับ motors การใช้ portable 1 A power supply ก็เพียงพอแล้ว ดังนั้นผมจึงสามารถเชื่อมต่อเข้ากับ DC jack ของ Arduino ได้อย่างง่ายดาย เยี่ยม!

ทำไมถึงเลือก 28BYJ-48 - 5V?

unipolar stepper motor ตัวนี้สามารถรวมเข้ากับเครื่อง CNC ได้ง่าย - 5V ก็ใช้ได้ดีกับ power supply ทั่วไป

28BYJ-48 ประกอบด้วยสี่ coils ที่ควรควบคุมตามลำดับ A-AB-B-BC-C-CD-D-DA หรือกลับกันสำหรับการหมุนทวนเข็มนาฬิกา โหมดการเคลื่อนที่นี้เรียกว่า half-step เนื่องจาก shaft ถูกทำให้เป็นแม่เหล็กโดยสอง phase หลังจากหนึ่ง, โดยหนึ่งหลังจากสอง และต่อไปเรื่อยๆ

การวิจัยบางส่วนช่วยให้ทราบกระแสสูงสุดสำหรับ coils ที่ความเร็วสูง - 200 mA, เมื่อหยุด - 250 mA สมมติว่า motors ทั้งสี่ตัวหยุดพร้อมกัน - 4 × 250 mA = 1 A. power supply ทั่วไปก็มีประโยชน์เสมอ คุณยังสามารถหยุดจ่ายไฟให้ motors เมื่อคุณไม่ได้เคลื่อนย้ายพวกมัน

motors 28BYJ-48 บางตัวมี reductor ที่ไม่ดี เพราะอย่างที่คุณรู้ - เฟืองเหล่านี้ การหมุน 5 นาทีแสดงให้เห็นว่าผมมี reductor ที่ดีจริง - จำนวน steps ต่อ revolution ที่ความเร็วคงที่ทำให้ได้ 360° พอดี บางทีการทำงานอีกหลายชั่วโมงอาจจะเผยให้เห็นหน้าตาที่แท้จริงของเจ้าตัวนี้

ทำไมถึงเลือก driver PCB ที่ใช้ ULN2003A?

ก่อนอื่น, เกี่ยวกับการดัดแปลงจาก unipolar เป็น bipolar 28BYJ-48 ตามที่บางคนแนะนำ, โดยการตัดการเชื่อมต่อทองแดงตรงกลางที่มาจากสายสีแดงใต้ฝาพลาสติก? มันไม่ใช่ความคิดที่ไม่ดีเลย คุณจะได้ความเร็วที่ดีขึ้น! แต่มันนอกเหนือจากวัตถุประสงค์ของ motor - ท้ายที่สุด, ต้องใช้ H-bridge ICs อย่างน้อย 3 ตัว (เช่น L293D หรือ SN754410NE) จะถูกใช้งาน นอกจากนี้ยังมี driver A4988 ที่ทันสมัยพร้อม H-bridge สำหรับ microstepping ด้วย

boards ข้างต้นไม่ถูกเท่า chips เพราะมีระบบ switching ที่ซับซ้อนที่ใช้ในการขับเคลื่อน 4-wire bipolar motors

ดังนั้น, ผมจึงหลีกเลี่ยงงานเหล่านี้และเลือกที่จะคงทุกอย่าง "ตามเดิม" และนำ PCBs ที่ใช้ ULN2003A มาใช้ พวกมันมีราคา $0.88/ตัว แต่คุณอาจจะเลือก H-bridges ก็ได้ ซึ่งก็เจ๋งดี

การทดสอบ motors

ในตอนนี้ ผมได้ทดลองรัน motors ของผมไปใน 2 ทิศทางพร้อมกัน driver PCB ทุกตัวจะแปลง 4 digital input signals เป็น high-voltage high-current output สำหรับ motor's coils เพื่อควบคุมทั้ง 3 axes เราใช้ 12 digital pins บน controller เป็นที่น่าสนใจว่า Arduino Uno มี pins ทั้งหมด 14 pin แต่ 2 pin ถูกเชื่อมต่อสำหรับการสื่อสารแบบ serial ดังนั้นเราสามารถใช้ได้ 12 pin พอดี

สำหรับ axis X เราจำเป็นต้องเคลื่อนคอลัมน์พร้อมกันในจุดที่ Y เริ่มต้นและในจุดที่ Y สิ้นสุดเพื่อชดเชยแรงกด ดังนั้นจึงมี 2 stepper motors สำหรับ axis X ซึ่งแต่ละตัวมี driver board แยกกัน

PCBs เหล่านี้มี input signals เดียวกัน (จาก digital pins 2, 3, 4, 5) นั่นคือที่ที่ breadboard สามารถช่วยสร้างการเชื่อมต่อแบบ parallel ได้ Universal breadboard ยังมีประโยชน์อย่างมากสำหรับการเชื่อมต่อไปยัง ground และ external voltage

แต่ละ Y และ Z axes ต้องการเพียง stepper motor เดียว Y ใช้ digital pins 6, 7, 8, 9, Z - 10, 11, 12, 13 ลำดับ digital ทั้งหมดถูกสร้างขึ้นโดย AccelStepper library ตัวนี้ค่อนข้างตรงไปตรงมาในการควบคุม stepper motors ใดๆ และหนึ่งในคุณสมบัติที่ดีที่สุดคือสามารถสร้าง signals สำหรับ multiple motors ได้ในเวลาเดียวกัน

การติดตั้ง lead screws

ผมคิดจะใช้ long nut เป็น threaded bushing Shaft ของ motor มีรัศมี 5 mm มันสามารถสอดเข้าไปใน M6 threaded hole และยึดด้วยสกรูเล็กๆ สองตัว (M3) ตาม chords ของมัน ดังนั้นเตรียมพร้อมที่จะทำ threaded holes เหล่านี้ใน nut เมื่อ nut ถูกยึดบน shaft แล้ว เราก็หมุน M6 threaded rod เข้าไปในนั้น

แต่ตรงนี้ผมต้องหยุด เพราะเราต้องพิจารณาการเตรียมการบางอย่าง เช่น การวางตำแหน่งน้ำหนัก (ที่กำลังเคลื่อนที่ไปตาม axis), การทำ railway และตัวยึดอื่นๆ บนฐาน - อันหนึ่งสำหรับ motor, อีกอันสำหรับ end support

โปรเจกต์นี้ถูกยกเลิก

มันตั้งใจจะเป็นแรงบันดาลใจสำหรับผู้เริ่มต้น (เช่นเดียวกับผม) ขอบคุณสำหรับความสนใจ!

EXPANDED TECHNICAL DETAILS

Motion Control Hardware

mini CNC ตัวนี้ใช้ Stepper Motors (เช่น 28BYJ-48 หรือ NEMA17 ยอดนิยม) เพื่อให้การเคลื่อนที่ที่แม่นยำตลอดแกน X และ Y

  • Drivers: ULN2003 หรือ A4988 drivers เชื่อมต่อ motors เข้ากับ Arduino เพื่อให้สามารถ micro-stepping และการเคลื่อนที่แบบ vector ที่ราบรื่น
  • Z-Axis: โดยทั่วไปจะใช้ Servo Motor ขนาดเล็กเพื่อยกและลดปากกา ทำให้การควบคุมการวาดแบบ 3-axis สมบูรณ์

G-Code Translation

plotter มักจะถูกควบคุมผ่าน "Serial Stream" จาก PC

  • Software Protocol: G-code (standard machining language) ถูกสร้างขึ้นจาก vector software เช่น Inkscape Arduino รัน "G-code Interpreter" (เหมือน GRBL เวอร์ชั่น lite) ที่แปลเส้นและโค้งเป็นจำนวน stepper motor step counts และทิศทางที่เฉพาะเจาะจง

ข้อมูล Frontmatter ดั้งเดิม

title: "CNC Flatbed Pen Plotter"
description: "Relatively cheap CNC plotter, that is directly controlled with G-code via own CAM software in PC. This is part of my graduation project."
author: "VINTproYKT"
category: "Motors & Robotics"
tags:
  - "robot"
  - "motor"
  - "smart appliances"
  - "drawing machine"
  - "robotics"
views: 36845
likes: 20
price: 2450
difficulty: "Intermediate"
components:
  - "1x M6 Metalworking Drill Tap"
  - "1x M5 Metal Drill Bit"
  - "1x Angle Grinder"
  - "1x Electric Drill"
  - "40x 20cm Male-to-Female Jumper Wire Cable 2.54mm"
  - "1x USB A-B Cable"
  - "1x 5V 1.2A AC-to-DC Adapter"
  - "1x M3 Metalworking Drill Tap"
  - "1x M2 Metal Drill Bit"
  - "1x Universal breadboard SYB-46"
  - "4x M6 Coupling Nut 10 mm Long"
  - "4x Stepper Motor 28BYJ-48 - 5V"
  - "1x Cut-off Wheel"
  - "1x Mechanical Pencil 0.5 mm"
  - "4x Driver PCB based on ULN2003A"
  - "1x Vernier Caliper"
  - "1x Arduino UNO"
  - "1x M6 Threaded Rod"
  - "20x 20cm Male-to-Male Jumper Wire Cable 2.54mm"
  - "1x Solid (metallic or wooden) flat weight with size of 1\" approx."
tools: []
apps:
  - "1x Arduino IDE"
  - "1x Inkscape"
  - "1x Gcodetools plug-in for Inkscape"
  - "1x AccelStepper library for Arduino"
downloadableFiles: []
documentationLinks: []
passwordHash: "daa8385be12490f977cfb78ef447a71095a8db990d6ac1c4410939250f905b36"
encryptedPayload: "U2FsdGVkX19WspwIs8l5nyXhJr+PEBjs4WoK5LnkSEMUbnXV8WmhsGYrIz0NKCXJFiBJrnmEKePFHmT+aQxZThk78MU6ONktllMrFlY6TbSRCo5do13V5GSrpxwdlmFe57wYE8Bn682x4rBzNmvBfwkJX+N190zw2gzjmcde7XwyJGy7E6SkI36iKj+j5N0Bzotqx7yoeVslcQdrjWuZfg=="
seoDescription: "Affordable CNC Flatbed Pen Plotter controlled via G-code and custom CAM software on PC. A graduation project showcase."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/cnc-flatbed-pen-plotter-944ccd_cover.jpg"
lang: "th"