การคาลิเบรทด้วย Arduino IDE

การคาลิเบรทเป็นสิ่งสำคัญในการทำงานของหุ่นยนต์

หุ่นยนต์ที่ประกอบไว้ล่วงหน้าจะติดตั้งขาไว้อย่างถูกต้อง แต่ไม่มีการคาลิเบรทแบบละเอียด

ตรวจสอบให้แน่ใจว่าคุณได้อัปโหลดเฟิร์มแวร์ฟังก์ชันหลักของ OpenCat Main function firmware ก่อนทำการคาลิเบรท

การเข้าสู่โหมดการ calibrate ต้องมีการเตรียมการดังต่อไปนี้:

1. วงจรเซอร์โวทั้งหมดเชื่อมต่อกับเมนบอร์ด

2. แบตเตอรี่ชาร์จเต็มแล้ว

3. เชื่อมต่ออะแดปเตอร์ USB adapter และสื่อสารตามปกติ

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

การ calibrate มี 4 ขั้นตอน:

1.เขียนค่าคงที่ไปยัง Nyboard (สำหรับเฟิร์มแวร์ 1.0 เท่านั้น)

2.เปิดหุ่นยนต์ด้วยแบตเตอรี่ ปล่อยให้เซอร์โวหมุนได้อย่างอิสระจนถึงมุมศูนย์/สถานะการ calibration

3. แนบส่วนต่าง ๆ ของร่างกายเข้ากับเซอร์โว

4. ปรับออฟเซ็ตอย่างละเอียดบน serial monitor

ตรรกะเบื้องหลังการ logic behind calibration สามารถพบได้ใน OpenCat forum หลักการเหมือนกันสำหรับ Nybble และ Bittle

1. Write constants

ขั้นตอนนี้ใช้สำหรับเฟิร์มแวร์ 1.0 เท่านั้น

1.1. มีค่าคงที่ 3 ประเภทที่จะบันทึกลงใน NyBoard

  1. Assembly-related เช่น การแม็ปข้อต่อ ทิศทางการหมุน และพินเซ็นเซอร์ ค่อนข้างคงที่และส่วนใหญ่กำหนดไว้ใน OpenCat.h และเก็บไว้ใช้กับหุ่นยนต์ในอนาคต

  2. พารามิเตอร์ที่เกี่ยวข้องกับการ Calibration เช่น MPU6050 offsets และการแก้ไขข้อต่อ มีการวัดตามเวลาจริงและบันทึกไว้ใน onboard EEPROM ต้องตั้งค่าเพียงครั้งเดียว

  3. ข้อมูลที่เกี่ยวข้องกับทักษะ เช่น ท่าทาง การเดิน และพฤติกรรมที่ตั้งโปรแกรมไว้ล่วงหน้า ส่วนใหญ่กำหนดไว้ใน InstinctNybble.h / InstinctBittle.h คุณสามารถเพิ่มทักษะที่กำหนดเองได้เช่นกัน

1.2. Upload and run WriteInstinct.ino

บทบาทของ WriteInstinct.ino คือการเขียนค่าคงที่ลงบนบอร์ดหรือ I2C EEPROM และบันทึกค่าการ calibration จะถูกเขียนทับโดย OpenCat.ino ในภายหลัง

หลังจากที่คุณอัปโหลด WriteInstinct.ino ผ่าน Arduino IDE ให้เปิด serial monitor

คุณจะเห็นคำถามหลายข้อ:

Reset all joint calibration? (Y/n)

หากคุณไม่เคย calibrate ข้อต่อ หรือหากคุณต้องการ calibrate เซอร์โวใหม่โดยเริ่มต้นใหม่ ให้พิมพ์ 'Y' กับคำถาม

Do you need to update Instincts? (Y/n)

หากคุณได้แก้ไข Instinct.h ไม่ว่าด้วยวิธีใดก็ตาม คุณควรพิมพ์ 'Y' แม้ว่าจะไม่จำเป็นเสมอไปเมื่อคุณมีความเข้าใจ เกี่ยวกับการจัดการหน่วยความจำแล้ว

Calibrate MPU? (Y/n)

หากคุณไม่เคย calibrate MPU6050 เช่น gyro/accelerometer sensor ให้พิมพ์ 'Y'

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

1.3. Upload OpenCat.ino

คุณต้องอัปโหลด OpenCat.ino เพื่อบันทึกค่าคงที่ล่าสุดและเปิดใช้งานฟังก์ชันสาธิต

2 Enter calibration mode

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

พิมพ์ 'c' ใน serial monitor เพื่อเข้าสู่โหมดการ calibration ขึ้นอยู่กับทิศทางของเพลาเริ่มต้น บางตัวอาจเดินทางในมุมที่ใหญ่ขึ้นจนกระทั่งหยุดที่จุดกึ่งกลาง จะมีเสียงรบกวนมาจากระบบเกียร์ของเซอร์โว คุณจะเห็นตารางการ calibration ดังต่อไปนี้:

แถวแรกคือ index ของข้อต่อ แถวที่สองคือออฟเซ็ตการ calibration:

Index

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Offset

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

ค่าเริ่มต้นคือ "-1" หรือ "0" และควรเปลี่ยนภายหลังการ calibration

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

3 The rationale for calibration

3.1 เข้าใจสถานะศูนย์และระบบพิกัด

