กลับไปหน้ารวมไฟล์
rc-car-arduino-based-3d-resin-printed-rc_car_rp-749dca.md

RC_Car_RP (Rack and Pinion) รถบังคับ Arduino พิมพ์ 3D ด้วยเรซิ่น

แค่ไม่กี่สัปดาห์ก็ทำได้เยอะเลย ถ้ามีเรซิ่นและความมุ่งมั่นพอกัน รุ่นแรกของรถบังคับ Arduino พิมพ์ 3D ของพี่เสร็จสมบูรณ์แล้ว โปรเจคนี้เริ่มต้นจากที่พี่ไป แฮ็กรถบังคับพังๆ ของลูก ตอนนี้พี่สร้าง RC_Car_RP (Rack And Pinion) ขึ้นมาแล้ว ไฟล์ทั้งหมดของโปรเจคนี้หาได้จาก Github รายการวัสดุและวิดีโอประกอบกำลังจะตามมา

#define projectObjectives;

  • ขนาดเล็กกระทัดรัด – เป้าหมายคือต้องพิมพ์รถคันนี้บนแท่นพิมพ์ Elegoo Mars เรซิ่นรุ่นแรกได้ โดยใช้ซัพพอร์ตน้อยที่สุด (หรือไม่ใช้เลย)
  • ดีไซน์เรียบง่าย – พี่พยายามลดจำนวนชิ้นส่วนให้เหลือน้อยที่สุด
  • ชิ้นส่วนและอิเล็กทรอนิกส์ (Arduino) ปรับใช้ได้ง่าย – โปรโตไทป์แรกของพี่วางบนโปรโตบอร์ด 5x7cm แผ่นเดียว รุ่นต่อไป RC_Car_SS จะมีพวงมาลัยแบบเซอร์โว
  • ประกอบง่าย – เพื่อให้เดินสายง่ายและลดขนาดลงอีก พี่เลยสร้าง PCB สำหรับ RC_Car_RP ขึ้นมา

#define projectConstraints;

  • ความกว้างตัวถังรถต้องไม่น้อยกว่า 55 มม. (เพื่อให้ใส่ Seeeduino PCB, โปรโตบอร์ด 5×7, ชุด Double Feather และ Nano breakout ได้)
  • ความยาวตัวถังรถต้องไม่น้อยกว่า 110 มม. (ให้มีที่ว่างสำหรับมอเตอร์พวงมาลัย, มอเตอร์ขับเคลื่อนแบบ 130 และพื้นที่เพียงพอสำหรับบอร์ดทั้งหมดที่ว่ามา)
  • ชิ้นส่วนทุกชิ้นต้องพิมพ์แบนๆ แล้ววางในพื้นที่แท่นพิมพ์ Elegoo Mars เรซิ่นรุ่นเดิมได้ (สูงสุด = 68 มม. x 120 มม.) หมายเหตุ: ความสูง Z สูงสุดของ Mars คือ 150 มม. แต่เราอยากมีตัวเลือกที่จะพิมพ์ให้แบนที่สุด และจะเลือกทิศทางนั้นเพื่อประหยัดวัสดุ เวลา และลดความล้มเหลวในการพิมพ์ (แม้ว่าพี่จะยอมรับว่าเรากำลังพยายามพิมพ์ด้วยซัพพอร์ตที่มุมประมาณ 20 ถึง 30 องศา ซึ่งจะช่วยลดการบิดงอ)
ดีไซน์แผ่นฐานล่างของ RC_Car_RP (Rack and Pinion)

theController();

รถคันนี้รับสัญญาณจากคอนโทรลเลอร์ ซึ่งพี่ได้รวมดีไซน์ไว้ในโปรเจคบน Github แล้ว และหวังว่าจะได้เขียนโพสต์เกี่ยวกับมันโดยเฉพาะในอนาคต

มีจอยสติ๊กสองอัน ข้อมูลจากจอยสติ๊กสามารถประมวลผลได้หลายวิธี ในเวอร์ชันนี้ แกน Y ของจอยสติ๊กซ้ายควบคุมเดินหน้า/ถอยหลัง และแกน X ของจอยสติ๊กขวาควบคุมซ้าย/ขวา ปุ่มกดบนจอยสติ๊กขวาใช้ควบคุมความเร็วสูงสุดของมอเตอร์ ซึ่งมีประโยชน์เวลาวิ่งในร่ม vs กลางแจ้ง หรือแค่ไม่อยากให้เกียร์พังหรือชนกำแพงเพราะแรงเกินไป ขึ้นอยู่กับชุดจ่ายไฟที่เลือก

theElectronics();

