การทดสอบ spoonBot#

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

การปรับเทียบ spoonBot#

ก่อนใช้ spoonBot คุณต้องปรับเทียบการตั้งค่าเซอร์โวของคุณ ซึ่งทำได้โดยการตั้งค่าโครงสร้างข้อมูลต่อไปนี้ที่ด้านบนของ main:

// SpoonBot Calibration Points
 //   Assume Left = Servo 0
 //   Assume Right = Servo 1
 //   Assume Spoon = Servo 2
 my_cal.left_mid = 71;
 my_cal.right_mid = 77;
 my_cal.spoon_down = 100;
 my_cal.spoon_mid = 202;
 my_cal.spoon_up = 255;
 my_cal.left_dir = 1;
 my_cal.right_dir = -1;
 my_cal.spoon_dir = 1;
 // Set the calibration points
 spoonBot_calibrate (my_cal);
  • แฟลชเฟิร์มแวร์การจำลอง cmucam2 ลงบนกล้อง

  • เปิด CMUcam3 Frame Grabber หรือโปรแกรมเทอร์มินัลอย่างใดอย่างหนึ่ง

    • การใช้ Frame Grabber ไปที่แผง "Settings" และลากแถบเซอร์โวเพื่อเปลี่ยนค่า

    • ในเทอร์มินัล พิมพ์ "sv <servo-id> <servo-value>" เพื่อตั้งค่าเซอร์โว ตัวอย่างเช่น:

      :sv 0 77
      ACK
      
  • หาตำแหน่งกลางของ Servo 0 และ 1 โดยการปรับจนกว่าล้อจะหยุด

    • my_cal.left_mid = <ค่าจากเซอร์โว 0>

    • my_cal.righ_mid = <ค่าจากเซอร์โว 1>

  • ตอนนี้คุณต้องหาเครื่องหมายของทิศทาง

    • เมื่อมอง spoonBot จากด้านหลัง (ช้อนหันเข้าหาคุณ) ลองลดหมายเลขเซอร์โว 0 ซึ่งควรจะเป็นล้อซ้าย

      • หากเซอร์โวหมุนตามเข็มนาฬิกา / ถอยหลัง (เข้าหาคุณ) ควรตั้งค่า left_dir เป็น 1

      • หากเซอร์โวหมุนทวนเข็มนาฬิกา ควรตั้งค่า left_dir เป็น -1

    • ทำซ้ำสำหรับเซอร์โว 1 (ซึ่งควรจะเป็นล้อขวาจากมุมมองของ spoonBot)

      • หากเซอร์โวหมุนตามเข็มนาฬิกา / ถอยหลัง (เข้าหาคุณ) ควรตั้งค่า right_dir เป็น 1

      • หากเซอร์โวหมุนทวนเข็มนาฬิกา ควรตั้งค่า right_dir เป็น -1

    • โดยปกติ เซอร์โวหนึ่งตัวควรถูกตั้งค่าเป็นค่าลบ!

  • ตอนนี้หาตำแหน่งช้อน Min, Middle และ Max โดยการปรับ Servo 2

    • Min ควรเป็นค่าที่น้อยที่สุดที่ดันช้อนลงและทำให้ spoonBot เอียงไปข้างหน้า

      • ตั้งค่า spoon_down ตามนั้น

    • Max มักเป็น 255 และควรวางตำแหน่ง spoonBot ให้มองขึ้นสูงที่สุดเท่าที่จะเป็นไปได้

      • ตั้งค่า spoon_up ตามนั้น

    • Middle คือค่าที่ทำให้เซอร์โวอยู่ในระดับ

      • ตั้งค่า spoon_mid ตามนั้น

    • หาก Min และ Max ดูเหมือนจะกลับด้าน ให้เปลี่ยน spoon_dir เป็น -1

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

การเคลื่อนไหวตามสคริปต์ควรเป็นดังนี้:

  • อยู่นิ่ง ๆ

  • มองลง

  • มองขึ้น

  • กลับสู่ตำแหน่งกลาง

  • หมุนตามเข็มนาฬิกา (เมื่อมองจากด้านบน)

  • หมุนทวนเข็มนาฬิกา

  • LED สีแดงดับในขณะที่กล้องเตรียมพร้อม

  • LED สีแดงติดเมื่อพร้อมติดตาม

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

หมายเหตุ: หากคุณต้องการปิดใช้งานเซอร์โวโดยไม่ถอดปลั๊ก ให้ถอดจัมเปอร์เซอร์โว-พาวเวอร์ออก