ฉันจะแก้ไข servo อดิเรกราคาถูกเพื่อให้เรียกใช้ 'อิสระ' ได้อย่างไร


15

ฉันมีเซอร์โวงานอดิเรก ( Power HD 1501MGs ) และฉันต้องการควบคุมพวกมัน (ผ่าน Arduino) ดังนั้นพวกเขาจะไปที่มุมที่ฉันตั้งไว้หรือวางในโหมด 'วิ่งฟรี' ที่ที่โหลดจะพาไปทุกที่ที่ไป

สิ่งนี้เป็นไปได้หรือไม่หรือว่าฉันจะต้องถอดเกียร์ออก?

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

หากเป็นไปได้ฉันกำลังดูการเปลี่ยนแปลงฮาร์ดแวร์หรือฉันสามารถทำได้ในซอฟต์แวร์หรือไม่?


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

1
ฉันเดาว่าคำถามต่อไปของฉันที่นี่จะเป็น 'อะไรคือ h-bridge' (แต่ฉันจะลอง google ก่อน!)
Khrob

คำตอบ:


13

สิ่งที่คุณถามไม่ใช่เรื่องง่ายสำหรับเซอร์โว RC มาตรฐาน

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

อะไรทำให้คุณไม่ขับรถกลับ สองสิ่ง:

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

backdrivability

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

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

Maxon ESCON

คอนโทรลเลอร์เซอร์โว 'เหมาะสม' (เช่นESCONจาก Maxon) มีตัวควบคุมกระแสซึ่งสามารถป้องกันการไหลของกระแสได้โดยใช้แรงดันที่ถูกต้องที่ขั้วมอเตอร์ การเปลี่ยนอุปกรณ์อิเล็กทรอนิกส์ในเซอร์โวด้วยสิ่งที่สามารถควบคุมกระแสได้อาจช่วยได้จริงๆ

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


คำตอบของ SimpleCoder ก็ยอดเยี่ยมเช่นกัน
Khrob

7

คำถามที่น่าสนใจ

ตัวเลือกแรกที่ฉันจะตรวจสอบคือลดกำลังไฟตามที่คุณแนะนำ (อาจควบคุม MOSFET ในซอฟต์แวร์เพื่อเปลี่ยนพลังงาน)

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

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

ป้อนคำอธิบายรูปภาพที่นี่

ภาพจาก SparkFun


@Khrob: โปรดดูการแก้ไขของฉัน
Chris Laplante

Nice - ตอนนี้ฉันสั่งพวงของมัน!
Khrob

@ Khhrob: ดีแจ้งให้เราทราบว่าพวกเขาทำงานอย่างไร! (และโปรดอย่าโทษฉันหากไม่ได้ผล;))
Chris Laplante

@ Khhrob: โปรดทราบว่าขึ้นอยู่กับว่าคุณกำลังวัดกระแสเล็ก ๆ คุณอาจต้องใช้บอร์ดที่ละเอียดอ่อนมากขึ้น: sparkfun.com/products/8883
Chris Laplante

1
ฉันจะเริ่มต้นที่ถูกและทำงานของฉัน!
Khrob

5

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

ส่วนใหญ่คุณสามารถค้นหาออนไลน์อย่างรวดเร็วสำหรับ "การปรับเปลี่ยนอย่างต่อเนื่องสำหรับ x servo" แต่ฉันจะสรุปกระบวนการทั่วไปที่นี่

  • ตรวจสอบว่าเซอร์โวมีการหยุดทางกายภาพ ถ้าเป็นเช่นนั้นคุณจะต้องเปิดเซอร์โวและลบออก (ฉันแนะนำเครื่องมือ Dremel)
  • จากนั้นคุณต้องการค้นหา "ศูนย์กลาง" ของกลไกการตอบรับ
    • เชื่อมต่อเซอร์โวกับ Arduino ของคุณและส่งคำสั่ง "center" (ปกติคือ PWM 127)
    • ค้นหากลไกการป้อนกลับ (โดยทั่วไปคือโพเทนชิออมิเตอร์) และตัดมันจนกว่าเซอร์โวจะไม่เคลื่อนที่เลย
    • กาวโพเทนชิออมิเตอร์ในสถานที่หรือวัดความต้านทานและเปลี่ยนโพเทนชิออมิเตอร์ด้วยค่าความต้านทานที่กำหนด
  • ประกอบเซอร์โวอีกครั้ง

ตอนนี้การส่งคำสั่ง "center" ไปยังเซอร์โวควรหยุดไม่ให้ย้ายขณะที่ส่งคำสั่งบวกหรือลบควรทำให้คำสั่งหมุนอย่างต่อเนื่องในทิศทางเดียวหรืออีกทิศทางหนึ่ง ความเร็วในการหมุนควรเป็นสัดส่วนกับ "ระยะทาง" จากกึ่งกลางของคำสั่งที่ส่ง

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

หรือคุณอาจต้องการดูชุดเซอร์โวDynamixelซึ่งช่วยให้สามารถดำเนินการต่อเนื่องและต่อเนื่องรวมถึงการรองรับ Arduino


ฉันพอใจกับการ จำกัด กลไกให้กับการเคลื่อนไหว แต่นี่จะเป็นวิธีที่ดีในการขยายให้ดียิ่งขึ้นเพื่อให้มีรอยร้าวที่การตั้งค่าลูกตุ้มแบบกลับหัว! ฉันได้ดูสิ่งต่าง ๆ ของ Dynamixel แล้วมันเจ๋งมาก แต่ก็มีค่ามากกว่าที่ฉันคาดหวังไว้
Khrob

ความประทับใจของฉันคือ OP ต้องการเริ่มเคลื่อนไหวโดยขับเซอร์โวแล้วปล่อยให้มัน "ชายฝั่ง" โดยไม่มีอำนาจจนกว่ามันจะหยุดจากแรงเฉื่อยตามธรรมชาติ ฉันไม่รู้การออกแบบเซอร์โว (ต่อเนื่องหรือไม่) ที่จะทำให้เกิดผลกระทบนี้
Crake

@ Crake ฉันเห็นด้วยฉันเชื่อว่าฉันตอบคำถามผิด แต่ฉันจะทิ้งเรื่องนี้ไว้ตั้งแต่ฉันทำงานไปแล้ว: p IIRC เซอร์โว Dynamixel ควรมีการตั้งค่า "ชายฝั่ง"
mjcarroll

@mjcarroll ใช่ฉันคิดว่ามันมีประโยชน์ที่จะกล่าวถึงวิธีการปรับเปลี่ยนเซอร์โวสำหรับการหมุนอย่างต่อเนื่องเนื่องจากเป็นงานทั่วไปสำหรับโครงการหุ่นยนต์ราคาถูก ฉันอยากรู้ว่าเซอร์โว Dynamixel ใช้อัลกอริธึมการวัดในปัจจุบันที่อธิบายไว้ในคำตอบ SimpleCoder ของการค้นหาอย่างต่อเนื่องเพื่อลดกระแสโดยการปรับ PWM หรือถ้าพวกเขามีคลัตช์ทางกายภาพเพื่อปลดมอเตอร์เซอร์โวจากเพลาขับ
Crake

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.