ใช้ Seeeduino XIAO ไดรเวอร์มอเตอร์ TB6612FNG ใช้พิน 0 ถึง 5 บน XIAO ส่วนโมดูล Wireless nRF24L01 SPI อยู่บนพิน 8 ถึง 10 และ CE / CSN คือพิน 6 กับ 7 บน XIAO

RC_Car_RP (Rack and Pinion) รถบังคับ Arduino พิมพ์ 3D

เวอร์ชันนี้ขับเคลื่อนด้วยมอเตอร์ DC แบบฮ็อบบี้มาตรฐาน 130 สองตัว ตัวหนึ่งสำหรับขับเคลื่อน อีกตัวสำหรับพวงมาลัย มอเตอร์ DC สำหรับพวงมาลัยใช้ระบบแร็คแอนด์พินเนียนในเวอร์ชันแรกนี้ ซึ่งทำให้ใช้ชิ้นส่วนฮ็อบบี้ที่หาง่ายและถูกที่สุดได้

ชุดจ่ายไฟคือลิโพ 7.4V ความจุ 300 mAh ซึ่งทำให้แบตเตอรี่วางบนแผ่นล่างพร้อมกับวงจรสเตปดาวน์ได้ แบตเตอรี่ต่อผ่านสวิตช์เปิดปิดไปยัง LM2596 เพื่อลดแรงดันทั้งหมดเหลือ 5V แรงดัน 5V นี้จะถูกแยกสายไปยัง Seeeduino และไดรเวอร์มอเตอร์

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

ดีไซน์ PCB ของพี่สำหรับ RC_Car_RP (ระบบพวงมาลัยแร็คแอนด์พีเนียน)

rackPinionSteering();

ระบบพวงมาลัยแบบแร็คแอนด์พีเนียนนี่มันหินอยู่นะน้อง ทำยากหลายสาเหตุ แต่หลังจากทำโปรโตไทป์มาเป็นสิบๆรอบ พี่ก็ทำให้มันทำงานได้แล้วล่ะ ระบบนี้ใช้แกนโลหะเส้นผ่านศูนย์กลาง 2 มม. (แบบมาตรฐานที่ขายกัน) 2 เส้นกับสปริง 2 ตัว ฟันเฟืองแร็คจะเลื่อนไปมาตามแกนทั้งสอง ส่วนสปริงจะดันแร็คจากทั้งสองฝั่งเพื่อดันให้มันกลับมาอยู่ตรงกลางเสมอ

ดีไซน์ระบบพวงมาลัยแร็คแอนด์พีเนียน

ระบบเกียร์ขับล้อหลังใช้โมดูล 0.5 เริ่มจากเฟืองขับมาตรฐาน 8 ฟันที่มากับมอเตอร์ 130 ทั่วไป เฟืองกลางทำหน้าที่ลดรอบจาก 12 ฟันเป็น 26 ฟัน และเฟืองบนเพลาล้อหลังมี 28 ฟัน เฟืองกลางนี่พี่ใช้พินสั้น 2 มม. มาตรฐานค้ำยันไว้

โปรโตไทป์รุ่นแรกๆ ของระบบขับเคลื่อนล้อหลัง

3DPrinting();

พี่ใช้เครื่องปริ้นเรซิ่น Elegoo Mars รุ่นดั้งเดิมปริ้นชิ้นส่วนรถทั้งหมดเลยนะ อย่าไปเชื่อที่เขาว่ากันล่ะว่าเรซิ่นทำของแข็งแรงไม่ได้ พี่พิสูจน์แล้วว่าทำได้ แถมทำชิ้นส่วนรถได้ด้วย! สำหรับชิ้นส่วนที่ไม่ค่อยรับแรงมาก เช่น สปอยเลอร์ พี่ก็ใช้เรซิ่นมาตรฐานทั่วไป

ส่วนชิ้นที่ต้องแข็งแรงจริงๆ โดยเฉพาะพวกเฟือง พี่มีสองวิธีที่ใช้ได้ผล วิธีแรกคือใช้เรซิ่นแบบ ABS-like ซึ่งก็ใช้ได้ดีอยู่นะ อีกวิธีคือผสมเรซิ่นเพิ่มความแข็งแรงหรือแบบยืดหยุ่นลงไปในเรซิ่นมาตรฐาน พี่พบว่าผสม Sirayatech Tenacious 30% กับ Standard Shine Tough Grey 70% ให้ผลลัพธ์ดีมาก และพี่ชอบวิธีนี้มากกว่า สำหรับการตั้งค่า exposure และ support นั้นใช้ค่าปกติได้เลยถ้าผสม Tenacious ไม่เกิน 30%