หลังจากพิมพ์ 'c' ใน serial monitor โดยเซอร์โวทั้งหมดหมุนไปที่มุมศูนย์ ตอนนี้ติดส่วนหัว หาง และขาที่เตรียมไว้ในส่วนก่อนหน้าเข้ากับลำตัว โดยทั่วไปจะตั้งฉากกับโครงร่างที่เชื่อมโยงกัน ท่าเทียบมาตรฐานแสดงไว้ด้านล่าง:

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

การหมุนแขนขาทวนเข็มนาฬิกาจากสถานะศูนย์จะเป็นค่าบวก (เหมือนกับในพิกัดเชิงขั้ว) เมื่อมองจากด้านซ้ายของตัวหุ่นยนต์ การหมุนทวนเข็มนาฬิกาของข้อต่อถูกกำหนดให้เป็นทิศทางบวก

ยกเว้นอย่างเดียวคือมุมเอียงสำหรับหัวของ Nybble เป็นเรื่องปกติที่จะพูดว่า head up เป็นผลมาจากการหมุนตามเข็มนาฬิกา

แต่จากด้านขวาของตัวหุ่นยนต์ ทิศทางการหมุนที่เป็นบวกและลบนั้นตรงกันข้ามกัน

3.2 ช่วงมุมที่ไม่ต่อเนื่อง

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

4 การ calibration อย่างละเอียดโดยใช้ serial monitor

4.1 คำสั่งควบคุมข้อต่อ

คำสั่งสำหรับการ calibration แบบละเอียด (อ้างอิงจาก serial protocol) มีรูปแบบเป็น cIndex Offset. โปรดสังเกตว่ามีช่องว่างระหว่าง cIndex และ Offset หมายเลขข้อต่อของหุ่นยนต์แสดงในภาพด้านล่าง:

Nybble
Bittle

ตัวอย่างเช่น :

  • c8 6 หมายถึงให้เซอร์โวตัวที่ 8 มีออฟเซ็ต 6 องศา

  • c0 -4 หมายถึงการให้เซอร์โวตัวที่ 0 (ส่วนหัว) ชดเชย -4 องศา

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

ตัวอย่างเช่น หากคุณต้องใช้ -9 เป็นค่าการ calibration ให้ถอดขาออก หมุนด้วยฟันซี่เดียวแล้วติดกลับเข้าไปใหม่ ค่าการ calibration ใหม่ควรอยู่ที่ประมาณ 5 หลีกเลี่ยงการหมุนแกนเซอร์โวระหว่างการปรับนี้

ค้นหาค่าออฟเซ็ตที่ดีที่สุดที่สามารถนำแขนขาไปสู่สถานะศูนย์ได้ เป็นกระบวนการลองผิดลองถูก

หลังจากการ calibration อย่าลืมพิมพ์ 's' เพื่อบันทึกค่าออฟเซ็ต มิฉะนั้นจะถูกลืมเมื่อออกจากสถานะการ calibration คุณยังสามารถบันทึกทุกครั้งหลังจากที่คุณทำการ calibration เซอร์โวตัวเดียวเสร็จแล้ว

4.2 Use ‘L’ shaped joint tuner

การสังเกตจะเปลี่ยนมุมมองต่างๆ นั่นเป็นเหตุผลที่เราต้องการอ่านโดยตรงเหนือไม้บรรทัดอ้างอิงเมื่อทำการวัดความยาว

สิ่งสำคัญอย่างยิ่งคือคุณต้องมีมุมมองที่ขนานกันเมื่อปรับเทียบ Bittle ใช้จูนเนอร์ข้อต่อรูปตัว 'L' เป็นข้อมูลอ้างอิงแบบขนานเพื่อหลีกเลี่ยงข้อผิดพลาดในการอ่าน วางปลายบนจูนเนอร์ให้ตรงกับกึ่งกลางของสกรูที่ข้อต่อไหล่และข้อเข่า และรูเล็กๆ ที่ปลายเท้า ดูตามแกนร่วมของศูนย์ สำหรับขาแต่ละข้าง ให้ปรับเทียบเซอร์โวไหล่ (หมายเลข 811) ก่อน จากนั้นจึงปรับเซอร์โวเข่า (หมายเลข 1215) เมื่อปรับเทียบข้อเข่า ให้ใช้ช่องสามเหลี่ยมที่ตรงกันทั้งบนตัวปรับจูนและด้ามเพื่อให้แน่ใจว่าจัดแนวขนานกัน

Nybble

Bittle

Align the upper leg first
Pay attention to the reference edges for the lower leg

4.3 การทดสอบและการตรวจสอบความถูกต้อง

หลังจากการ calibration พิมพ์ ‘d’ หรือ ‘kbalance’ เพื่อตรวจสอบการ calibration มันจะส่งผลให้ Bittle / Nybble ขยับแขนขาอย่างสมมาตรระหว่างสถานะพักและสถานะยืน

คุณอาจต้องทำการ calibration สองถึงสามรอบเพื่อให้ได้สถานะที่เหมาะสมที่สุด

ยกตัวอย่าง Bittle ดังนี้:

4.4 Center of mass

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

คุณอาจต้อง calibrate ใหม่หากมีการเปลี่ยนแปลงจุดศูนย์กลางมวล

โปรดอย่าบังคับให้หุ่นยนต์เพิ่มของหนัก ซึ่งอาจทำให้เซอร์โวติดขัดได้

Last updated

Was this helpful?