สารบัญ:

Arduino ควบคุมหุ่นยนต์สองขา: 13 ขั้นตอน (พร้อมรูปภาพ)
Arduino ควบคุมหุ่นยนต์สองขา: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino ควบคุมหุ่นยนต์สองขา: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino ควบคุมหุ่นยนต์สองขา: 13 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: EP 27. Arduino ฉบับไวจนไฟลุก !! - สาระเดฟ ใน 3 นาที 2024, พฤศจิกายน
Anonim
Image
Image
Arduino ควบคุมหุ่นยนต์สองขา
Arduino ควบคุมหุ่นยนต์สองขา
Arduino ควบคุมหุ่นยนต์สองขา
Arduino ควบคุมหุ่นยนต์สองขา

โครงการฟิวชั่น 360 »

ฉันสนใจหุ่นยนต์มาโดยตลอด โดยเฉพาะหุ่นยนต์ที่พยายามเลียนแบบการกระทำของมนุษย์ ความสนใจนี้ทำให้ฉันพยายามออกแบบและพัฒนาหุ่นยนต์เดินสองเท้าที่สามารถเลียนแบบการเดินและวิ่งของมนุษย์ได้ ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นถึงการออกแบบและการประกอบหุ่นยนต์สองเท้า

เป้าหมายหลักในการสร้างโครงการนี้คือการทำให้ระบบแข็งแกร่งที่สุดเท่าที่จะเป็นไปได้ ในขณะที่ทดลองเดินและวิ่งแบบต่างๆ ฉันก็ไม่ต้องกังวลว่าฮาร์ดแวร์จะขัดข้องตลอดเวลา สิ่งนี้ทำให้ฉันสามารถผลักดันฮาร์ดแวร์ให้ถึงขีด จำกัด เป้าหมายรองคือการทำให้ biped มีราคาค่อนข้างต่ำโดยใช้ชิ้นส่วนงานอดิเรกที่พร้อมใช้งานและการพิมพ์ 3 มิติออกจากห้องสำหรับการอัพเกรดและการขยายเพิ่มเติม เป้าหมายทั้งสองนี้รวมกันเป็นรากฐานที่แข็งแกร่งในการทำการทดลองต่างๆ ซึ่งช่วยให้เราพัฒนาแบบสองขาให้เป็นไปตามข้อกำหนดที่เฉพาะเจาะจงมากขึ้น

ทำตามเพื่อสร้าง Robotic Biped ที่ควบคุมโดย Arduino และลงคะแนนใน "Arduino Contest" หากคุณชอบโครงการ

ขั้นตอนที่ 1: กระบวนการออกแบบ

กระบวนการออกแบบ
กระบวนการออกแบบ
กระบวนการออกแบบ
กระบวนการออกแบบ
กระบวนการออกแบบ
กระบวนการออกแบบ

ขามนุษย์ได้รับการออกแบบในซอฟต์แวร์การสร้างแบบจำลอง 3 มิติ Fusion 360 ของ Autodesk ที่ใช้งานได้ฟรี ฉันเริ่มด้วยการนำเข้าเซอร์โวมอเตอร์ในการออกแบบและสร้างส่วนขารอบตัวมัน ฉันออกแบบขายึดสำหรับเซอร์โวมอเตอร์ซึ่งมีจุดหมุนที่สองในแนวทแยงตรงข้ามกับเพลาของเซอร์โวมอเตอร์ การมีเพลาคู่ที่ปลายทั้งสองด้านของมอเตอร์ทำให้การออกแบบมีความเสถียรเชิงโครงสร้าง และขจัดการบิดเบี้ยวที่อาจเกิดขึ้นเมื่อทำขาเพื่อรับน้ำหนัก ลิงค์ถูกออกแบบมาเพื่อรองรับแบริ่งในขณะที่วงเล็บใช้โบลต์สำหรับเพลา เมื่อติดตั้งข้อต่อเข้ากับเพลาโดยใช้น็อตแล้ว ตลับลูกปืนจะให้จุดหมุนที่ราบรื่นและแข็งแกร่งที่ฝั่งตรงข้ามของเพลาเซอร์โวมอเตอร์

