Kiểm tra một spoonBot#
spoonBot là một robot dẫn động vi sai đơn giản với một cái thìa được kết nối với một servo cho phép nó pan và tilt. Xem trang spoonBot-Construction để biết thông tin về việc chế tạo spoonBot. Chương trình mẫu đi kèm với bản phân phối cc3 mới nhất chứa mã mẫu minh họa cách di chuyển spoonBot cũng như chạy chế độ spoonBot Demo. Chế độ spoonBot Demo tương tự chế độ demo CMUcam2 chỉ khác là nó sử dụng spoonBot để pan và tilt.
Hiệu Chỉnh spoonBot#
Trước khi sử dụng spoonBot, bạn cần hiệu chỉnh các cài đặt servo của mình. Điều này được thực hiện bằng cách đặt cấu trúc dữ liệu sau ở đầu 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);
Nạp firmware giả lập cmucam2 lên camera
Mở hoặc CMUcam3 Frame Grabber hoặc một Chương Trình Terminal
Sử dụng Frame Grabber, đi tới bảng "Settings" và kéo các thanh servo để thay đổi các giá trị
Trong một terminal, gõ "sv <servo-id> <servo-value>" để đặt các servo ví dụ:
:sv 0 77 ACK
Tìm vị trí giữa của Servo 0 và 1 bằng cách điều chỉnh chúng cho đến khi các bánh xe dừng lại
my_cal.left_mid = <giá trị từ servo 0>
my_cal.righ_mid = <giá trị từ servo 1>
Bây giờ bạn cần tìm dấu của các hướng
Khi nhìn spoonBot từ phía sau (thìa hướng về phía bạn), hãy thử giảm số servo 0 vốn là bánh xe bên trái
nếu servo quay theo chiều kim đồng hồ / lùi (về phía bạn) thì left_dir nên được đặt thành 1
nếu servo quay ngược chiều kim đồng hồ, left_dir nên được đặt thành -1
Lặp lại cho servo 1 (vốn là bánh xe bên phải theo góc nhìn của spoonBot)
nếu servo quay theo chiều kim đồng hồ / lùi (về phía bạn) thì right_dir nên được đặt thành 1
nếu servo quay ngược chiều kim đồng hồ, right_dir nên được đặt thành -1
Thông thường, một servo nên được đặt thành âm!
Bây giờ tìm các vị trí thìa Min, Middle và Max bằng cách điều chỉnh Servo 2
Min nên là giá trị nhỏ nhất đẩy thìa xuống và do đó nghiêng spoonBot về phía trước
Đặt spoon_down tương ứng
Max thường là 255 và sẽ đặt spoonBot nhìn lên cao nhất có thể
Đặt spoon_up tương ứng
Middle là giá trị làm cho servo ở vị trí cân bằng
Đặt spoon_mid tương ứng
Nếu Min và Max có vẻ bị đảo ngược, hãy đổi spoon_dir thành -1
Một khi việc hiệu chỉnh hoàn tất, hãy biên dịch lại dự án và NẠP FIRMWARE cho CMUcam3. Đầu tiên spoonBot sẽ đi qua một chuỗi các chuyển động theo kịch bản để chắc chắn rằng các servo được thiết lập chính xác. Sau đó spoonBot sẽ chờ một lần nhấn nút để bắt đầu theo dõi một màu. Văn bản được hiển thị qua cổng serial thông báo cho bạn về các giai đoạn hoạt động khác nhau.
Chuyển động theo kịch bản nên như sau:
Ngồi Yên
Nhìn Xuống
Nhìn Lên
Trở Về Vị Trí Giữa
Xoay Theo Chiều Kim Đồng Hồ (nhìn từ trên xuống)
Xoay Ngược Chiều Kim Đồng Hồ
Led đỏ tắt trong khi camera sẵn sàng
Led đỏ bật khi sẵn sàng theo dõi
Nếu điều này trông chính xác, thì hãy thử giữ một đối tượng có màu sắc rực rỡ cách camera vài inch phía trước rồi nhấn nút. Khi bạn kéo đối tượng ra xa, spoonBot sẽ xoay về phía nó. Hãy sử dụng các đối tượng có màu sắc rực rỡ và đồng nhất về màu nhất có thể. Một đối tượng như một tấm vải màu đỏ tươi sẽ hoạt động tốt vì nó phản chiếu rất ít ánh sáng (ngoài màu đỏ thuần túy). Chắc chắn rằng có đủ ánh sáng trong phòng. Hãy thử chụp một khung hình để xem điều kiện trông như thế nào.
Lưu ý: Nếu bạn muốn vô hiệu hóa các servo mà không rút chúng ra, hãy ngắt kết nối servo-power-jumper.