สารบัญ:
- ขั้นตอนที่ 1: วัสดุ เครื่องมือ อุปกรณ์ที่ใช้ในการดำเนินโครงการ
- ขั้นตอนที่ 2: อุปกรณ์ฮาร์ดแวร์ที่ต้องทำ
- ขั้นตอนที่ 3: การเข้ารหัส Arduino
- ขั้นตอนที่ 4: ซอฟต์แวร์ Visual Studio C#
- ขั้นตอนที่ 5: ผลลัพธ์
วีดีโอ: เครื่องมือวัดอัตราป้อน CNC ทำจากเศษ: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
มีใครเคยต้องการวัดอัตราการป้อนจริงบนเครื่อง CNC บ้างไหม? อาจจะไม่ จนกว่าดอกกัดจะไม่เสียหายหลังจากงาน CNC… แต่เมื่อมันเริ่มแตกหักเป็นประจำ อาจถึงเวลาตรวจสอบแล้ว ในคำแนะนำนี้ คุณสามารถติดตามภารกิจในการกำหนดอัตราการป้อนจริงของเครื่อง CNC มันจะครอบคลุมส่วนวิศวกรรมย้อนกลับของเครื่องพิมพ์ เฟิร์มแวร์ Arduino ซอฟต์แวร์สำหรับพีซี และผลลัพธ์ที่ฉันได้รับจากความช่วยเหลือจากเพื่อนร่วมงาน และขยะก็กลายเป็นสมบัติ
ขั้นตอนที่ 1: วัสดุ เครื่องมือ อุปกรณ์ที่ใช้ในการดำเนินโครงการ
เมื่อฉันเริ่มทำงานกับสิ่งนี้ ฉันนึกถึงรายการสั้น ๆ ของสิ่งที่เราต้องการ:
- กลไกการถอดประกอบแคร่เครื่องพิมพ์
- เครื่องมือช่างเพื่อปรับแต่งสิ่งนั้น
- หัวแร้ง บัดกรี สายไฟ
- มัลติมิเตอร์
- ออสซิลโลสโคปหรือตัววิเคราะห์ลอจิก - ไม่จำเป็นอย่างยิ่ง
- แหล่งจ่ายไฟ
- กล้องจุลทรรศน์
- Arduino นาโน + พินเอาต์
- พีซีที่มี Arduino IDE, Visual Studio 2008 Express + เครื่องมือสร้างแผนภูมิ MS ติดตั้งอยู่
- (MPU6050 - ฉันไม่ได้ใช้สิ่งนี้)
- เต็มใจที่จะค้นหาทุกสิ่งที่คุณไม่รู้วิธีทำ
ในตอนแรก ฉันคิดว่าบอร์ด MPU6050 จะอนุญาตให้ฉันวัดอัตราป้อนงานทั้งสามแกนพร้อมกันได้ การมีมาตรความเร่งอยู่ข้างใน ฉันแน่ใจว่าการสรุปข้อมูลมาตรความเร่งจะให้ค่าที่ต้องการแก่ฉัน นั่นคือความเร็วในแต่ละแกน หลังจากดาวน์โหลดและแก้ไขข้อมูลโค้ด Arduino ที่แสดงข้อมูลดิบบนจอภาพแบบอนุกรม ฉันได้เขียนโปรแกรมพีซีขนาดเล็กใน Visual Studio ที่ประมวลผลข้อมูล และลงจุดบนแผนภูมิเพื่อการตีความที่ง่ายขึ้น ฉันต้องดาวน์โหลดทั้ง Visual Studio C# Express 2008 และเครื่องมือสร้างแผนภูมิสำหรับสิ่งนี้
หลังจากเขียนโค้ดได้สักพักและค้นหาทุกสิ่งที่จำเป็นสำหรับการสื่อสารแบบอนุกรม ฉันก็ลงเอยด้วยค่าที่วางแผนไว้ แต่ไม่ว่าฉันจะทำอะไร มันก็ใช้ไม่ได้ การเคลื่อนไหวเพียงเล็กน้อยแต่กะทันหันจะส่งผลให้เกิดการพุ่งขึ้นอย่างมหาศาล ในขณะที่การเดินทางที่ยาวนานขึ้นจะไม่ปรากฏบนชาร์ตด้วยซ้ำ หลังจากใช้ค้อนทุบ MPU6050 เป็นเวลาสองวัน ในที่สุดฉันก็เลิกใช้และหันไปใช้อย่างอื่น ซึ่งเป็นกลไกป้อนกลับตำแหน่งของเครื่องพิมพ์ที่ถอดประกอบแล้ว
ขั้นตอนที่ 2: อุปกรณ์ฮาร์ดแวร์ที่ต้องทำ
วิศวกรรมย้อนกลับ
แน่นอน กลไกเครื่องพิมพ์ไม่มีหมายเลขชิ้นส่วนที่ฉันสามารถใช้ระบุคุณสมบัติที่แน่นอนได้ จำเป็นต้องมีวิศวกรรมย้อนกลับเล็กน้อยเพื่อไปยังที่ที่เราต้องการ หลังจากตรวจสอบกลไกและอุปกรณ์อิเล็กทรอนิกส์อย่างใกล้ชิดแล้ว ฉันตัดสินใจว่าสิ่งแรกคือการระบุพินของเซ็นเซอร์ออปติคัล สิ่งนี้ต้องทำเพื่อเชื่อมต่อสิ่งทั้งหมดกับ Arduino ฉันถอดชิ้นส่วนพลาสติกสีดำ แยก PCB และตรวจสอบเซ็นเซอร์: มี ROHM RPI-2150 เขียนอยู่ นั่นทำให้ฉันมีความสุข มีความหวังสูงว่าฉันจะพบแผ่นข้อมูล น่าเสียดายที่สิ่งนี้เป็นชิ้นส่วนเก่าหรือแบบกำหนดเอง - ไม่มีแผ่นข้อมูลที่จะพบได้ทุกที่บนเว็บ ซึ่งหมายความว่าฉันต้องจัดการเรื่องนี้เอง: เมื่อรู้ว่าเซ็นเซอร์เหล่านี้มักจะมี LED อินฟราเรดและโฟโต้ทรานซิสเตอร์สองตัวอยู่ข้างใน ฉันจึงคว้ามัลติมิเตอร์ ตั้งค่าเป็นโหมดการวัดไดโอด และเริ่มวัดระหว่างหมุด
พินไฟฟ้ามักจะหาได้ง่าย - โดยจะมีตัวเก็บประจุอยู่ตรงกลาง และมักจะเชื่อมต่อกับแผงวงจร PCB รอยกราวด์มักจะเชื่อมต่อกับแผ่นอิเล็กโทรดหลายแผ่นเพื่อการขจัดเสียงรบกวนที่ดีขึ้น
พินอินพุตและเอาต์พุตนั้นไม่สำคัญนัก เมื่อวัดข้ามไดโอด มิเตอร์จะแสดงแรงดันไปข้างหน้าในทิศทางเดียว และโอเวอร์โหลด (อนันต์) ในอีกทางหนึ่ง ฉันสามารถระบุไดโอดสี่ตัวระหว่างพินได้ ฉันสรุปได้ว่าไดโอดที่สี่ต้องเป็นซีเนอร์หรือไดโอด TVS บางประเภท เนื่องจากอยู่ระหว่างพินกำลังของส่วนประกอบ การระบุตำแหน่งตัวปล่อยอินฟราเรดทำได้ง่าย โดยมีตัวต้านทาน 89R อยู่ในอนุกรมด้วย ฉันเหลือการวัดไดโอดสองตัวบนหมุดอีกสองตัวที่เหลือ ซึ่งต้องเป็นตัวรับสองตัว
หมายเหตุ: เซ็นเซอร์เหล่านี้มีตัวรับสัญญาณสองตัวเพื่อให้สามารถกำหนดทิศทางของการเคลื่อนไหวนอกเหนือจากการกำหนดตำแหน่งโดยการนับพัลส์ รูปคลื่นเอาท์พุตทั้งสองนี้อยู่นอกเฟส 90° ซึ่งใช้เพื่อสร้างพัลส์นับขึ้นหรือนับลง ตามจำนวนพัลส์เหล่านี้ สามารถกำหนดตำแหน่งที่แน่นอนของหัวพิมพ์ได้
เมื่ออิมิตเตอร์และตัวรับสัญญาณสองตัวตั้งอยู่ ฉันบัดกรีสายไฟบนหมุดของพวกมัน ดังนั้นฉันจึงสามารถเชื่อมต่อเซ็นเซอร์กับ Arduino ได้ ก่อนทำอย่างนั้น ฉันจ่าย 3.3V ให้เซ็นเซอร์ ดึงแถบระหว่างเซ็นเซอร์สองสามครั้ง และสังเกตคลื่นสี่เหลี่ยมที่เอาต์พุต ความถี่ของคลื่นสี่เหลี่ยมแปรผันตามความเร็วในการเคลื่อนที่ และฉันก็สรุปได้ว่าตอนนี้ระบบการวัดพร้อมที่จะเชื่อมต่อกับ Arduino แล้ว
การเชื่อมต่อ Arduino
การเชื่อมต่อ 'เซ็นเซอร์' ใหม่นี้ทำได้ง่ายมาก เพียงเชื่อมต่อเอาต์พุตเซ็นเซอร์กับ D2 และ D3 (พินที่สามารถขัดจังหวะได้!) และสายไฟ การเขียนโค้ดก็สามารถเริ่มต้นได้
ขั้นตอนที่ 3: การเข้ารหัส Arduino
รหัส Arduino ค่อนข้างง่าย ฉันกำหนดฟังก์ชันที่ดำเนินการทุกครั้งที่ D2 เห็นขอบที่เพิ่มขึ้น นี่คือฟังก์ชันผ่านพ้นจากโค้ด Arduino ที่ฉันแนบ หากคุณดูสัญญาณของเอ็นโค้ดเดอร์กำลังสอง คุณจะเห็นสิ่งนี้:
- ในทิศทางเดียวเฟส A เป็นลอจิกสูงในทุกเฟส B ขอบที่เพิ่มขึ้น
- ในอีกทิศทางหนึ่ง เฟส A เป็นลอจิกต่ำในทุกเฟส B ขอบที่เพิ่มขึ้น
นี่คือคุณสมบัติของตัวเข้ารหัสที่ฉันใช้ประโยชน์ เนื่องจากฟังก์ชัน elapse ทำงานทุกครั้งที่ D2 มีขอบที่เพิ่มขึ้น ฉันเพิ่งเขียนว่า a จะเพิ่มตัวนับเมื่อ D3 สูง และลดค่าเมื่อ D3 ต่ำ วิธีนี้ได้ผลในครั้งแรก ฉันส่งค่าตัวนับไปที่จอภาพแบบอนุกรม และดูว่ามันเพิ่มขึ้น/ลดลงเมื่อฉันขยับหัวพิมพ์บนแกน
เรื่องสั้นโดยย่อ เฟิร์มแวร์ทำสิ่งต่อไปนี้ในฟังก์ชันลูป:
- ตรวจสอบบัฟเฟอร์การรับข้อมูลแบบอนุกรมสำหรับข้อมูลขาเข้าใด ๆ
- หากมีข้อมูลเข้าให้ตรวจสอบว่าเป็น '1' หรือไม่
- หากเป็น '1' แสดงว่าซอฟต์แวร์พีซีกำลังขอค่าตัวนับ
- ส่งค่าตัวนับไปยังพีซีผ่าน serial
- เริ่มใหม่ได้ที่ 1
ด้วยสิ่งนี้ ลูกบอลอยู่ในคอร์ทของซอฟต์แวร์พีซีในขณะนี้ เข้าเรื่องกันเลย!
ขั้นตอนที่ 4: ซอฟต์แวร์ Visual Studio C#
วัตถุประสงค์ของโปรแกรม VS C# คือการเปลี่ยนภาระการคำนวณจาก Arduino ไปยังพีซี ซอฟต์แวร์นี้รับข้อมูลที่ Arduino มอบให้ คำนวณและแสดงความเร็วในรูปแบบของกราฟ
สิ่งแรกที่ฉันทำคือ google วิธีการสื่อสารแบบอนุกรมใน C # ฉันพบข้อมูลดีๆ มากมายบน MSDN.com พร้อมกับตัวอย่างที่ดี จากนั้นฉันก็ทิ้งสิ่งที่ฉันไม่ต้องการออกไป โดยทั่วไปแล้วทุกอย่างยกเว้นส่วนที่อ่าน ฉันตั้งค่าพอร์ต COM และความเร็วเพื่อให้ตรงกับของ Arduino จากนั้นให้ลองสองสามครั้งแล้วทิ้งทุกอย่างที่มาบนพอร์ตอนุกรมลงในกล่องข้อความหลายบรรทัด
หลังจากอ่านค่าแล้ว ฉันสามารถใช้ฟังก์ชัน readto & split เพื่อแยกการวัดหนึ่งค่าออกจากกัน และจากอักขระตัวคั่น สิ่งเหล่านี้ถูกลงจุดบนตัวควบคุมแผนภูมิ และค่าเริ่มปรากฏบนหน้าจอ
หากคุณไม่เห็นตัวควบคุมแผนภูมิในกล่องเครื่องมือ VS คุณสามารถ google ปัญหาและค้นหาวิธีแก้ไขได้ที่นี่ (ค้นหาคำตอบ #1): ลิงค์
หลักการวัดค่า
ในการค้นหาความเชื่อมโยงระหว่างจำนวนการนับและระยะทางที่ส่วนหัวเคลื่อนที่ เราตั้งค่าการนับเป็นศูนย์ ย้ายหัวเครื่องพิมพ์ 100 มม. ด้วยมือ และสังเกตการเปลี่ยนแปลงของจำนวน ในที่สุดเราก็ได้สัดส่วนดังนี้ 1 จำนวน = 0.17094 มม.
เนื่องจากเราสามารถสอบถามระยะทางและวัดเวลาระหว่างกลุ่มตัวอย่างได้ เราจึงสามารถคำนวณอัตราที่เกิดการเปลี่ยนตำแหน่งได้ - เราคำนวณความเร็วได้!
มีช่วงเวลาของซอฟต์แวร์คร่าวๆ อยู่ที่ 50 มิลลิวินาที ต้องขอบคุณ TMR0 แต่เราสังเกตเห็นว่าการกำหนดเวลาเหล่านี้ไม่แม่นยำเกินไป อันที่จริง หลังจากการวัดความเร็วของซอฟต์แวร์บางอย่าง เราพบว่า 50ms ที่ตั้งเวลาไว้ไม่ใช่ 50ms เลย ซึ่งหมายความว่าไม่ได้เก็บตัวอย่างในช่วงเวลาที่แน่นอน ดังนั้นการคำนวณความเร็วจึงไม่สามารถใช้ฐานเวลาคงที่ได้เช่นกัน เมื่อเราพบปัญหานี้แล้ว จึงเป็นเรื่องง่ายที่จะดำเนินการต่อ: เรานำความแตกต่างของระยะทางและความแตกต่างของเวลา และคำนวณความเร็วเป็น D_distance/D_time (แทนที่จะเป็น D-distance/50ms)
นอกจากนี้ เนื่องจากสมการของเราจะคืนค่าความเร็วเป็นหน่วย mm/50ms เราจึงต้องคูณมันด้วย 1200 เพื่อให้ได้ระยะทางที่ส่วนหัวจะไปในหนึ่งนาทีในหน่วย [mm/minute]
หมายเหตุ: ซอฟต์แวร์ควบคุมเครื่องกัด CNC Mach 3 กำหนดอัตราป้อนงานเป็นหน่วย [mm/minute]
การกรอง
จากจุดนี้ไป การวัดดูเหมือนจะค่อนข้างแม่นยำ แต่มีสัญญาณรบกวนบางอย่างในสัญญาณที่วัดได้ เราสงสัยว่านี่เป็นเพราะความไม่สอดคล้องกันของกลไกในเพลา การมีเพศสัมพันธ์ของเพลา ฯลฯ เลยตัดสินใจกรองออก เพื่อให้ได้ค่าเฉลี่ยที่ดีของค่าที่วัดได้
การปรับแต่งซอฟต์แวร์อย่างละเอียด
เพื่อที่จะเปลี่ยนอัตราสุ่มตัวอย่างและอัตราการกรองระหว่างรันไทม์ มีการเพิ่มแถบเลื่อน - หนึ่งแถบสำหรับแต่ละอัน นอกจากนี้ยังมีการแนะนำความสามารถในการซ่อนแผนการอีกด้วย
ขั้นตอนที่ 5: ผลลัพธ์
หลังจากที่ชิ้นส่วนฮาร์ดแวร์และซอฟต์แวร์พร้อมแล้ว เราก็ทำการวัดสามชุดด้วย mach 3 + ซอฟต์แวร์ของฉัน คุณสามารถดูผลลัพธ์ได้จากรูปภาพที่แนบมา การทดลองต่อมามีความแม่นยำที่ดีขึ้น ทั้งตัวกรองและอัตราตัวอย่างเพิ่มขึ้น แผนภาพแสดงความเร็วที่วัดได้โดยใช้สีแดงทึบ และค่าเฉลี่ยเป็นสีน้ำเงินที่มีเส้นประ
ดังที่กล่าวไปแล้ว ดูเหมือนว่า Mach 3 จะจัดการกับการตั้งค่าความเร็วเหล่านี้ได้ค่อนข้างแม่นยำ แต่ตอนนี้เรารู้แล้ว:)
ฉันหวังว่าคุณจะชอบคำแนะนำสั้นๆ เกี่ยวกับวิศวกรรมย้อนกลับและเปลี่ยนน้ำให้เป็นไวน์!
ไชโย!
แนะนำ:
Dobladora CNC: 6 ขั้นตอน
CNC Dobladora: El objetivo principal de este proyecto es el hacer una maquina dobladora de alambre CNC, la cual capaz de doblar alambre de 0,8 / 0,9 / 1 mm en CUALQUIER forma 2D. la construcción de esta maquina es sencilla de realizar, con piezas que no dificultan
พล็อตเตอร์ขวด CNC แบบหมุน: 9 ขั้นตอน (พร้อมรูปภาพ)
พลอตเตอร์ขวด CNC แบบหมุน: ฉันหยิบลูกกลิ้งขึ้นมา ซึ่งอาจใช้ในเครื่องพิมพ์ ฉันเกิดความคิดที่จะเปลี่ยนให้เป็นแกนหมุนของเครื่องพล็อตเตอร์ขวด CNC วันนี้ ฉันต้องการแบ่งปันวิธีการสร้างเครื่องพลอตเตอร์ขวด CNC จากลูกกลิ้งเหล่านี้และเศษอื่นๆ เพื่อ d
รถลากจูงแบบสามแกน (cnc) - PLC: 4 ขั้นตอน
Three Axial Tow Truck (cnc) - PLC: สวัสดีวิทยานิพนธ์ฉบับปัจจุบันเกี่ยวข้องกับการเขียนโปรแกรมของ PLC-PS3 ของ KLOKNER MOELLER โดยมีวัตถุประสงค์ทั้งสองเพื่อการใช้งานของแบบจำลองทางกล ที่เรียกว่าเครนขนส่งแบบสามแกน และในกรณีของเรา การขนส่งโหลดโลหะ มันคือเ
ควบคุม Grbl CNC ผ่าน Wifi: 5 ขั้นตอน
ควบคุม Grbl CNC ผ่าน Wifi: ในบทช่วยสอนนี้ ฉันจะแนะนำวิธีเปิดใช้งานการควบคุม GRBL ผ่าน WIFI คุณสามารถใช้วิธีนี้กับผู้ส่งใดก็ได้ รวมถึง lasergrbl และ Universal Gcode Sender (UGS) กล่าวโดยย่อ เราจะใช้ผลงานของ arkypita และซอฟต์แวร์อื่นๆ เพื่อสร้างวิ
CNC Servo Stepper (ความสามารถ GRBL): 4 ขั้นตอน
CNC Servo Stepper (GRBL Capable): โปรเจ็กต์นี้เป็นตัวควบคุมมอเตอร์ที่ค่อนข้างง่าย ซึ่งช่วยให้สามารถใช้มอเตอร์ DC ราคาประหยัดที่มี GRBL เพื่อใช้งานลีดสกรูของเครื่อง CNC ได้ ดูวิดีโอด้านบนเพื่อสาธิตคอนโทรลเลอร์นี้กับเครื่อง CNC ที่สร้างเองที่บ้านของฉัน