อีกเป้าหมายหนึ่งขณะออกแบบ biped คือการรักษาโมเดลให้มีขนาดกะทัดรัดที่สุดเท่าที่จะเป็นไปได้ เพื่อใช้แรงบิดสูงสุดจากเซอร์โวมอเตอร์ ขนาดของลิงค์ถูกสร้างขึ้นเพื่อให้ได้ช่วงการเคลื่อนไหวที่กว้างในขณะที่ลดความยาวโดยรวม การทำให้สั้นเกินไปจะทำให้ตัวยึดชนกัน ลดช่วงของการเคลื่อนไหว และทำให้ยาวเกินไปจะทำให้ใช้แรงบิดที่ไม่จำเป็นกับแอคทูเอเตอร์ สุดท้าย ฉันได้ออกแบบร่างกายของหุ่นยนต์ที่จะติดตั้ง Arduino และส่วนประกอบอิเล็กทรอนิกส์อื่นๆ

หมายเหตุ: ชิ้นส่วนต่างๆ จะรวมอยู่ในขั้นตอนใดขั้นตอนหนึ่งต่อไปนี้

ขั้นตอนที่ 2: บทบาทของ Arduino

บทบาทของ Arduino
บทบาทของ Arduino

Arduino Uno ถูกใช้ในโครงการนี้ Arduino รับผิดชอบในการคำนวณเส้นทางการเคลื่อนที่ของการเดินแบบต่างๆ ที่ได้รับการทดสอบและสั่งให้ตัวกระตุ้นเคลื่อนไปยังมุมที่แม่นยำด้วยความเร็วที่แม่นยำเพื่อสร้างการเคลื่อนไหวที่ราบรื่นในการเดิน Arduino เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการพัฒนาโครงการเนื่องจากมีความเก่งกาจ มันมีพิน IO จำนวนมาก และยังมีอินเทอร์เฟซเช่นอนุกรม I2C และ SPI เพื่อสื่อสารกับไมโครคอนโทรลเลอร์และเซ็นเซอร์อื่น ๆ Arduino ยังจัดเตรียมแพลตฟอร์มที่ยอดเยี่ยมสำหรับการสร้างต้นแบบและการทดสอบอย่างรวดเร็ว และยังช่วยให้นักพัฒนามีพื้นที่สำหรับการปรับปรุงและขยายได้ ในโครงการนี้ เวอร์ชันเพิ่มเติมจะรวมหน่วยวัดแรงเฉื่อยสำหรับการประมวลผลการเคลื่อนไหว เช่น การตรวจจับการล้มและการเคลื่อนที่แบบไดนามิกในภูมิประเทศที่ไม่เรียบ และเซ็นเซอร์วัดระยะทางเพื่อหลีกเลี่ยงสิ่งกีดขวาง

Arduino IDE ถูกใช้สำหรับโครงการนี้ (Arduino ยังมี IDE บนเว็บด้วย)

หมายเหตุ: โปรแกรมสำหรับหุ่นยนต์สามารถดาวน์โหลดได้จากขั้นตอนใดขั้นตอนหนึ่งต่อไปนี้

ขั้นตอนที่ 3: วัสดุที่จำเป็น

วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น

นี่คือรายการส่วนประกอบและชิ้นส่วนทั้งหมดที่จำเป็นในการสร้างหุ่นยนต์ Bipedal ที่ขับเคลื่อนด้วย Arduino ของคุณเอง ชิ้นส่วนทั้งหมดควรจะมีอยู่ทั่วไปและหาได้ง่าย

อิเล็กทรอนิกส์:

Arduino Uno x 1

Towerpro MG995 เซอร์โวมอเตอร์ x 6

Perfboard (ขนาดใกล้เคียงกับ Arduino)

หมุดส่วนหัวชายและหญิง (ประมาณ 20 อันแต่ละอัน)

สายจัมเปอร์ (10 ชิ้น)

MPU6050 IMU (อุปกรณ์เสริม)

เซ็นเซอร์อัลตราโซนิก (อุปกรณ์เสริม)

ฮาร์ดแวร์:

แบริ่งสเก็ตบอร์ด (8x19x7mm)

น็อตและสลักเกลียว M4

ฟิลาเมนต์เครื่องพิมพ์ 3 มิติ (ในกรณีที่คุณไม่มีเครื่องพิมพ์ 3 มิติ ควรมีเครื่องพิมพ์ 3 มิติในพื้นที่ทำงานในท้องถิ่น หรือพิมพ์ออนไลน์ได้ในราคาถูก)