สุดท้าย... ยางรถ! พี่ใช้เรซิ่น Wanhao แบบ Rubber-like ข้อดีคือมันสีดำอยู่แล้ว จริงๆ แล้วมันไม่ได้ "เหมือนยาง" ในแง่ความยืดหยุ่นมากนักนะ มันค่อนข้างแข็ง ถ้าพิมพ์หนา แต่ก็ยืดหยุ่นพอที่จะพิมพ์แยกชิ้นแล้วสวมเข้ากับล้อได้ สิ่งที่เจ๋งคือมันให้พื้นผิวสัมผัสเหมือนยางจริงๆ ทำให้มีแรงยึดเกาะและใช้งานได้ดีในที่สุด

เรซิ่น Wanhao นี่พี่ลองผิดลองถูกถึง 4 รอบถึงจะพิมพ์สำเร็จ เพราะไม่มีข้อมูลอ้างอิง สรุปที่ใช้ได้คือตั้งค่า exposure สำหรับชั้นฐาน (bottom layers) เป็น 300% ของค่าปกติ และชั้นอื่นๆ เป็น 400% ของค่าปกติ ส่วนค่าอื่นๆ ที่พี่ใช้: Lift distance 7 มม., Bottom lift speed 25 มม./นาที, Lifting speed 40 มม./นาที, Retract speed 40 มม./นาที

RC_Car_V1 (Seeed) โชว์ยางรถที่พิมพ์จากเรซิ่น Wanhao rubber-like

เรซิ่นแบบ rubber-like เนี่ยต้องใช้ support ที่แข็งแรงมาก พี่ต้องเพิ่มเส้นผ่านศูนย์กลางของ support ขนาดกลางเป็นสองเท่า เพิ่มความลึกของจุดสัมผัส และต้องเพิ่ม support ขนาดใหญ่ทั่วทั้งโมเดล พี่คิดว่าถ้าตั้ง support ดีๆ น่าจะลดค่า exposure ลงได้บ้าง แต่โดยรวมการพิมพ์ด้วยเรซิ่นแบบนี้ใช้เวลานานมากเลยน้อง ใจเย็นๆ

Micro-Manufacturing: รถ RC พิมพ์จากเรซิ่น

รถ Arduino ทั่วไปชอบใช้โครงシャassis อะคริลิคบางๆ ที่ซื้อออนไลน์กันใช่ไหมล่ะ แต่เจ้า RC_Car_RP ตัวนี้พี่ยกระดับงานช่างกลด้วยการพึ่งพา SLA Resin 3D Printing ซะเลย เครื่องพิมพ์เรซิ่นใช้แสง UV จับตัวโฟโทพอลิเมอร์เหลว ทำให้เราสร้างชิ้นส่วนกลไกซับซ้อนระดับไมครอนได้ เช่น ระบบส่งกำลังและคันชัก ที่เครื่องพิมพ์ FDM แบบธรรมดาทำไม่ได้

เกียร์และพวงมาลัยแบบ Custom

เพราะเราพิมพ์ชิ้นส่วนด้วยเรซิ่นความละเอียดสูง เราเลยไม่ต้องพึ่งพากล่องเกียร์สำเร็จรูปทั่วไปอีกต่อไป

  1. เพลาขับ (Drive Axle): เราสามารถพิมพ์ชุดเฟืองท้าย (differential) และเฟืองพีเนียนสเกล 1:12 ได้พอดีเป๊ะ แล้วเอาไปจับคู่กับมอเตอร์เกียร์ DC ความเร็วสูงรุ่น N20 ได้เลย
  2. ระบบบังคับเลี้ยว (Steering Geometry): รถ Arduino ทั่วไปมักใช้วิธี "ถังหมุน" (เลื่อนไปมา) แต่โปรเจคนี้ใช้ระบบแร็คแอนด์พินเนียนของจริง เหมือนในรูปด้านบน อนาคตอาจจะอัพเกรดเป็น ระบบบังคับเลี้ยวแบบ Ackermann โดยพิมพ์ชิ้นส่วนข้อต่อและคันบังคับเลี้ยวเอง ให้เซอร์โวตัวจิ๋วไปดันระบบเชื่อมโยง เพื่อให้ล้อหน้าหมุนด้วยมุมที่คำนวณได้แม่นยำ จะได้ไม่ลากยางเวลาเข้าโค้งนะตัวนี้!

ระบบควบคุมวิทยุคู่ (Dual-Radio Control System - nRF24L01)

