- Coreless DC Motor สำหรับรถ RC
- วัสดุที่จำเป็น
- จอยสติ๊ก RF สำหรับรถ RC โดยใช้ Arduino
- แผนภาพวงจร Arduino RC Car
- ผลิต PCB สำหรับ Arduino RC Car
- การประกอบ PCB
- ล้อพิมพ์ 3D และตัวยึดมอเตอร์
- การเขียนโปรแกรม Arduino
- การทำงานของ Arduino RC Car
รถ RC นั้นสนุกกับการเล่นเสมอโดยส่วนตัวแล้วฉันเป็นแฟนตัวยงของรถยนต์ที่ควบคุมระยะไกลเหล่านี้ และได้เล่น (ยังคงทำ) กับพวกเขาอย่างกว้างขวาง รถเหล่านี้ส่วนใหญ่ในปัจจุบันให้แรงบิดสูงในการจัดการกับภูมิประเทศที่ขรุขระ แต่มีบางอย่างที่ล้าหลังอยู่ตลอดเวลาคือความเร็ว !!.. ดังนั้นในโครงการนี้เราจะสร้างรถ RCประเภทที่แตกต่างกันโดยสิ้นเชิง โดยใช้ Arduinoเป็นหลัก วัตถุประสงค์ของรถคันนี้คือเพื่อให้ได้ความเร็วสูงสุดดังนั้นฉันจึงตัดสินใจลองใช้ มอเตอร์ DC แบบไม่มีแกนสำหรับรถ RC โดยปกติมอเตอร์เหล่านี้ใช้ในโดรนและได้รับการจัดอันดับที่ 39000 RPM ซึ่งน่าจะเพียงพอที่จะดับกระหายความเร็วของเราได้ รถจะใช้พลังงานจากแบตเตอรี่ลิเธียมขนาดเล็กและสามารถควบคุมได้จากระยะไกลโดยใช้โมดูล RF nRF24L01 หรือหากคุณกำลังมองหาสิ่งที่เรียบง่ายคุณสามารถตรวจสอบโครงการ Simple RF Robot และ Raspberry Pi Bluetooth Car ได้
Coreless DC Motor สำหรับรถ RC
แกนมอเตอร์ DCที่ใช้ในโครงการนี้ก็แสดงให้เห็นในภาพด้านล่าง คุณสามารถค้นหาได้อย่างง่ายดายเนื่องจากพวกเขาจะใช้กันอย่างแพร่หลายในลูกกระจ๊อกมินิเพียงมองหา 8520 Magnetic Micro Coreless Motor แล้วคุณจะพบสิ่งเหล่านี้
ตอนนี้มีข้อเสียบางประการในการใช้มอเตอร์กระแสตรงสำหรับรถ RC สิ่งแรกคือให้แรงบิดเริ่มต้นที่ต่ำมากดังนั้นรถ RC ของเราควรมีน้ำหนักเบาที่สุด นี่คือเหตุผลที่ฉันตัดสินใจสร้างรถทั้งคันบน PCB โดยใช้ส่วนประกอบ SMD และลดขนาดบอร์ดให้มากที่สุด ปัญหาที่สองคือความเร็วสูง 39000 RPM (RPM ของเพลา) นั้นยากที่จะจัดการดังนั้นเราจึงต้องมีวงจรควบคุมความเร็วที่ฝั่ง Arduino ซึ่งเราสร้างขึ้นโดยใช้ MOSFET สิ่งที่สามคือมอเตอร์เหล่านี้จะใช้พลังงานจากแบตเตอรี่ลิเธียมโพลิเมอร์เพียงก้อนเดียวที่มีแรงดันไฟฟ้าระหว่าง 3.6V ถึง 4.2V ดังนั้นเราจึงต้องออกแบบวงจรของเราให้ทำงานที่ 3.3V นี่คือเหตุผลที่เราใช้Arduino Pro mini 3.3Vเปรียบเสมือนสมองของรถ RC ของเรา เมื่อจัดการปัญหาเหล่านี้แล้วเรามาดูวัสดุที่จำเป็นในการสร้างโครงการนี้
วัสดุที่จำเป็น
- 3.3V Arduino Pro Mini
- Arduino นาโน
- NRF24L01 - 2 ชิ้น
- โมดูลจอยสติ๊ก
- SI2302 มอสเฟต
- 1N5819 ไดโอด
- มอเตอร์ไร้แกน BLDC
- AMS1117-3.3V
- แบตเตอรี่ลิเธียมโพลิเมอร์
- ตัวต้านทานตัวเก็บประจุ
- การเชื่อมต่อสายไฟ
จอยสติ๊ก RF สำหรับรถ RC โดยใช้ Arduino
ดังที่กล่าวไว้ก่อนหน้านี้รถ RC จะถูกควบคุมจากระยะไกลโดยใช้จอยสติ๊ก RF จอยสติ๊กนี้จะถูกสร้างขึ้นโดยใช้ Arduino พร้อมกับโมดูล RF nRF24L01 เรายังใช้โมดูลจอยสติ๊กเพื่อควบคุม RC ของเราในทิศทางที่ต้องการ หากคุณยังใหม่กับโมดูลทั้งสองนี้คุณสามารถลองอ่านบทความ Interfacing Arduino กับ nRF24L01 และ Interfacing Joystick กับ Arduino เพื่อเรียนรู้วิธีการทำงานและวิธีการใช้งาน ในการสร้างArduino RF Remote Joystick ของคุณคุณสามารถทำตาม Circuit Diagram ด้านล่าง
วงจรจอยสติ๊ก RF สามารถขับเคลื่อนโดยใช้พอร์ต USB ของบอร์ดนาโน โมดูล nRF24L01 ทำงานบน 3.3V เท่านั้นดังนั้นเราจึงใช้พิน 3.3V บน Arduino ฉันได้สร้างวงจรบนเขียงหั่นขนมแล้วและดูเหมือนว่าด้านล่างนี้คุณสามารถสร้าง PCB สำหรับสิ่งนี้ได้หากต้องการ
รหัส Arduino สำหรับ RF จอยสติ๊กวงจรสวยเรียบง่ายเราจะต้องอ่านค่า X และ Y ค่าจากจอยสติ๊กของเราและส่งไปยังรถ RC ผ่าน nRF24L01 โปรแกรมที่สมบูรณ์สำหรับวงจรนี้สามารถพบได้ที่ด้านล่างของหน้านี้ เราจะไม่เข้าใจคำอธิบายนี้เนื่องจากเราได้พูดคุยกันแล้วในลิงก์โครงการเชื่อมต่อที่แชร์ไว้ด้านบน
แผนภาพวงจร Arduino RC Car
แผนภาพวงจรที่สมบูรณ์สำหรับArduino Car ที่ควบคุมด้วยรีโมทของเราแสดงอยู่ด้านล่าง แผนภาพวงจรยังมีตัวเลือกในการเพิ่มโมดูล IR TCRT5000 สองชุดให้กับรถของเรา สิ่งนี้ถูกวางแผนไว้เพื่อให้รถ RC ของเราทำงานเป็นหุ่นยนต์ตามสายงานเพื่อให้สามารถทำงานได้ด้วยตัวเองโดยไม่ต้องถูกควบคุมจากภายนอก อย่างไรก็ตามเพื่อประโยชน์ของโครงการนี้เราจะไม่มุ่งเน้นไปที่โครงการนี้โปรดติดตามบทช่วยสอนของโครงการอื่นที่เราจะลองสร้าง“ หุ่นยนต์ผู้ติดตามสายที่เร็วที่สุด” ฉันได้รวมวงจรทั้งสองไว้บน PCB เดียวเพื่อความสะดวกในการสร้างคุณสามารถเพิกเฉยต่อเซ็นเซอร์ IR และส่วน Op-amp สำหรับโครงการนี้
รถ RC จะใช้พลังงานจาก Lipo Battery ที่เชื่อมต่อกับขั้ว P1 AMS117-3.3Vใช้ในการควบคุม 3.3V สำหรับ nRF24L01 และโปรมินิบอร์ดของเรา นอกจากนี้เรายังสามารถจ่ายไฟให้บอร์ด Arduino ได้โดยตรงบนขาดิบ แต่ตัวควบคุมแรงดันไฟฟ้า 3.3V บนบอร์ดบน pro mini จะไม่สามารถจ่ายกระแสไฟฟ้าให้กับโมดูล RF ของเราได้เพียงพอดังนั้นเราจึงใช้ตัวควบคุมแรงดันไฟฟ้าภายนอก
ในการขับเคลื่อนมอเตอร์ BLDC สองตัวของเราเราใช้ SI2302 MOSFET สองตัว สิ่งสำคัญคือต้องตรวจสอบให้แน่ใจว่า MOSFETS เหล่านี้สามารถขับเคลื่อนด้วย 3.3V หากคุณไม่พบหมายเลขชิ้นส่วนที่เหมือนกันคุณสามารถค้นหา MOSFET ที่เทียบเท่าโดยมีลักษณะการถ่ายโอนด้านล่าง
มอเตอร์สามารถใช้กระแสไฟฟ้าสูงสุดได้สูงถึง 7A (ทดสอบต่อเนื่องเป็น 3A พร้อมโหลด) ดังนั้นกระแสระบาย MOSFET ควรเป็น 7A ขึ้นไปและควรเปิดอย่างสมบูรณ์ที่ 3.3V ดังที่คุณเห็นที่นี่ MOSFET ที่เราเลือกสามารถให้ 10A ได้แม้ที่ 2.25V ดังนั้นจึงเป็นตัวเลือกที่ดีที่สุด
ผลิต PCB สำหรับ Arduino RC Car
ส่วนที่สนุกในการสร้างโครงการนี้คือการพัฒนา PCB PCB ที่นี่ไม่เพียง แต่สร้างวงจรเท่านั้น แต่ยังทำหน้าที่เป็น Chassis สำหรับรถยนต์ของเราด้วยดังนั้นเราจึงวางแผนให้รถมีรูปทรงพร้อมตัวเลือกในการติดตั้งมอเตอร์ คุณสามารถลองออกแบบ PCB ของคุณเองโดยใช้วงจรด้านบนหรือคุณสามารถใช้การออกแบบ PCB ของฉันซึ่งมีลักษณะดังนี้เมื่อเสร็จสิ้น
อย่างที่คุณเห็นฉันได้ออกแบบ PCB ให้ติดตั้งแบตเตอรี่มอเตอร์และส่วนประกอบอื่น ๆ ได้อย่างง่ายดาย คุณสามารถดาวน์โหลดไฟล์ Gerber สำหรับ PCB นี้ได้จากลิงค์ เมื่อคุณพร้อมกับไฟล์ Gerber แล้วก็ถึงเวลาสร้างมันขึ้นมา เพื่อให้ PCB ของคุณทำได้อย่างง่ายดายโดย PCBGOGO ให้ทำตามขั้นตอนด้านล่าง
ขั้นตอนที่ 1: เข้าสู่ www.pcbgogo.com ลงทะเบียนหากนี่เป็นครั้งแรกของคุณ จากนั้นในแท็บ PCB Prototype ให้ป้อนขนาดของ PCB ของคุณจำนวนเลเยอร์และจำนวน PCB ที่คุณต้องการ PCB ของฉันคือ 80 ซม. × 80 ซม. ดังนั้นแท็บจึงมีลักษณะดังนี้ด้านล่าง
ขั้นตอนที่ 2: ดำเนินการต่อโดยคลิกที่ปุ่ม ใบเสนอราคา ทันที คุณจะเข้าสู่หน้าที่ตั้งค่าพารามิเตอร์เพิ่มเติมบางอย่างหากจำเป็นเช่นวัสดุที่ใช้ระยะห่างแทร็กเป็นต้น แต่ส่วนใหญ่แล้วค่าเริ่มต้นจะใช้ได้ดี สิ่งเดียวที่เราต้องพิจารณาที่นี่คือราคาและเวลา ดังที่คุณเห็นเวลาสร้างเพียง 2-3 วันและมีค่าใช้จ่ายเพียง $ 5 สำหรับ PSB ของเรา จากนั้นคุณสามารถเลือกวิธีการจัดส่งที่ต้องการตามความต้องการของคุณ
ขั้นตอนที่ 3: ขั้นตอนสุดท้ายคือการอัปโหลดไฟล์ Gerber และดำเนินการชำระเงิน เพื่อให้แน่ใจว่ากระบวนการนี้ราบรื่น PCBGOGO ตรวจสอบว่าไฟล์ Gerber ของคุณถูกต้องหรือไม่ก่อนดำเนินการชำระเงิน ด้วยวิธีนี้คุณจะมั่นใจได้ว่า PCB ของคุณเป็นมิตรต่อการผลิตและจะไปถึงคุณตามที่มุ่งมั่น
การประกอบ PCB
หลังจากสั่งซื้อบอร์ดแล้วมันก็มาถึงฉันหลังจากผ่านไปหลายวันแม้ว่าผู้ให้บริการจัดส่งจะอยู่ในกล่องบรรจุอย่างดีที่มีฉลากกำกับอย่างดีและเช่นเคยคุณภาพของ PCB นั้นยอดเยี่ยมมาก ฉันกำลังแบ่งปันภาพบางส่วนของบอร์ดด้านล่างเพื่อให้คุณตัดสิน
ฉันเปิดแกนบัดกรีและเริ่มประกอบบอร์ด เนื่องจากตีนผีแผ่นรองรอยต่อและซิลค์สกรีนมีรูปร่างและขนาดที่เหมาะสมฉันจึงไม่มีปัญหาในการประกอบบอร์ด บอร์ดก็พร้อมใช้งานในเวลาเพียง 10 นาทีนับจากแกะกล่อง
ภาพบางส่วนของบอร์ดหลังจากการบัดกรี แสดงอยู่ด้านล่าง
ล้อพิมพ์ 3D และตัวยึดมอเตอร์
ดังที่คุณอาจสังเกตเห็นในภาพด้านบนเราจำเป็นต้องติดตั้งมอเตอร์และล้อสำหรับหุ่นยนต์เป็น 3 มิติ หากคุณใช้ไฟล์ PCB Gerber ที่แชร์ไว้ด้านบนคุณอาจใช้โมเดล 3 มิติได้เช่นกันโดยดาวน์โหลดจากลิงค์สิ่งนี้
ฉันใช้ Cura เพื่อหั่นโมเดลของฉันและพิมพ์โดยใช้ Tevo Terantuala โดยไม่ต้องรองรับและ 0% infill เพื่อลดน้ำหนัก คุณสามารถปรับเปลี่ยนการตั้งค่าตามความเหมาะสมสำหรับเครื่องพิมพ์ของเรา เนื่องจากมอเตอร์หมุนเร็วมากฉันจึงพบว่ามันยากที่จะออกแบบล้อให้พอดีและแน่นกับเพลามอเตอร์ ดังนั้นฉันจึงตัดสินใจใช้ใบพัดโดรนในวงล้อดังที่คุณเห็นด้านล่าง
ฉันพบว่าสิ่งนี้มีความน่าเชื่อถือและทนทานมากขึ้นอย่างไรก็ตามลองทดสอบกับการออกแบบล้อที่แตกต่างกันและแจ้งให้เราทราบในส่วนความคิดเห็นว่าอะไรเหมาะกับคุณ
การเขียนโปรแกรม Arduino
โปรแกรมที่สมบูรณ์ (ทั้ง Arduino nano และ pro mini) สำหรับโครงการนี้มีอยู่ที่ด้านล่างของหน้านี้ คำอธิบายของโปรแกรม RC ของคุณมีดังต่อไปนี้
เราเริ่มโปรแกรมโดยรวมไฟล์ส่วนหัวที่ต้องการ โปรดทราบว่าโมดูล nRF24l01 ต้องการไลบรารีเพื่อเพิ่มลงใน Arduino IDE ของคุณคุณสามารถดาวน์โหลด RF24 Library จาก Github โดยใช้ลิงก์นี้ นอกเหนือจากนั้นเราได้กำหนดความเร็วต่ำสุดและความเร็วสูงสุดสำหรับหุ่นยนต์ของเราแล้ว ช่วงต่ำสุดและสูงสุดคือ 0 ถึง 1024 ตามลำดับ
#define min_speed 200 #define max_speed 800 #include
จากนั้นภายในฟังก์ชันการตั้งค่าเราจะเริ่มต้นโมดูล nRF24L01 ของเรา เราใช้แถบ 115 แถบเนื่องจากไม่มีความแออัดและได้ตั้งค่าให้โมดูลทำงานโดยใช้พลังงานต่ำคุณยังสามารถเล่นกับการตั้งค่าเหล่านี้ได้
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 แบนด์เหนือสัญญาณ WIFI myRadio.setPALevel (RF24_PA_MIN); // นาทีพลังงานต่ำ rage myRadio.setDataRate (RF24_250KBPS); // ความเร็วขั้นต่ำ}
ถัดไปในฟังก์ชันลูปหลักเราจะดำเนินการเฉพาะฟังก์ชัน ReadData ซึ่งเราจะอ่านค่าที่ส่งจากโมดูลจอยสติ๊กเครื่องส่งสัญญาณของเราอย่างต่อเนื่อง โปรดทราบว่าที่อยู่ไปป์ที่กล่าวถึงในโปรแกรมควรตรงกับที่ระบุในโปรแกรมเครื่องส่ง เราได้พิมพ์ค่าที่เราได้รับเพื่อวัตถุประสงค์ในการดีบักด้วย เมื่ออ่านค่าสำเร็จแล้วเราจะเรียกใช้ฟังก์ชัน Control Car เพื่อควบคุมรถ RC ของเราตามค่าที่ได้รับจาก
โมดูล Rf
เป็นโมฆะ ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // ท่อไหนอ่าน 40 bit Address myRadio.startListening (); // หยุดการส่งสัญญาณและเริ่มการเปิดเผย if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ n ได้รับ:"); Serial.println (data.msg); ได้รับ = data.msg; Control_Car (); }}
ภายในฟังก์ชัน Control Car เราจะควบคุมมอเตอร์ที่เชื่อมต่อกับหมุด PWM โดยใช้ฟังก์ชันเขียนแบบอะนาล็อก ในโปรแกรมเครื่องส่งสัญญาณของเราเราได้แปลงค่าอนาล็อกจากขา A0 และ A1 ของ Nano เป็น 1 ถึง 10, 11 ถึง 20, 21 ถึง 30 และ 31 ถึง 40 เพื่อควบคุมรถไปข้างหน้าถอยหลังซ้ายและขวาตามลำดับ โปรแกรมด้านล่างนี้ใช้เพื่อควบคุมหุ่นยนต์ในทิศทางไปข้างหน้า
ถ้า (ได้รับ> = 1 && ได้รับ <= 10) // ย้ายไปข้างหน้า {int PWM_Value = แผนที่ (ได้รับ 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
ในทำนองเดียวกันเรายังสามารถเขียนฟังก์ชันอีกสามฟังก์ชันสำหรับการควบคุมย้อนกลับซ้ายและขวาดังที่แสดงด้านล่าง
ถ้า (ได้รับ> = 11 && ได้รับ <= 20) // แบ่ง {int PWM_Value = แผนที่ (รับ, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (รับ> = 21 && ได้รับ <= 30) // เลี้ยวซ้าย {int PWM_Value = map (รับ, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (รับ> = 31 && ได้รับ <= 40) // เลี้ยวขวา {int PWM_Value = แผนที่ (รับ, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
การทำงานของ Arduino RC Car
หลังจากคุณกรอกรหัสเสร็จแล้วให้อัปโหลดไปยังโปรมินิบอร์ดของคุณ ถอดแบตเตอรี่และบอร์ดของคุณผ่านโมดูล FTDI เพื่อทำการทดสอบ เปิดรหัสของคุณเปิดแบตเตอรี่อนุกรมและคุณควรได้รับค่าจากโมดูลจอยสติ๊กเครื่องส่งสัญญาณของคุณ เชื่อมต่อแบตเตอรี่ของคุณและมอเตอร์ของคุณควรเริ่มหมุนด้วย
การทำงานทั้งหมดของโครงการสามารถพบได้ในวิดีโอที่เชื่อมโยงที่ด้านล่างของหน้านี้ หากคุณมีคำถามใด ๆ ทิ้งไว้ในส่วนความคิดเห็น คุณยังสามารถใช้ฟอรัมของเราเพื่อรับคำตอบอย่างรวดเร็วสำหรับคำถามทางเทคนิคอื่น ๆ ของคุณ