ก่อนอื่นเราอยากจะแนะนำคุณเกี่ยวกับหลักการทำงานของคดีนี้ โดยทั่วไปมี 8 ขั้นตอนในกรณีนี้ภายใต้สภาพที่เหมาะสม ล้อ 1 และล้อ 4 คือล้อที่ขับเคลื่อนด้วยมอเตอร์ขณะที่ล้ออื่น ๆ เป็นล้อขับเคลื่อน อุปกรณ์ยกถูกติดตั้งแยกกันบนล้อ 2 และล้อ 4
ด่าน 1
รถวิ่งไปข้างหน้า
ด่าน 2
เซ็นเซอร์อัลตราโซนิคตรวจจับสิ่งกีดขวางด้านหน้า
จากนั้นอุปกรณ์ยกของรถคันนี้จะยกล้อที่ 1 และ 3 ขึ้นไปจนกระทั่งเซ็นเซอร์อัลตราโซนิกไม่สามารถตรวจจับสิ่งกีดขวางได้
หมายเหตุ: "อุปสรรค" ที่นี่หมายถึง "บันได"
Stage3
รถเคลื่อนที่ไปข้างหน้าขับเคลื่อนโดยล้อ 1 และล้อ 4
ด่านที่ 4
ดังที่แสดงในรูปภาพผู้ติดตามเส้นบนล้อ 2 ได้ตรวจพบสิ่งกีดขวาง (บันได) ดังนั้นการยกอุปกรณ์ 1 จะยกล้อ 2 ขึ้นไปจนถึงบันไดถัดไปที่สูงขึ้น
ด่าน 5
รถเคลื่อนที่ไปข้างหน้าขับเคลื่อนโดยล้อ 1 และล้อ 4
ด่าน 6
ล้อขับรถ (ล้อ 1 และล้อ 4) จะหยุดทำงานโดยอัตโนมัติเมื่อสวิตช์ จำกัด ที่ล้อ 4 ตรวจพบบันได อุปกรณ์ยกที่ 2 จะยกล้อ 4 ขึ้น
ด่าน 7
รถขับเคลื่อนต่อไปข้างหน้าขับเคลื่อนด้วยล้อ 1
มันเหมือนกับว่าเรากลับไปที่สเตจ 1 อีกครั้ง …
ด่าน 8
ขั้นตอนที่ 8 เหมือนกับขั้นตอนที่ 2 รถหุ่นยนต์เคลื่อนที่ไปข้างหน้าจนกว่าเซ็นเซอร์อัลตราโซนิคจะตรวจจับสิ่งกีดขวาง …
โดยทั่วไปในกรณีนี้หลักการทำงานรอบจากระยะ 1 ถึงระยะ 8
จากมุมมองของโครงสร้างทางกลส่วนที่ไม่เหมือนใครของเคสนี้คือการออกแบบอุปกรณ์ยกซึ่งจำเป็นต้องมีทั้งความน่าเชื่อถือและความรวดเร็วเมื่อยกสิ่งของขึ้นและลงดังนั้นในกรณีนี้เราใช้เกียร์และแร็คเพื่อสร้างอุปกรณ์ยก ดังที่แสดงในคำอธิบายต่อไปนี้เราใช้คาน 0808 เพื่อสร้างรางเลื่อนและตัวเชื่อมต่อเข็มขัดที่เชื่อมต่อกับคาน 0824 เพื่อสร้างบล็อกเลื่อนแบบง่าย
เรียนรู้เพิ่มเติม
ขั้นตอนที่ 2:
ถัดไปคือชิ้นส่วนที่ใช้ในแต่ละขั้นตอนและวิธีการสร้าง อุปกรณ์ยก 1
รายการส่วน:
4 x Beam0824-032
2 x Beam0824-160
8 x สกรู M4x22
8 x น็อต M4
ใช้ส่วนต่อไปนี้เพื่อเชื่อมต่อโครงสร้าง
ขั้นตอนที่ 3:
รายการส่วน:
ขั้วต่อสายพาน 4 x
16 x สกรู M4x8
เพียงแค่ขันสกรูให้แน่นเราก็สามารถสร้างบล็อกเลื่อนได้อย่างง่ายดาย
หยิบ Beam0808-312 สองตัวซึ่งสามารถผ่านบล็อกเลื่อนได้ทันที
ขั้นตอนที่ 4:
ตอนนี้ย้ายไปยังขั้นตอนถัดไป: สร้างชั้นวาง
เพื่อให้แน่ใจว่ารถปีนอัตโนมัติอัจฉริยะนี้จะปรับบันไดที่มีความสูงต่างกันรางเลื่อนและชั้นวางควรยาวพอสมควร รางเลื่อนยาว 312 มม. ดังนั้นชั้นวางไม่ควรสั้น
สิ่งที่เราต้องทำคือเชื่อมต่อ 4 ส่วนเพื่อสร้างชั้นวาง เหตุผลที่เราใช้ Beam0808-312 ที่นี่คือเพื่อป้องกันไม่ให้ข้อต่อของส่วนแร็คเข้าโค้งในระหว่างกระบวนการยก หากรอยต่อของชั้นวางส่วนโค้งงอจะเกิดปัญหาการประกบกันระหว่างเฟืองและแร็ค ดังนั้นเราควรแก้ไขชั้นวางบน Beam0808-312 ดังที่แสดงในภาพต่อไปนี้:
ขั้นตอนที่ 5:
เชื่อมต่อรางนำและชั้นวาง
รายการส่วน:
1 x Beam0824-144
3 x สกรู M4x22
2 x น็อต M4
ขั้นตอนที่ 6:
รายการส่วน:
2 x Beam0824-176
6 x สกรู M4 x 22
6 x น็อต M4
ขั้นตอนที่ 7:
ติดตั้งล้อ 2 (ล้อทำงาน)
รายการส่วน:
2 x ยาง 64 * 16 มม
2 x รอกไทม์มิ่ง 90T
2 x เกลียวขนาด 4x39 มม
4 x หน้าแปลนแบริ่ง
2 x สกรู M4
สกรูหัวขาด 2 x M3x5
4 x พลาสติก Spacer4x7x2
แก้ไขยางสองเส้นที่ปลายทั้งสองของ Beam0824
ทำตามขั้นตอนทั้งหมดเราประกอบล้อ 2 และอุปกรณ์ยก 1 เสร็จ
ขั้นตอนที่ 8:
มาพาคุณข้ามไปยังขั้นตอนต่อไป - ประกอบล้อ 4 และยกอุปกรณ์ 2
โครงสร้างของอุปกรณ์ยก 2 เหมือนกับอุปกรณ์ยก 1 ดังนั้นชิ้นส่วนที่ใช้ในการประกอบ
ข้อแตกต่างคือคุณต้องแก้ไข Beam 0824-032 ดังแสดงในรูป
ประกอบรางนำและแร็คเหมือนกับขั้นตอนของอุปกรณ์ยกอาคาร 1. ใช้ Beam0824-080 แทน Beam0824-144 เพื่อเชื่อมต่อปลายด้านบน
ขั้นตอนที่ 9:
ในการเชื่อมต่อส่วนล่างเราใช้ส่วนต่อไปนี้:
1 x Beam0824-128
6 x สกรู M4x22
6 x น็อต M4
ขั้นตอนที่ 10:
ติดตั้ง Bracket L1 บน Beam0824
รายการส่วน:
2 x สกรู M4x14
2 x น็อต M4
ขั้นตอนที่ 11:
หลังจากเสร็จสิ้นอุปกรณ์ยกของอาคาร 2 เราสามารถเริ่มสร้างล้อ 4 (ล้อขับ)
รายการส่วน:
1 x DC Motor-25
1 x รอกไทม์มิ่ง 90T
1 x ตัวยึดมอเตอร์ DC-25
1 x เชื่อมต่อเพลา
1 x สกรูหัวขาด M3x5
2 x สกรู M4x14
ขั้นตอนที่ 12:
ติดตั้งยางรถยนต์
2 x สกรู M4x14
2 x อ่อนนุช
ติดตั้งโครงสร้างด้านบนบน Bracket L1
จนถึงตอนนี้เราสร้างรถคันนี้ครึ่งหนึ่งเสร็จแล้ว
ขั้นตอนที่ 13:
ขั้นตอนต่อไปคือการสร้างโครงสร้างหลักของรถยนต์และล้อ 1 และล้อ 3
สร้างวงล้อ 1 (ขับล้อ) ก่อน
2 x ยาง 64 * 16 มม
2 x รอกไทม์มิ่ง 90T
2 x ตัวเชื่อมต่อเพลา
8 x สกรู M4x14
4 x น็อต M4
4 x สกรู M3x5
สกรูหัวขาด 4 x M3x5
2 x DC Motor-25mm
2 x ตัวยึดมอเตอร์ DC-25
2 x Beam0824-064
ขั้นตอนที่ 14:
ประกอบแถบป้องกันการชนกัน
รายการส่วน:
1 x Beam0824-160
2 x ตัวยึด L1
4 x สกรู M4x14
4 x น็อต M4
ขั้นตอนที่ 15:
รวบรวมโครงสร้างหลักของรถ
รายการส่วน:
2 x Beam0824-192
1 x แถบต่อต้านการชนกัน
2 x ยาง 64 * 16 มม
6 x สกรู M4x30
6 x น็อต M4
ขั้นตอนที่ 16:
ประกอบล้อ 3 (ล้อขับเคลื่อน)
รายการส่วน:
2 x ยาง 64 * 16 มม
2 x รอกไทม์มิ่ง 90T
2 x Beam0808-088
4 x หน้าแปลนแบริ่ง
2 x แกนเกลียว
4 x พลาสติก Spacer4x7x2
2 x อ่อนนุช
สกรูหัวขาด 2 x M3x5
ขั้นตอนที่ 17:
รายการส่วน:
4 x สกรู M4x22
4 x น็อต M4
ยึดล้อ 3 เข้ากับตัวยึดรถ
ขั้นตอนที่ 18:
ติดตั้งอุปกรณ์ยก 2 บนตัวยึดรถ
รายการส่วน:
8 x สกรู M4x14
ขั้นตอนที่ 19:
ใช้ 6 Screw M4x14 เพื่อติดตั้งอุปกรณ์ fting 1
ความกว้างของบันไดคือ
มีจำนวน จำกัด และยางมีขนาดใหญ่เกินไปดังนั้นเราจึงต้องจัดตำแหน่งของยางทั้งหมด ในล้อที่ 4 เราใช้แค่มอเตอร์และยางเท่านั้น
ขั้นตอนที่ 20:
ติดตั้งมอเตอร์ของอุปกรณ์ยก
รายการส่วน:
2 x DC Motor-37
2 x เกียร์ 18T
สกรูหัวขาด 2 x M3 x 5
4 x สกรู M4 x 8
หมายเหตุ: ก่อนติดตั้ง DC Motor-37 ให้ประกอบชุดมอเตอร์ก่อน
ปรับระยะห่างระหว่างเกียร์และแร็คจากนั้นติดตั้งมอเตอร์แยกต่างหากในร่องเกลียวของ Beam0824 บนอุปกรณ์ยก 1 และ 2
ทีละขั้นตอนเราสร้างโครงสร้างเชิงกลทั้งหมดของรถคันนี้
ขั้นตอนที่ 21:
มาดูขั้นตอนต่อไปกันเถอะ - ติดตั้งเซ็นเซอร์
1 x ลิมิตสวิตช์
ติดตั้งสวิตช์ จำกัด ที่ด้านข้างของอุปกรณ์ยก 2
2 x ลิมิตสวิตช์
ติดตั้งสวิตช์ จำกัด สองตัวนี้แยกกันบนคานของอุปกรณ์ยก 1 และ 2
หมายเหตุ: ลิมิตสวิตช์ใช้เพื่อจำกัดความสูงของการยก
ขั้นตอนที่ 22:
ติดตั้งเซ็นเซอร์ผู้ติดตามสาย
รายการส่วน:
2 x สกรู M4 x 22
2 x Plastic Spacer 4 * 7 * 10
4 x พลาสติก Spacer4x7x2
1 x Me Line Follower
ขั้นตอนที่ 23:
ติดตั้งวัดการหมุนวน
ขั้นตอนที่ 24:
ติดตั้งเซ็นเซอร์อัลตราโซนิก
อย่างที่เราทราบกันดีว่าเซ็นเซอร์อัลตราโซนิคไม่สามารถตรวจจับสิ่งกีดขวางในระยะ 0-30 มม. ดังนั้นในกรณีนี้เราติดตั้งเซ็นเซอร์อัลตราโซนิกภายในรถให้แถบป้องกันการชนด้านหน้าที่จะชนบันได ด้วยวิธีนี้อัลตราโซนิกเพิ่งจะสามารถตรวจจับสิ่งกีดขวาง - บันได
ขั้นตอนที่ 25:
ติดตั้ง Me Orion
ขั้นตอนที่ 26:
ติดตั้งอะแดปเตอร์ (สำหรับสวิตช์ จำกัด )
ขั้นตอนที่ 27:
การติดตั้งเซ็นเซอร์ทั้งหมดตอนนี้ให้เราดูโครงสร้างทั้งหมดของรถยนต์และเซ็นเซอร์
รถคันนี้สามารถแบ่งออกเป็น 4 ส่วนตามจำนวนยาง
ล้อ 1 และล้อ 4 เป็นล้อขับขณะที่ล้อ 2 และล้อ 3 เป็นล้อขับเคลื่อน
(ล้อ 4 ล้อ 3 ล้อ 2 ล้อ 1)
ในรถคันนี้อุปกรณ์ยก 1 และ 2 ควบคุมตำแหน่งของล้อ 2 และล้อ 4
(อุปกรณ์ยก 1 อุปกรณ์ยก 2)
(ผู้ติดตามสายของล้อ 2 เซ็นเซอร์อัลตราโซนิกของล้อ 1)
(โมดูลขับเคลื่อนมอเตอร์ขับมอเตอร์ของล้อ 4 ลิมิตสวิตช์ของอุปกรณ์ยก 2 ลิมิตสวิตช์ของล้อ 4 อุปกรณ์ยก 2)
(Gyroscope ขับมอเตอร์ของล้อ 1 อุปกรณ์ยก 1 ขับมอเตอร์ของล้อ 1 สวิตช์ จำกัด ของล้อ 2)
ทำไมเราต้องใช้เครื่องวัดการหมุนวน? ไจโรสโคปที่นี่ใช้เพื่อปรับความเร็วในการยกของมอเตอร์ดังนั้นเพื่อความสมดุลของรถ (มอเตอร์ที่ใช้ในอุปกรณ์ยกกำลังเป็นมอเตอร์ DC ซึ่งไม่สามารถปรับสมดุลของรถได้)
ขั้นตอนที่ 28:
รถทั้งหมด:
ขั้นตอนที่ 29:
แผนที่เดินสาย
ขั้นตอนที่ 30:
mw_shl_code = applescript, true #include "MeOrion.h" #include MeGyro gyro; MeDCMotor lifer1 (PORT_1); // 升降 1 MeDCMotor lifer2 (PORT_2); // 升降 2 MeDCMotor rw (M2); // 1 号驱动轮 MeDCMotor fw (M1); // 4 号驱动轮 MeLineFollower lineFinder1 (PORT_7); // 巡线 MeLimitSwitch upWard1 (PORT_3, SLOT2); // 1 号升降限位开关 MeLimitSwitch forWard2 (PORT_4, SLOT1); // 4 号轮子限位开关 MeLimitSwitch upWard2 (PORT_4, SLOT2); // 2 号升降限位开关 MeUlt SonicSensor ultraSensor (PORT_8); // 1 setup 轮子超声波 void setup () // 初始化, 初始化, 装置回收 {Serial.begin (9600); gyro.begin (); lifer1.run (-250); ในขณะที่ (! upWard1.touched ()); lifer1.stop (); lifer2.run (-250); ในขณะที่ (! upWard2.touched ()); lifer2.stop (); } ถือเป็นโมฆะ Step2 () {float p = 15; float i = 0.01; มุมลอย = 0; float targetAngle = 0; การรวม float = 0; float err = 0; ในขณะที่ (NotStop ()) {gyro.update (); มุมลอย = gyro.getAngleX (); err = angle - targetAngle; การรวม + = ผิดพลาด; int speed1 = 200; int speed2 = 200; speed2 = speed1 + err * p; // บูรณาการ * i; lifer1.run (speed1); lifer2.run (SPEED2); // ล่าช้า (10); } lifer1.stop (); lifer2.stop (); } int startTiming = 0; startTime แบบยาวที่ไม่ได้ลงชื่อ = 0; int NotStop () {ระยะทาง int16_t; ระยะทาง = ultraSensor.distanceCm (); ล่าช้า (10); ถ้า (0 == startTiming) {ถ้า ((ระยะทาง <10) && (ระยะทาง> 1)) {กลับ 1; } else {startTiming = 1; startTime = millis (); คืน 1 }} else {currentTime ยาวที่ไม่ได้ลงนาม = millis (); if (currentTime - startTime <2500) // 超声波检测不到楼梯后延时秒 2.5 秒 {ส่งคืน 1; } else {return 0; }}} void loop () {startTiming = 0; startTime = 0; // 阶段 1 小车前进 fw.run (60); rw.run (60); // 1 号 4 号轮子推动小车前进ระยะทาง int16_t; ทำ {distance = ultraSensor.distanceCm (); ล่าช้า (10); } // 阶段 2 碰到楼梯主动轮停止整体车架上升ขณะที่ (! ((ระยะทาง <4) && (ระยะทาง> 1))); // 如果碰到楼梯 fw.stop (); rw.stop (); ขั้นตอนที่ 2(); // 阶段 3 1 号 4 号轮子推动小车前进 fw.run (60); rw.run (60); // 阶段 4 2 装置号号轮子线巡传感器装置装置装置装置到装置装置装置装置装置装置装置装置装置装置装置装置装置装置装置去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去และในขณะที่ (! (lineFinder1.readSensors ()! = S1_IN_S2_IN)); lifer1.run (-250); fw.stop (); rw.stop (); ในขณะที่ (! upWard1.touched ()); // 1 结束升降限位开关检测升降结束 lifer1.stop (); ปรับ(); // 阶段 5 1 号 4 号轮子推动小车前进 fw.run (60); rw.run (60); // 阶段 6 4 到轮子限位开关检测到 4 号轮子碰到楼梯停止停止 2 停止停止装置回收回收 4 回收轮子ในขณะที่ (! forWard2.touched ()); lifer2.run (-250); fw.stop (); rw.stop (); ในขณะที่ (! upWard2.touched ()); // 1 结束升降限位开关检测升降结束 lifer2.stop (); // 阶段 7 循环阶段 1 // 阶段 8 循环阶段 2} เป็นโมฆะปรับ () // 陀螺仪控制 1、2 号升降电机电机平衡 {int p = 40; // float i = 0.05; มุมลอย = 0; float targetAngle = 4; // float integration = 0; // float err = 0; ทำ {gyro.update (); มุม = gyro.getAngleX (); // err = (angle - targetAngle); // Integration + = err; lifer2.run ((angle - targetAngle) * p); // การผสานรวมกับ i *); // ล่าช้า (10); } while (fabs (angle - targetAngle)> 1); lifer2.stop (); } / mw_shl_code
ขั้นตอนที่ 31:
ขั้นตอนที่ 32:
ติดตั้งมอเตอร์ Drive Makeblock