สารบัญ:
วีดีโอ: UCL - Embedded - Pick and Place: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
คำแนะนำนี้จะไปถึงวิธีการเลือกและวางหน่วย 2D และวิธีการเขียนโค้ด
ขั้นตอนที่ 1: คอมพิวเตอร์
1x Adrio Mega
สเต็ปเปอร์มอเตอร์ 2x (เราใช้ JLB Stepper Motor รุ่น 17H1352-P4130)
2x Stepper เครื่องยนต์ โมดูลบอร์ดควบคุมไดรฟ์ L298N สะพาน Dual H DC สำหรับ Arduino
1x เซอร์โวมอเตอร์ (เราไม่มีจุดนี้)
ตัวต้านทาน 3x 10k ohm
2x ล้อไนล่อน
แหล่งจ่ายไฟ 1x12v
ไม้สำหรับทำโครง
สายไฟ
ขั้นตอนที่ 2: การก่อสร้าง
สิ่งแรกระหว่างหน้าการก่อสร้างคือ deside ขนาดและรูปร่างของการเลือกและวาง mashine
ขั้นแรก เราสร้างไม้รูปทรงพื้นฐาน เราสร้างกรอบหยิบและวางขนาด 50 ซม. x 25 ซม. x 30 ซม. ทุกอย่างยกเว้นโครง สะพาน และแขนยก ผลิตโดยเครื่องตัดเลเซอร์
นี่คือลิงค์ไปยังไฟล์ทั้งหมด
แล้วเราก็อยากได้ระบบลูกรอก ที่นี่เราไปกับแหวน 50 มม. สองอันและวงแหวน 20 มม. หนึ่งอัน จากนั้นเราใส่พาราคอร์ดไว้ข้างๆ 20 มม. ด้วยกาว หลังจากนั้นเราบีบวงแหวน 50 มม. สองอันที่ด้านใดด้านหนึ่งของวงแหวน 20 มม.
20mm
50mm
จากนั้นเราต้องออกแบบสไลด์ไกด์ให้เข้ากับแขน ที่นี่เราทำสองด้านและแผ่นหลังหนึ่งแผ่น
แล้วติดกาวเป็นรูปตัวยู จากนั้นเราก็เชื่อมมันเข้ากับสะพาน
แผ่นข้าง
แผ่นหลัง
ตอนนี้ชิ้นส่วนสำหรับการขยับแขนขึ้นและลงเสร็จเรียบร้อยแล้ว เราจำเป็นต้องย้ายมันไปมา
เมื่อออกแบบสิ่งนี้ เราต้องแน่ใจว่าฟันเรียงชิดกัน ดังนั้นทั้งสองรายการจึงถูกสร้างขึ้นในสถานที่โครงการเดียวกัน
ขั้นตอนที่ 3: รหัส
การเขียนโปรแกรมค่อนข้างง่ายและประกอบด้วย 5 ส่วน
- การรวมไลบรารีและการตั้งค่าตัวแปรสำหรับการใช้งานภายในและ IO
- โหลดอินพุตไปที่Ram
- Sekvens เลือกการเคลื่อนไหวที่คุณต้องการ
- การควบคุมตำแหน่งสเต็ปเปอร์/เซอร์โว
- ผลงานสู่โลก
เราจะอธิบายอย่างถี่ถ้วนทุกส่วน แต่จำไว้ว่านี่เป็นเพียงหนึ่งในวิธีแก้ปัญหามากมาย
1: ก่อนการตั้งค่าเป็นโมฆะ เราได้รวมห้องสมุด 2 แห่งที่เราต้องการสำหรับโครงการนี้ สเต็ปเปอร์และเซอร์โว การใช้ Libraries ที่รวมไว้ ช่วยให้คุณไม่ต้องเรียนรู้ทุกรายละเอียดเกี่ยวกับสเต็ปเปอร์และเซอร์โวมอเตอร์
#รวม
#รวม
const int stepsPerRevolution = 200; // เปลี่ยนสิ่งนี้เพื่อให้พอดีกับจำนวนขั้นตอนต่อรอบสำหรับมอเตอร์ของคุณ
// เริ่มต้นไลบรารี stepper บนพิน 8 ถึง 11:
Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); เซอร์โวกริปเปอร์; // สร้างวัตถุเซอร์โวเพื่อควบคุมเซอร์โว
กริปเปอร์จำเป็นต้องแนบในการตั้งค่าโมฆะ
การตั้งค่าเป็นโมฆะ () {// เริ่มต้นพอร์ตอนุกรม: Serial.begin (9600); กริปเปอร์.แนบ(9); // ติดเซอร์โวบนพิน 9 กับวัตถุเซอร์โว
ส่วนที่เหลือของส่วนนี้เป็นเพียงการตั้งค่าของตัวแปรและค่าคงที่
2: สิ่งแรกใน Void Loop คือการโหลดอินพุตที่ใช้ทั้งหมดไปยังตัวแปร สิ่งนี้ทำด้วยเหตุผลสองประการ เหตุผลแรกคือการจำกัดงานหนักของ CPU ในการอ่านอินพุต เหตุผลที่สอง ซึ่งสำคัญที่สุด และเพื่อให้แน่ใจว่าหากใช้อินพุตมากกว่าหนึ่งครั้ง จะมีค่าเท่ากันตลอดการสแกนทั้งหมด ทำให้การเขียนโค้ดที่สอดคล้องกันง่ายขึ้น นี่เป็นวิธีปฏิบัติทั่วไปในการเขียนโปรแกรม PLC แต่ก็ใช้ได้กับโปรแกรมฝังตัวด้วย
//----------------------------------- อินพุตไปยัง RAM -------------- Xend = digitalRead (34); เยน = digitalRead(35); Ena = digitalRead (36);
3: ในส่วนของโค้ด sekvens เราเพิ่งสร้าง sekvens ด้วยคำสั่ง Switch และ case ส่วน sekvens ให้สัญญาณไปยังส่วนควบคุมตำแหน่งของโค้ด ส่วนนี้สามารถปรับแต่งให้เข้ากับแอปพลิเคชันของคุณหรือใช้งานตามที่เป็นอยู่ได้อย่างง่ายดาย
4: ตำแหน่งของเซอร์โวถูกควบคุมโดยเซอร์โวเสรี และคำสั่ง if สำหรับกริปเปอร์เปิดและปิด
Stepper Control นั้นค่อนข้างยุ่งยากกว่าเล็กน้อย ฟังก์ชันเปรียบเทียบ Setpoint (ตำแหน่งที่คุณต้องการให้แขนไป) และตำแหน่งปัจจุบัน ถ้าตำแหน่งปัจจุบันเป็นคนรัก ฟังก์ชันจะเพิ่มไปยังตำแหน่งและขอให้ฟังก์ชัน Stepper liberi ดำเนินการขั้นตอนในเชิงบวก ตรงกันข้ามกับตำแหน่ง a ถึงสูง หากตำแหน่งเหมือนกับ Setpoint บิต XinPos จะถูกจัดให้อยู่ในระดับสูง และสเต็ปเปอร์จะหยุด
// SP คอนโทรล X
ถ้า (XstepCountXsp ไม่ใช่ Home){
XstepCount=XstepCount-1; Xstep=-1; XinPos = 0; } ถ้า (XstepCount==Xsp){ Xstep=0; XinPos = 1; }
5: เพิ่มส่วนท้ายของรหัสที่ควบคุมมอเตอร์ด้วยฟังก์ชัน liberi
//-------------------------- ผลลัพธ์---------------------- // ขั้นตอนหนึ่งขั้นตอน: XStepper.step(Xstep); // ขั้นตอนหนึ่งขั้นตอน: YStepper.step(Ystep);
Griper.write (GripSp);
ขั้นตอนที่ 4: ทำโดย
casp6099 - Casper Hartung Christensen
rasm616d - ราสมุส แฮนเซน
แนะนำ:
Contact Less and Corrosion Free Water Level Indicator and Motor Control.: 5 ขั้นตอน
Contact Less and Corrosion Free Water Level Indicator and Motor Control.: HI ในคำแนะนำนี้เราจะดูวิธีรับสถานะของถังเก็บน้ำตามระดับน้ำ (สูง, ปานกลาง, ต่ำ) ของถังเหนือศีรษะโดยใช้ไฟ LED สีต่างกันสามดวงใน วิธีแบบไม่สัมผัสด้วยความช่วยเหลือของเซ็นเซอร์อัลตราโซนิกและบอร์ด Arduino unoP
Print-in-Place Robotic Gripper: 4 ขั้นตอน (พร้อมรูปภาพ)
Print-in-Place Robotic Gripper: Robotics เป็นสาขาที่น่าสนใจ และเราโชคดีที่ได้อยู่ในช่วงเวลาที่ชุมชนหุ่นยนต์ DIY กำลังผลิตงานและโครงการที่น่าทึ่ง แม้ว่าโครงการเหล่านี้จะมีความก้าวหน้าและสร้างสรรค์อย่างน่าประหลาดใจ แต่ฉันก็พยายามสร้างหุ่นยนต์ให้เ
UCL - IIoT - Indoor-climate 4.0: 8 ขั้นตอน
UCL - IIoT - Indoor-climate 4.0: หลังจากอ่านและทำงานกับคำแนะนำนี้ คุณจะมีสภาพอากาศในร่มอัตโนมัติ ซึ่งคุณสามารถสังเกตได้ทางออนไลน์ด้วยความช่วยเหลือของ Node-red ในกรณีของเรา เราได้พัฒนาแนวคิดนี้และนำเสนอในโรงพิมพ์ 3 มิติ
UCL-IIoT-Drivhus: 5 ขั้นตอน
UCL-IIoT-Drivhus: วัตถุประสงค์ของโครงการนี้คือการสร้างบ้านสวนโดยใช้ Arduino ดังนั้น นักเรียน 3 คนในกลุ่มจึงตัดสินใจสร้าง Greenhouse อัตโนมัติ เราจึงตัดสินใจบันทึกข้อมูลเกี่ยวกับข้อมูลที่เรือนกระจกให้ไว้ ผ่านเซิร์ฟเวอร์ Wamp, node-re
การนำ BGA กลับมาใช้ใหม่โดยใช้ Stay in Place Stencil: 7 ขั้นตอน
การนำ BGA กลับมาใช้ใหม่โดยใช้ลายฉลุ Stay in Place: BGA ปรับปรุงลายฉลุที่มีคุณลักษณะอยู่ในสถานที่เพื่อลดความซับซ้อนของกระบวนการและซ่อมแซมหน้ากากประสานที่เสียหาย ช่วยเพิ่มผลผลิตรอบแรกและซ่อมแซมหน้ากากประสานที่อาจได้รับความเสียหายจากอุปกรณ์ ดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับ BGA ได้ที่ ba