อย่าใช้บลูทูธกับรถ RC สปีดสูงเชียวนะ น้อง! เรนจ์ห่วยมาก โปรเจคนี้ใช้ รีโมทส่งสัญญาณ และ ตัวรับสัญญาณ ที่ฝังอยู่ในตัวถังเรซิ่น สร้างขึ้นจากโมดูล nRF24L01+ 2.4GHz ทั้งคู่เลย

  • ตัวส่งจะอ่านค่าจากสติ๊กแอนะล็อก บีบอัดข้อมูลเป็น struct แล้วส่งออกไป
  • ตัวรับในรถจะจับข้อมูลนั้นมา แปลงค่าแกน Y เป็น PWM ความเร็วให้มอเตอร์ขับเคลื่อน ส่วนแกน X ก็ไปควบคุมมอเตอร์บังคับเลี้ยว

ขั้นตอนการสร้างและฮาร์ดแวร์

  • เครื่องพิมพ์ 3D แบบเรซิ่น SLA (เช่น Elegoo Mars หรือ Anycubic Photon) พร้อมเรซิ่นเกรดวิศวะ
  • Arduino Nano (2 ตัว) สำหรับฝั่งส่งและฝั่งรับ (หรือใช้ Seeeduino XIAO แบบที่พี่ใช้ในบิลด์นี้)
  • โมดูลวิทยุ nRF24L01+ (2 ตัว)
  • มอเตอร์เกียร์เมทัลจิ๋วความเร็วสูง N20 หรือมอเตอร์สไตล์ 130 ทั่วไป คู่กับ ไดรเวอร์ L298N/TB6612FNG
  • ไมโครเซอร์โว (SG90) สำหรับเวอร์ชันที่ใช้เซอร์โวบังคับเลี้ยวในอนาคต

kidsLikeIt();

หลังจากที่พี่ออกแบบและสร้างรถ (รวมถึงคอนโทรลเลอร์) ทั้งคันขึ้นมาเอง ความรู้สึกที่ดีที่สุดอย่างหนึ่งก็คือตอนที่เด็กๆ อยากจะมาเล่นกับเจ้าสิ่งนี้จริงๆ นะ วันแรกที่ทดลองขับนี่ฝนตกเลย แต่โหมดขับในร่มก็เวิร์คดีไม่เบา

เด็กๆ กำลังเล่นกับ RC_Car_V1 (Seeed)

futurePlans();

หวังว่าพี่จะได้มีเวลาออกแบบรถใหม่ที่ใช้เซอร์โวบังคับเลี้ยว น่าจะทำให้ตัวถังเล็กลงอีกจนใส่แบต AAA ได้ และอาจจะเปลี่ยนไปใช้ระบบ Adafruit Feather

พี่จะเพิ่มรายการวัสดุและวิดีโอประกอบการสร้าง อย่าลืมติดตามอัพเดทได้ที่ Github นะ

View all posts by Devin Namaky

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

apps:
  - "1x Arduino IDE"
author: "devinnamaky"
category: "Motors & Robotics"
components:
  - "3x 2 mm rods"
  - "1x 3D Printer (generic)"
  - "2x DC Motor, Miniature"
  - "2x Rocker Switch, Non Illuminated"
  - "1x SparkFun Motor Driver - Dual TB6612FNG (with Headers)"
  - "2x 1 inch spring"
  - "1x Arduino Nano R3"
  - "2x nRF24 Module (Generic)"
  - "1x Soldering iron (generic)"
  - "2x Analog joystick (Generic)"
  - "1x LM2596 Voltage regulator"
  - "1x Seeeduino XIAO"
  - "1x 7.4 V Lipo Battery, 300 mAh"
  - "1x 9V battery (generic)"
description: "นี่คือเวอร์ชั่นแรกของรถบังคับที่รุ่นพี่ออกแบบเอง ใช้ Arduino Nano กับ Seeeduino XIAO ควบคุม ตัวถังพิมพ์จากเรซิน 3D ตั้งชื่อว่า RC_Car_RP รับรองว่าตึงๆ วัยรุ่นแน่นอน!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://github.com/DrNebin/RC_Car"
encryptedPayload: "U2FsdGVkX1/XU+5jlEomZiNhfvM+bTz7uewbs+Hd53Dk4jWzq9MxkyhkxbEfH74FqhDHtYX1mMCsk2VnHMZKscw80vMM0/SlCsPP2S0b9Ko="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/rc-car-arduino-based-3d-resin-printed-rc_car_rp-749dca_cover.jpg"
lang: "en"
likes: 24
passwordHash: "c4a80fd596814b90c47f7d3af954f6b63cdc30012e3ee5923e51c9fb75d0c7ae"
price: 1499
seoDescription: "Version 1 of RC_Car_RP: An Arduino-based RC Car with 3D Resin Printed parts, using Arduino Nano and Seeeduino XIAO."
tags:
  - "car"
  - "rc car"
title: "รถบังคับสุดเท่! (Arduino + 3D Resin Printed) งานง่ายแต่หล่อ"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/4951rHHWjvs"
views: 23167