หากไม่รวมเครื่องพิมพ์ Arduino และ 3D ต้นทุนรวมของโครงการนี้คือ 20 เหรียญ

ขั้นตอนที่ 4: ชิ้นส่วนที่พิมพ์ 3 มิติ

ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ
ชิ้นส่วนพิมพ์ 3 มิติ

ชิ้นส่วนที่จำเป็นสำหรับโครงการนี้ต้องได้รับการออกแบบมาเอง ดังนั้นจึงใช้เครื่องพิมพ์ 3 มิติเพื่อพิมพ์ออกมา พิมพ์โดยใช้วัสดุเติม 40%, 2 เส้นรอบวง, หัวฉีด 0.4 มม. และความสูงของชั้น 0.1 มม. ด้วย PLA สีที่คุณเลือก ด้านล่างนี้ คุณจะพบรายการชิ้นส่วนทั้งหมดและ STL เพื่อพิมพ์เวอร์ชันของคุณเอง

หมายเหตุ: จากนี้ไปส่วนต่างๆ จะอ้างอิงโดยใช้ชื่อในรายการ

  • ที่วางเท้าเซอร์โว x 1
  • กระจกที่วางเซอร์โวเท้า x 1
  • ที่ยึดเซอร์โวหัวเข่า x 1
  • กระจกยึดเซอร์โวหัวเข่า x 1
  • ที่วางเท้าเซอร์โว x 1
  • กระจกที่วางเซอร์โวเท้า x 1
  • ข้อต่อแบริ่ง x 2
  • ลิงค์เซอร์โวฮอร์น x 2
  • ลิงค์เท้า x 2
  • สะพาน x 1
  • ที่ยึดอุปกรณ์อิเล็กทรอนิกส์ x 1
  • ตัวเว้นวรรคอิเล็กทรอนิกส์ x 8 (อุปกรณ์เสริม)
  • พื้นที่แตรเซอร์โว x 12 (อุปกรณ์เสริม)

รวมแล้ว ไม่รวมสเปเซอร์ มี 14 ส่วน เวลาในการพิมพ์ทั้งหมดประมาณ 20 ชั่วโมง

ขั้นตอนที่ 5: การเตรียมวงเล็บเซอร์โว

การเตรียมวงเล็บเซอร์โว
การเตรียมวงเล็บเซอร์โว
การเตรียมวงเล็บเซอร์โว
การเตรียมวงเล็บเซอร์โว
การเตรียมวงเล็บเซอร์โว
การเตรียมวงเล็บเซอร์โว

เมื่อพิมพ์ชิ้นส่วนทั้งหมดแล้ว คุณสามารถเริ่มต้นด้วยการตั้งค่าเซอร์โวและขายึดเซอร์โว ดันตลับลูกปืนเข้าไปในตัวยึดเซอร์โวหัวเข่าก่อน ความพอดีควรจะกระชับ แต่ฉันขอแนะนำให้ขัดพื้นผิวด้านในของรูเล็กน้อยแทนที่จะบังคับแบริ่งซึ่งอาจเสี่ยงต่อการทำลายชิ้นส่วน จากนั้นสอดโบลต์ M4 เข้าไปในรูแล้วขันให้แน่นโดยใช้น็อต ถัดไป จับที่ตีนผีและติดฮอร์นเซอร์โวแบบวงกลมโดยใช้สกรูที่ให้มา ติดลิงค์เท้าเข้ากับตัวยึดเซอร์โวหัวเข่าโดยใช้สกรูที่คุณจะใช้เพื่อติดเซอร์โวมอเตอร์ด้วย ตรวจสอบให้แน่ใจว่าได้จัดตำแหน่งมอเตอร์โดยให้เพลาอยู่ด้านเดียวกับสลักเกลียวที่คุณติดไว้ก่อนหน้านี้ ในที่สุดก็ยึดเซอร์โวด้วยน็อตและสลักเกลียวที่เหลือ

ทำเช่นเดียวกันกับตัวยึดเซอร์โวแบบสะโพกและที่ยึดเซอร์โวแบบเท้า ด้วยเหตุนี้ คุณจึงควรมีเซอร์โวมอเตอร์สามตัวและขายึดที่เกี่ยวข้องกัน

