สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: พิมพ์ส่วนประกอบ 3 มิติทั้งหมด
- ขั้นตอนที่ 2: (ไม่บังคับ) ติดแผ่นไม้ที่ด้านล่างของกล่องเพื่อเพิ่มความแข็งแกร่ง
- ขั้นตอนที่ 3: วัดและตัดแผ่นไม้ให้พอดีกับกล่อง
- ขั้นตอนที่ 4: ทำเครื่องหมายตำแหน่งของมอเตอร์
- ขั้นตอนที่ 5: ทำเครื่องหมายตำแหน่งของวงเล็บและท่อ
- ขั้นตอนที่ 6: เจาะรูสำหรับสายเคเบิลที่ออกมาจากกล่องของคุณ (USB และพลังงาน)
- ขั้นตอนที่ 7: เจาะและเลื่อยหลุมที่ทำเครื่องหมายไว้ทั้งหมด
- ขั้นตอนที่ 8: แนบมอเตอร์และท่อเข้ากับไม้กระดาน
- ขั้นตอนที่ 9: แนบไม้กระดานกับกล่องด้วย L-Brackets
- ขั้นตอนที่ 10: นำเทอร์มินัลบล็อกของคุณและประสานสายไฟเข้าด้วยกัน
- ขั้นตอนที่ 11: ตัดปลายสายไฟอะแดปเตอร์และดึงสายไฟ
- ขั้นตอนที่ 12: ระบุและทำเครื่องหมายสายบวกและลบ
- ขั้นตอนที่ 13: ต่อสายไฟเข้ากับเทอร์มินัลบล็อกเพื่อให้สาย + เซอร์โวและ + ลวดจากสายไฟเชื่อมต่อกัน เหมือนกันสำหรับ - สายไฟ
- ขั้นตอนที่ 14: ตัดหัวออกจาก Breadboard Wire
- ขั้นตอนที่ 15: เจาะสามรูที่ด้านล่างของกล่องสำหรับสายไฟที่ออกมาจากแขนของคุณ
- ขั้นตอนที่ 16: แนบตัวเชื่อมต่อฐานเข้ากับกล่อง
- ขั้นตอนที่ 17: ใช้มีดหรือตะไบเล็บเพื่อทำให้ร่องลวดลึกขึ้น
- ขั้นตอนที่ 18: สร้างแขน
- ขั้นตอนที่ 19: ติดตั้งการประมวลผลและ Arduino
- ขั้นตอนที่ 20: วางโปรแกรมโค้ด
- ขั้นตอนที่ 21: เชื่อมต่อหมุดควบคุมเซอร์โวกับ Arduino
- ขั้นตอนที่ 22: กดปุ่มรีเซ็ตในการประมวลผล สิ่งนี้จะตั้งค่า Arms ทั้งหมดเป็น 90 องศา
- ขั้นตอนที่ 23: แก้ไขแขนเซอร์โวกับมอเตอร์ในแนวนอน
- ขั้นตอนที่ 24: ร้อยสายไฟผ่านแขนเพื่อไม่ให้หย่อน
- ขั้นตอนที่ 25: ทดสอบแขนและขันหรือคลายสายไฟตามต้องการ
- ขั้นตอนที่ 26: ติดกาวสายไฟเข้ากับแขนเซอร์โวเพื่อให้เป็นแบบถาวร
- ขั้นตอนที่ 27: หมายเหตุ
- ขั้นตอนที่ 28: การแก้ไขปัญหา
- ขั้นตอนที่ 29: ลิงค์
- ขั้นตอนที่ 30: รหัส
- ขั้นตอนที่ 31: รูปภาพเพิ่มเติม
วีดีโอ: แขนหุ่นยนต์ควบคุมด้วยลวด: 31 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
บทแนะนำเกี่ยวกับวิธีการสร้างแขนหุ่นยนต์ควบคุมด้วยสายไฟ ข้อดีของการใช้สายไฟคือแขนของคุณมีน้ำหนักเบาและคุณสามารถมีมอเตอร์ทั้งหมดของคุณที่ด้านล่างของแขนของคุณ ทำให้การสร้างและบำรุงรักษาง่ายขึ้น นี่คือวิดีโอการทำงานของแขน ฉันวางแผนที่จะเพิ่มกรงเล็บในอนาคตเพื่อให้มันสามารถหยิบของได้และไม่เพียงแค่ผลักมันไป
งานพิมพ์ 3 มิติ:
ที่นี่และที่นี่
เสบียง
6 เซอร์โวมอเตอร์ (MG995)
Arduino Uno
ลวดเหล็กเคลือบพลาสติกประมาณ 6 เมตร (0.5 มม.)
กล่อง 23x33x10 (อาจจะแคบลง ไม่สั้นลงแน่นอน)
ไม้กระดาน 33x10
ถั่วและสลักเกลียว
ท่อ 14 ซม. (จำเป็นเพื่อเป็นแนวทางในการร้อยสาย)
4 L-วงเล็บ
อะแดปเตอร์ 5 โวลต์
2 ขั้วต่อ 7 ทาง
สายเขียงหั่นขนม
ส่วนประกอบที่พิมพ์ 3 มิติ (ฉันไม่ได้ออกแบบ ลิงก์ไปยังองค์ประกอบในคำอธิบาย):
3 “น็อต”
2 “องค์ประกอบ 1”
1 “องค์ประกอบ 2”
2 “องค์ประกอบ 3”
1 ขั้วต่อฐาน
ขั้นตอนที่ 1: พิมพ์ส่วนประกอบ 3 มิติทั้งหมด
คุณอาจต้องการการรองรับรูสลักและส่วนโค้ง แต่อย่าเพิ่มการรองรับให้กับส่วนประกอบของคุณ นี้จะปิดรูลวดขนาดเล็กและคุณจะต้องทำรูใหม่
ขั้นตอนที่ 2: (ไม่บังคับ) ติดแผ่นไม้ที่ด้านล่างของกล่องเพื่อเพิ่มความแข็งแกร่ง
กล่องของฉันค่อนข้างอ่อนแอ ของคุณอาจจะไม่
ขั้นตอนที่ 3: วัดและตัดแผ่นไม้ให้พอดีกับกล่อง
ขั้นตอนที่ 4: ทำเครื่องหมายตำแหน่งของมอเตอร์
อย่าให้แขนทั้งสองแตะกัน
ขั้นตอนที่ 5: ทำเครื่องหมายตำแหน่งของวงเล็บและท่อ
ควรวางท่อไว้หน้ารูประมาณหนึ่งเซนติเมตร
ขั้นตอนที่ 6: เจาะรูสำหรับสายเคเบิลที่ออกมาจากกล่องของคุณ (USB และพลังงาน)
ขั้นตอนที่ 7: เจาะและเลื่อยหลุมที่ทำเครื่องหมายไว้ทั้งหมด
ขั้นตอนที่ 8: แนบมอเตอร์และท่อเข้ากับไม้กระดาน
ขั้นตอนที่ 9: แนบไม้กระดานกับกล่องด้วย L-Brackets
ขั้นตอนที่ 10: นำเทอร์มินัลบล็อกของคุณและประสานสายไฟเข้าด้วยกัน
ขั้นตอนที่ 11: ตัดปลายสายไฟอะแดปเตอร์และดึงสายไฟ
ขั้นตอนที่ 12: ระบุและทำเครื่องหมายสายบวกและลบ
ขั้นตอนที่ 13: ต่อสายไฟเข้ากับเทอร์มินัลบล็อกเพื่อให้สาย + เซอร์โวและ + ลวดจากสายไฟเชื่อมต่อกัน เหมือนกันสำหรับ - สายไฟ
ขั้นตอนที่ 14: ตัดหัวออกจาก Breadboard Wire
แนบปลายสายของเขียงหั่นขนมเข้ากับขั้วลบและปลายพินกับพินกราวด์ใน Arduino ของคุณ ถ้าคุณไม่ทำเช่นนี้ มอเตอร์จะเคลื่อนที่อย่างผิดปกติโดยไม่มีอินพุตใดๆ
ขั้นตอนที่ 15: เจาะสามรูที่ด้านล่างของกล่องสำหรับสายไฟที่ออกมาจากแขนของคุณ
รูควรตรงกับรูในขั้วต่อฐาน
ขั้นตอนที่ 16: แนบตัวเชื่อมต่อฐานเข้ากับกล่อง
ขั้นตอนที่ 17: ใช้มีดหรือตะไบเล็บเพื่อทำให้ร่องลวดลึกขึ้น
ร่องลวดสำหรับองค์ประกอบ 2 และ 3 ตื้นเกินไป
ขั้นตอนที่ 18: สร้างแขน
สร้างแขนตามคำแนะนำที่นี่ คุณอาจจะต้องตะไบชิ้นส่วนให้พอดี
ขั้นตอนที่ 19: ติดตั้งการประมวลผลและ Arduino
การประมวลผลและ Arduino
ขั้นตอนที่ 20: วางโปรแกรมโค้ด
โค้ดอยู่ใต้หน้านี้
ขั้นตอนที่ 21: เชื่อมต่อหมุดควบคุมเซอร์โวกับ Arduino
ฉันเชื่อมต่อมอเตอร์ตัวแรกกับพินดิจิทัลตัวที่สาม มอเตอร์ตัวที่สองกับพินดิจิทัลที่สี่ และอื่นๆ ตรวจสอบให้แน่ใจว่าพินกราวด์ยังคงเชื่อมต่อกับแผงขั้วต่อ -
ขั้นตอนที่ 22: กดปุ่มรีเซ็ตในการประมวลผล สิ่งนี้จะตั้งค่า Arms ทั้งหมดเป็น 90 องศา
ขั้นตอนที่ 23: แก้ไขแขนเซอร์โวกับมอเตอร์ในแนวนอน
ขั้นตอนที่ 24: ร้อยสายไฟผ่านแขนเพื่อไม่ให้หย่อน
ตรวจสอบให้แน่ใจว่าคุณร้อยลวดผ่านรูให้มากที่สุดเท่าที่จะมากได้ ซึ่งจะเป็นการยึดไว้ชั่วคราวและถอดออกได้ง่าย
ขั้นตอนที่ 25: ทดสอบแขนและขันหรือคลายสายไฟตามต้องการ
ขั้นตอนที่ 26: ติดกาวสายไฟเข้ากับแขนเซอร์โวเพื่อให้เป็นแบบถาวร
ขั้นตอนที่ 27: หมายเหตุ
ฉันใช้ลวดเครื่องประดับ 0.5 มม. แต่ 0.4 มม. น่าจะใช้ได้ การออกแบบดั้งเดิมใช้ลวดพีวีซี แต่หักง่ายเกินไปและใช้งานยาก
หากคุณกำลังจะขยับแขนในรถยนต์หรือจักรยาน ให้พันข้อต่อแขนด้วยเทปเพื่อให้แน่ใจว่าจะไม่หลุดออกมา นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับองค์ประกอบ 1
เมื่อฉันเริ่มโครงการนี้ ฉันสงสัยว่าทำไมฉันถึงพบบทช่วยสอนเกี่ยวกับวิธีสร้างแขนควบคุมด้วยสายไฟเพียงบทเดียว ตอนนี้ฉันเข้าใจแล้วว่าทำไมนี่ไม่ใช่วิธีทั่วไปที่สุดในการสร้างแขนหุ่นยนต์งานอดิเรก บางครั้งสายไฟหลุดออกจากร่องและสิ่งของทั้งหมดก็บอบบาง ฉันไม่รู้ว่าปัญหาเป็นเพราะฉันไม่มีประสบการณ์มากหรือว่าความคิดทั้งหมดเป็นปัญหาหรือไม่ แม้ว่าฉันจะแน่ใจว่ามันจะแข็งแกร่งขึ้นหากฉันรู้ว่าฉันกำลังทำอะไรอยู่
ขั้นตอนที่ 28: การแก้ไขปัญหา
รูลวดปิดในองค์ประกอบที่พิมพ์ 3 มิติ:
คุณเพิ่มการรองรับสำหรับองค์ประกอบทั้งหมดแทนที่จะเป็นเพียงรูสลัก พิมพ์องค์ประกอบใหม่หรือเปิดรูด้วยเข็มที่ร้อนมาก
พอร์ต COM ปิดอยู่ คุณไม่สามารถสื่อสารกับ Arduino ได้:
Arduino ของคุณอาจไม่ยอมรับพอร์ต USB 3 (ของฉันไม่ได้) คุณสามารถซื้อสายต่อ USB 2 หรือใช้คอมพิวเตอร์ที่มีพอร์ต USB 2
รหัสไม่ทำงาน:
ทำตามบทช่วยสอนนี้และแก้ไขเพื่อสร้างโค้ดของคุณเอง
ส่วนหนึ่งของแขนไม่ขยับ:
สายไฟอาจพันกัน เพื่อตรวจสอบสิ่งนี้ให้ถอดแขนเซอร์โวออกจากเซอร์โวแล้วลองดึงสายไฟด้วยมือ คลายสายไฟและหากยังดึงสายไฟได้ยาก ให้ลองใช้ WD-40 หรือน้ำมันหล่อลื่นเพื่อให้เคลื่อนที่ได้ง่ายขึ้น
ขั้นตอนที่ 29: ลิงค์
แขนกลที่ไม่ใช่หุ่นยนต์:
แขน 3D Printables:
My Arm 3D พิมพ์ได้:
Arduino และการประมวลผล:
ขั้นตอนที่ 30: รหัส
แก้ไขจากรหัสนี้
รหัส Arduino:
#include //ประกาศมอเตอร์ Servo myservo1; เซอร์โว myservo2; เซอร์โว myservo3; เซอร์โว myservo4; เซอร์โว myservo5; เซอร์โว myservo6; // มอเตอร์ทั้งหมดถูกตั้งค่าไว้ที่ 90 องศาโดยค่าเริ่มต้น int current1 = 90; int ปัจจุบัน2 = 90; int ปัจจุบัน 3 = 90; int ปัจจุบัน4 = 90; int ปัจจุบัน 5 = 90; int ปัจจุบัน 6 = 90; // องศาต่ำสุดและสูงสุดที่มอเตอร์สามารถเข้าถึงได้ int mini1 = 0; int maxi1 = 180; int mini2 = 0; int maxi2 = 180; int mini3 = 0; int maxi3 = 180; int mini4 = 0; int maxi4 = 180; int mini5 = 0; int maxi5 = 180; int mini6 = 0; int maxi6 = 180; //องศาที่จะเพิ่มหรือลบออกจากตำแหน่งปัจจุบัน int องศาFoward = 5; // หน่วงเวลาเพื่อไม่ให้สองฟังก์ชันเกิดขึ้นในลำดับที่ไม่ถูกต้อง int delayBetweenSteps = 100; การตั้งค่าเป็นโมฆะ () {// ตั้งค่าพินควบคุมสำหรับมอเตอร์แต่ละตัว myservo1.attach (3); myservo2.attach(4); myservo3.attach(5); myservo4.attach(6); myservo5.attach(7); myservo6.attach(8); //ตั้งค่ามอเตอร์ทั้งหมดเป็นค่าเริ่มต้น myservo1.write(current1); myservo2.write(ปัจจุบัน2); myservo3.write(ปัจจุบัน3); myservo4.write (ปัจจุบัน 4) myservo5.write (ปัจจุบัน 5); myservo6.write(ปัจจุบัน6); //เริ่มการสื่อสารแบบอนุกรม @9600 bps Serial.begin(9600); } void loop(){ if(Serial.available()){ //if data is available to read ถ่าน val = Serial.read(); // ใส่ลงในถ่านนี้ // Motor Controls if (val == 'a' && current1 +degreeFoward mini1) { myservo1.write (current1 -degreeFoward); ปัจจุบัน1 = ปัจจุบัน1 - องศาไปข้างหน้า; ล่าช้า (delayBetweenSteps); } if(val == 'c' && current2 mini2){ myservo2.write(current2 - องศาโฟเวิร์ด); ปัจจุบัน2 = ปัจจุบัน2 - องศาไปข้างหน้า; ล่าช้า (delayBetweenSteps); } if(val == 'e' && current3 mini3){ myservo3.write(current3 - องศาโฟเวิร์ด); ปัจจุบัน3 = ปัจจุบัน3 - องศาไปข้างหน้า; ล่าช้า (delayBetweenSteps); } if(val == 'g' && current4 mini4){ myservo4.write (current4 - องศาโฟเวิร์ด); ปัจจุบัน4 = ปัจจุบัน4 - องศาไปข้างหน้า; ล่าช้า (delayBetweenSteps); } if(val == 'i' && current5 mini5){ myservo5.write (current5 - องศาโฟเวิร์ด); ปัจจุบัน5 = ปัจจุบัน5 - องศาไปข้างหน้า; ล่าช้า (delayBetweenSteps); } if(val == 'k' && current6 mini6){ myservo6.write(current6 - องศาโฟเวิร์ด); ปัจจุบัน6 = ปัจจุบัน6 - องศาไปข้างหน้า; ล่าช้า (delayBetweenSteps); } // ควบคุมความเร็ว if (val == 'w') { // ถ้ากดปุ่ม speed 1 องศาdegreeFoward = 1; ล่าช้า (delayBetweenSteps); } if(val == 'x'){ //ถ้าปุ่ม speed 5 กดปุ่มdegreeFoward = 5; ล่าช้า (delayBetweenSteps); } if(val == 'y'){ //ถ้าปุ่ม speed 10 กดปุ่ม degreeFoward = 10; ล่าช้า (delayBetweenSteps); } if(val == 'z'){ //ถ้าปุ่ม speed 20 กดปุ่ม degreeFoward = 20; ล่าช้า (delayBetweenSteps); } if(val == 'r'){ //ถ้าปุ่ม speed 20 กดปุ่ม myservo1.write(90); ปัจจุบัน1 = 90; myservo2.write(90); ปัจจุบัน2 = 90; myservo3.write(90); ปัจจุบัน3 = 90; myservo4.write(90); ปัจจุบัน4 = 90; myservo5.write(90); ปัจจุบัน5 = 90; myservo6.write(90); ปัจจุบัน6 = 90; ล่าช้า (delayBetweenSteps); } } }
รหัสประมวลผล:
นำเข้าการประมวลผล.ซีเรียล.*; การควบคุมการนำเข้าP5.*; //นำเข้าไลบรารี ControlP5 พอร์ตอนุกรม; ควบคุมP5 cp5; //สร้างฟอนต์ PFont วัตถุ ControlP5; การตั้งค่าเป็นโมฆะ () {// เหมือนกับขนาดโปรแกรม Arduino (300, 700); //ขนาดหน้าต่าง (ความกว้าง ความสูง) printArray(Serial.list()); //พิมพ์พอร์ตอนุกรมที่มีอยู่ทั้งหมด //หากคุณมีปัญหา อาจมาจากที่นี่ String portName = Serial.list()[0]; พอร์ต = ซีเรียลใหม่ (นี่, ชื่อพอร์ต, 9600); // ฉันเชื่อมต่อ arduino กับ com3 แล้ว มันจะแตกต่างกันใน linux และ mac os // ให้เพิ่มปุ่มไปที่หน้าต่างว่าง cp5 = new ControlP5 (นี่); แบบอักษร = createFont ("Arial", 13); // แบบอักษรที่กำหนดเองสำหรับปุ่มและชื่อ // ปุ่มควบคุมความเร็ว cp5.addButton("หนึ่ง") // "หนึ่ง" คือชื่อของปุ่ม.setPosition(50, 50) // พิกัด x และ y ที่มุมซ้ายบนของปุ่ม.setSize(55, 25) //(ความกว้าง ความสูง).setFont(แบบอักษร); cp5.addButton("ห้า").setPosition(110, 50).setSize(55, 25).setFont(ฟอนต์); cp5.addButton("สิบ").setPosition(170, 50).setSize(55, 25).setFont(ฟอนต์); cp5.addButton("ยี่สิบ").setPosition(230, 50).setSize(55, 25).setFont(ฟอนต์); cp5.addButton("รีเซ็ต").setPosition(110, 2).setSize(55, 25).setFont(ฟอนต์); cp5.addButton("Servo_1_Foward").setPosition(50, 90).setSize(190, 40).setFont(ฟอนต์); // ปุ่มควบคุมมอเตอร์ cp5.addButton("Servo_1_Back").setPosition(50, 140).setSize(190, 40).setFont(font); cp5.addButton("Servo_2_Foward").setPosition(50, 190).setSize(190, 40).setFont(ฟอนต์); cp5.addButton("Servo_2_Back").setPosition(50, 240).setSize(190, 40).setFont(ฟอนต์); cp5.addButton("Servo_3_Foward").setPosition(50, 290).setSize(190, 40).setFont(ฟอนต์); cp5.addButton("Servo_3_Back").setPosition(50, 340).setSize(190, 40) //(ความกว้าง ความสูง).setFont(แบบอักษร); cp5.addButton("Servo_4_Foward").setPosition(50, 390).setSize(190, 40).setFont(ฟอนต์); cp5.addButton("Servo_4_Back").setPosition(50, 440).setSize(190, 40) //(ความกว้าง ความสูง).setFont(แบบอักษร); cp5.addButton("Servo_5_Foward").setPosition(50, 490).setSize(190, 40).setFont(ฟอนต์); cp5.addButton("Servo_5_Back").setPosition(50, 540).setSize(190, 40).setFont(ฟอนต์); cp5.addButton("Servo_6_Foward").setPosition(50, 590).setSize(190, 40).setFont(ฟอนต์); cp5.addButton("Servo_6_Back").setPosition(50, 640).setSize(190, 40).setFont(แบบอักษร); } void draw (){ //เหมือนกับลูปในพื้นหลัง Arduino (192, 215, 249); // สีพื้นหลังของหน้าต่าง (r, g, b) หรือ (0 ถึง 255) // เพิ่มข้อความว่า speed control is speed control fill(0, 10, 25); //สีข้อความ (r, g, b) textFont(แบบอักษร); text("ควบคุมความเร็ว", 50, 40); // ("ข้อความ", พิกัด x, พิกัด y) } // ให้เพิ่มฟังก์ชันบางอย่างให้กับปุ่มของเรา // ดังนั้นเมื่อคุณกดปุ่มใดๆ มันจะส่งถ่านเฉพาะผ่านพอร์ตอนุกรม // ฉันแน่ใจว่ามันเป็นไปได้ที่จะส่งสตริง แทนที่จะเป็น chars และมันน่าจะสมเหตุสมผลกว่า แต่ฉันไม่รู้ว่าต้องทำอย่างไร //Speed Control Commands void One(){ port.write('w'); } โมฆะ Five(){ port.write('x'); } โมฆะ Ten(){ port.write('y'); } โมฆะยี่สิบ (){ port.write ('z'); } // คำสั่งควบคุมมอเตอร์เป็นโมฆะ Servo_1_Foward () { port.write ('a'); } เป็นโมฆะ Servo_1_Back(){ port.write('b'); } เป็นโมฆะ Servo_2_Foward(){ port.write('c'); } เป็นโมฆะ Servo_2_Back(){ port.write('d'); } เป็นโมฆะ Servo_3_Foward(){ port.write('e'); } เป็นโมฆะ Servo_3_Back(){ port.write('f'); } เป็นโมฆะ Servo_4_Foward(){ port.write('g'); } เป็นโมฆะ Servo_4_Back(){ port.write('h'); } เป็นโมฆะ Servo_5_Foward(){ port.write('i'); } เป็นโมฆะ Servo_5_Back(){ port.write('j'); } เป็นโมฆะ Servo_6_Foward(){ port.write('k'); } เป็นโมฆะ Servo_6_Back(){ port.write('l'); } เป็นโมฆะ รีเซ็ต(){ port.write('r'); }
ขั้นตอนที่ 31: รูปภาพเพิ่มเติม
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง