การทดสอบ 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 ควรจะหมุนเข้าหามัน ใช้วัตถุที่มีสีสดใสที่มีสีสม่ำเสมอที่สุดเท่าที่จะเป็นไปได้ วัตถุอย่างผ้าสีแดงสดจะใช้งานได้ดีเพราะมันสะท้อนแสงน้อยมาก (นอกเหนือจากสีแดงบริสุทธิ์) ตรวจสอบให้แน่ใจว่ามีแสงเพียงพอในห้อง ลองจับเฟรมเพื่อดูว่าสภาพเป็นอย่างไร
หมายเหตุ: หากคุณต้องการปิดใช้งานเซอร์โวโดยไม่ถอดปลั๊ก ให้ถอดจัมเปอร์เซอร์โว-พาวเวอร์ออก