หมายเหตุ: ฉันกำลังให้คำแนะนำในการสร้างขาข้างหนึ่ง อีกข้างหนึ่งเป็นเพียงภาพสะท้อน

ขั้นตอนที่ 6: การสร้างชิ้นส่วนลิงค์

การทำ Link Pieces
การทำ Link Pieces
การทำ Link Pieces
การทำ Link Pieces
การทำ Link Pieces
การทำ Link Pieces

เมื่อประกอบวงเล็บแล้วให้เริ่มทำการเชื่อมโยง ในการสร้างข้อต่อแบริ่ง ให้ทรายพื้นผิวด้านในของรูสำหรับตลับลูกปืนอีกครั้งเบา ๆ จากนั้นดันตลับลูกปืนเข้าไปในรูทั้งสองด้าน ตรวจสอบให้แน่ใจว่าได้ดันตลับลูกปืนเข้าไปจนด้านหนึ่งเรียบ ในการสร้างลิงค์ฮอร์นเซอร์โว ให้หยิบแตรเซอร์โวแบบวงกลมสองตัวและสกรูที่ให้มา วางแตรบนงานพิมพ์ 3 มิติและจัดแนวรู จากนั้นขันสกรูแตรเข้ากับงานพิมพ์ 3 มิติโดยขันสกรูจากด้านการพิมพ์ 3 มิติ ฉันแนะนำให้ใช้ตัวเว้นวรรคฮอร์นเซอร์โวที่พิมพ์ 3 มิติสำหรับสกรูเหล่านี้ เมื่อสร้างลิงค์แล้ว คุณสามารถเริ่มประกอบขาได้

ขั้นตอนที่ 7: การประกอบขา

การประกอบขา
การประกอบขา
การประกอบขา
การประกอบขา
การประกอบขา
การประกอบขา
การประกอบขา
การประกอบขา

เมื่อประกอบลิงค์และวงเล็บแล้ว คุณสามารถรวมเข้าด้วยกันเพื่อสร้างขาของหุ่นยนต์ ขั้นแรก ใช้ลิงค์ฮอร์นเซอร์โวเพื่อติดโครงยึดเซอร์โวสะโพกและโครงยึดเซอร์โวหัวเข่าเข้าด้วยกัน หมายเหตุ: อย่าเพิ่งขันฮอร์นเข้ากับเซอร์โว เนื่องจากมีขั้นตอนการตั้งค่าอยู่ในขั้นตอนต่อไปนี้ และจะไม่สะดวกหากฮอร์นถูกขันเข้ากับเซอร์โวมอเตอร์

ฝั่งตรงข้ามให้ยึดข้อต่อแบริ่งเข้ากับสลักเกลียวที่ยื่นออกมาโดยใช้น็อต สุดท้าย ติดขายึดเซอร์โวเท้าโดยใส่โบลต์ที่ยื่นออกมาผ่านแบริ่งบนตัวยึดเซอร์โวหัวเข่า และยึดเพลาเซอร์โวเข้ากับฮอร์นเซอร์โวที่ต่อกับที่ยึดเซอร์โวหัวเข่าอีกด้านหนึ่ง นี่อาจเป็นงานที่ยุ่งยากและฉันขอแนะนำมือสองสำหรับสิ่งนี้

ทำซ้ำขั้นตอนสำหรับขาอีกข้าง ใช้รูปภาพที่แนบมากับแต่ละขั้นตอนเป็นข้อมูลอ้างอิง

ขั้นตอนที่ 8: PCB แบบกำหนดเองและการเดินสายไฟ

PCB แบบกำหนดเองและการเดินสายไฟ
PCB แบบกำหนดเองและการเดินสายไฟ
PCB แบบกำหนดเองและการเดินสายไฟ
PCB แบบกำหนดเองและการเดินสายไฟ
PCB แบบกำหนดเองและการเดินสายไฟ
PCB แบบกำหนดเองและการเดินสายไฟ

นี่เป็นขั้นตอนที่ไม่บังคับ เพื่อให้การเดินสายเรียบร้อยยิ่งขึ้น ฉันตัดสินใจสร้าง PCB แบบกำหนดเองโดยใช้บอร์ดและหมุดส่วนหัว PCB มีพอร์ตสำหรับเชื่อมต่อสายเซอร์โวมอเตอร์โดยตรง นอกจากนี้ ฉันยังทิ้งพอร์ตเพิ่มเติมไว้ในกรณีที่ฉันต้องการขยายและเพิ่มเซ็นเซอร์อื่นๆ เช่น หน่วยวัดแรงเฉื่อย หรือเซ็นเซอร์ระยะอัลตราโซนิก นอกจากนี้ยังมีพอร์ตสำหรับแหล่งพลังงานภายนอกที่จำเป็นสำหรับการจ่ายพลังงานให้กับเซอร์โวมอเตอร์ การเชื่อมต่อจัมเปอร์ใช้เพื่อสลับระหว่าง USB และพลังงานภายนอกสำหรับ Arduino ติดตั้ง Arduino และ PCB ที่ด้านใดด้านหนึ่งของอุปกรณ์อิเล็กทรอนิกส์โดยใช้สกรูและตัวเว้นวรรคที่พิมพ์ 3 มิติ

หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้ถอดจัมเปอร์ออกก่อนที่จะเชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB การไม่ทำเช่นนี้อาจส่งผลให้ Arduino เสียหายได้

หากคุณตัดสินใจที่จะไม่ใช้ PCB และใช้เขียงหั่นขนมแทน นี่คือการเชื่อมต่อเซอร์โว:

  • สะโพกซ้าย >> หมุด 9
  • สะโพกขวา >> หมุด 8
  • เข่าซ้าย >> หมุด 7
  • เข่าขวา >> หมุด 6
  • เท้าซ้าย >> หมุด 5
  • เท้าขวา >> พิน 4

หากคุณตัดสินใจที่จะทำ PCB ให้ทำตามคำสั่งเดียวกันกับด้านบนโดยใช้พอร์ตบน PCB จากขวาไปซ้ายโดยให้พอร์ต IMU หงายขึ้น และใช้สายจัมเปอร์ตัวผู้กับตัวเมียเพื่อเชื่อมต่อ PCB กับ Arduino โดยใช้หมายเลขพินด้านบน ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อพินกราวด์และสร้างศักย์กราวด์แบบเดียวกันและพินวินเมื่อคุณตัดสินใจที่จะเรียกใช้โดยไม่ต้องใช้ไฟ USB

ขั้นตอนที่ 9: การประกอบร่างกาย

การประกอบร่างกาย
การประกอบร่างกาย
การประกอบร่างกาย
การประกอบร่างกาย
การประกอบร่างกาย
การประกอบร่างกาย

เมื่อประกอบขาทั้งสองข้างและอุปกรณ์อิเล็กทรอนิกส์เข้าด้วยกันแล้ว ให้รวมเข้าด้วยกันเพื่อสร้างตัวหุ่นยนต์ ใช้สะพานเชื่อมขาทั้งสองข้างเข้าด้วยกัน ใช้รูยึดเดียวกันกับที่ยึดเซอร์โวแบบสะโพกและน็อตและสลักเกลียวที่ยึดเซอร์โวมอเตอร์ สุดท้าย เชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์เข้ากับสะพาน จัดเรียงรูบนสะพานและอุปกรณ์ยึดอุปกรณ์อิเล็กทรอนิกส์ และใช้น็อตและสลักเกลียว M4 เพื่อทำข้อต่อ

โปรดดูภาพที่แนบมาเพื่อขอความช่วยเหลือ ด้วยวิธีนี้ คุณได้เสร็จสิ้นการสร้างฮาร์ดแวร์ของหุ่นยนต์ ต่อไป มาเข้าสู่ซอฟต์แวร์และทำให้หุ่นยนต์มีชีวิต

ขั้นตอนที่ 10: การตั้งค่าเริ่มต้น

การตั้งค่าเบื้องต้น
การตั้งค่าเบื้องต้น
การตั้งค่าเบื้องต้น
การตั้งค่าเบื้องต้น
การตั้งค่าเบื้องต้น
การตั้งค่าเบื้องต้น

สิ่งที่ฉันสังเกตเห็นขณะสร้างโปรเจ็กต์นี้คือเซอร์โวมอเตอร์และแตรไม่จำเป็นต้องจัดตำแหน่งให้พอดีกันเพื่อให้ค่อนข้างขนานกัน นี่คือเหตุผลที่ต้องปรับ "ตำแหน่งตรงกลาง" ของเซอร์โวมอเตอร์แต่ละตัวเพื่อให้สอดคล้องกับขา เพื่อให้บรรลุสิ่งนี้ ให้ถอดฮอร์นเซอร์โวออกจากเซอร์โวแต่ละตัวและรันไฟล์ initial_setup.ino เมื่อมอเตอร์เข้าที่ในตำแหน่งตรงกลางแล้ว ให้ใส่เขากลับเข้าไปใหม่ โดยให้ขาตั้งตรงอย่างสมบูรณ์และเท้าจะขนานกับพื้นอย่างสมบูรณ์ หากเป็นกรณีนี้คุณโชคดี หากไม่เปิดไฟล์ constants.h ที่พบในแท็บที่อยู่ติดกัน และแก้ไขค่าออฟเซ็ตเซอร์โว (บรรทัดที่ 1-6) จนกว่าขาจะอยู่ในแนวเดียวกันอย่างสมบูรณ์และเท้าจะแบน เล่นกับค่านิยมและคุณจะได้รับความคิดเกี่ยวกับสิ่งที่จำเป็นในกรณีของคุณ

เมื่อตั้งค่าคงที่แล้ว ให้สังเกตค่าเหล่านี้เนื่องจากจะต้องใช้ในภายหลัง

อ้างถึงรูปภาพสำหรับความช่วยเหลือ

ขั้นตอนที่ 11: เล็กน้อยเกี่ยวกับจลนศาสตร์

เล็กน้อยเกี่ยวกับจลนศาสตร์
เล็กน้อยเกี่ยวกับจลนศาสตร์
เล็กน้อยเกี่ยวกับจลนศาสตร์
เล็กน้อยเกี่ยวกับจลนศาสตร์
เล็กน้อยเกี่ยวกับจลนศาสตร์
เล็กน้อยเกี่ยวกับจลนศาสตร์

ในการทำให้คนสองเท้าดำเนินการที่เป็นประโยชน์ เช่น การวิ่งและการเดิน จำเป็นต้องตั้งโปรแกรมการเดินแบบต่างๆ ในรูปแบบของเส้นทางการเคลื่อนไหว เส้นทางการเคลื่อนที่คือเส้นทางที่ส่วนท้ายของเอฟเฟกต์ (เท้าในกรณีนี้) เดินทางไปด้วย มีสองวิธีในการบรรลุเป้าหมายนี้:

  1. วิธีหนึ่งคือการป้อนมุมร่วมของมอเตอร์ต่างๆ ในลักษณะแรงเดรัจฉาน วิธีการนี้อาจใช้เวลานาน น่าเบื่อ และเต็มไปด้วยข้อผิดพลาด เนื่องจากการพิจารณาเป็นเพียงภาพ แต่มีวิธีที่ชาญฉลาดกว่าในการบรรลุผลลัพธ์ที่ต้องการ
  2. วิธีที่สองหมุนรอบการป้อนพิกัดของ end effector แทนที่จะเป็นมุมร่วมทั้งหมด นี่คือสิ่งที่เรียกว่า Inverse Kinematics ผู้ใช้ป้อนข้อมูลพิกัดและมุมร่วมปรับเพื่อจัดตำแหน่ง end effector ที่พิกัดที่ระบุ วิธีนี้ถือได้ว่าเป็นกล่องดำที่ใช้เป็นอินพุตพิกัดและส่งออกมุมร่วม สำหรับผู้ที่สนใจในการพัฒนาสมการตรีโกณมิติของกล่องดำนี้ สามารถดูได้จากแผนภาพด้านบน สำหรับผู้ที่ไม่สนใจ สมการได้รับการตั้งโปรแกรมไว้แล้วและสามารถใช้โดยใช้ฟังก์ชัน pos ซึ่งใช้เป็นอินพุต x, z และเอาต์พุตสามมุมที่สอดคล้องกับมอเตอร์

โปรแกรมที่มีฟังก์ชันเหล่านี้สามารถพบได้ในขั้นตอนต่อไป

ขั้นตอนที่ 12: การเขียนโปรแกรม Arduino

การเขียนโปรแกรม Arduino
การเขียนโปรแกรม Arduino
การเขียนโปรแกรม Arduino
การเขียนโปรแกรม Arduino

ก่อนเขียนโปรแกรม Arduino จำเป็นต้องแก้ไขไฟล์เล็กน้อย จำค่าคงที่ที่ฉันขอให้คุณจดบันทึกได้ไหม แก้ไขค่าคงที่เดียวกันกับค่าที่คุณตั้งค่าไว้ในไฟล์ constants.h

หมายเหตุ: หากคุณใช้การออกแบบที่ให้ไว้ในคำแนะนำนี้ คุณจะไม่มีอะไรเปลี่ยนแปลง ในกรณีที่มีบางท่านที่ทำการออกแบบของตนเอง คุณจะต้องเปลี่ยนค่าเพิ่มเติมสองสามค่าพร้อมกับค่าออฟเซ็ต ค่าคงที่ l1 วัดระยะห่างระหว่างเดือยสะโพกและเดือยหัวเข่า ค่าคงที่ l2 วัดระยะห่างระหว่างเดือยเข่าและเดือยข้อเท้า ดังนั้น ถ้าคุณออกแบบแบบจำลองของคุณเอง ให้วัดความยาวเหล่านี้ และแก้ไขค่าคงที่ ค่าคงที่สองค่าสุดท้ายใช้สำหรับการเดิน ค่าคงที่ stepClearance จะวัดความสูงของเท้าที่จะยกขึ้นขณะก้าวไปข้างหน้าหลังจากก้าวหนึ่ง และค่าคงที่ stepHeight จะวัดความสูงจากพื้นถึงสะโพกขณะก้าว

เมื่อค่าคงที่ทั้งหมดได้รับการแก้ไขตามความต้องการของคุณแล้ว คุณสามารถอัปโหลดโปรแกรมหลักได้ โปรแกรมหลักเพียงแค่เริ่มต้นหุ่นยนต์ให้อยู่ในท่าเดินและเริ่มก้าวไปข้างหน้า ฟังก์ชันต่างๆ สามารถปรับเปลี่ยนได้ตามความต้องการของคุณเพื่อสำรวจท่าเดิน ความเร็ว และความยาวของขั้นตอนต่างๆ เพื่อดูว่าสิ่งใดใช้ได้ผลดีที่สุด

ขั้นตอนที่ 13: ผลลัพธ์สุดท้าย: ถึงเวลาทดลอง

ผลลัพธ์สุดท้าย: ถึงเวลาทดลอง
ผลลัพธ์สุดท้าย: ถึงเวลาทดลอง
ผลลัพธ์สุดท้าย: ถึงเวลาทดลอง
ผลลัพธ์สุดท้าย: ถึงเวลาทดลอง
ผลลัพธ์สุดท้าย: ถึงเวลาทดลอง
ผลลัพธ์สุดท้าย: ถึงเวลาทดลอง

คนเดินเท้าสามารถทำตามขั้นตอนต่างๆ ได้ตั้งแต่ 10 ถึง 2 ซม. โดยไม่ต้องพลิกคว่ำ ความเร็วก็สามารถเปลี่ยนแปลงได้ในขณะที่เดินอย่างสมดุล สองขานี้รวมกับพลังของ Arduino ทำให้เป็นแพลตฟอร์มที่แข็งแกร่งเพื่อทดลองกับท่าอื่น ๆ และวัตถุประสงค์อื่น ๆ เช่นการกระโดดหรือการทรงตัวขณะเตะบอล ฉันอยากจะแนะนำให้คุณลองเปลี่ยนเส้นทางการเคลื่อนไหวของขาเพื่อสร้างท่าเดินของคุณเอง และค้นหาว่าท่าต่างๆ ส่งผลต่อประสิทธิภาพของหุ่นยนต์อย่างไร สามารถเพิ่มเซ็นเซอร์ เช่น IMU และเซ็นเซอร์วัดระยะทางลงในระบบเพื่อเพิ่มฟังก์ชันการทำงาน ในขณะที่สามารถเพิ่มเซ็นเซอร์แรงที่ขาเพื่อทดลองกับการเคลื่อนไหวแบบไดนามิกบนพื้นผิวที่ไม่เรียบ

หวังว่าคุณจะสนุกกับคำแนะนำนี้และเพียงพอแล้วสำหรับแรงบันดาลใจในการสร้างของคุณเอง หากคุณชอบโปรเจ็กต์ โปรดสนับสนุนโดยลงคะแนนใน "Arduino Contest"

มีความสุขในการทำ!

Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020

รางวัลที่หนึ่งในการประกวด Arduino 2020

แนะนำ: