Testowanie spoonBota#
spoonBot to prosty robot z napędem różnicowym z łyżką połączoną z serwem, która pozwala mu na obrót (pan) i pochylenie (tilt). Zobacz stronę spoonBot-Construction, aby uzyskać informacje o budowaniu spoonBota. Przykładowy program dołączony do najnowszej dystrybucji cc3 zawiera przykładowy kod demonstrujący, jak poruszać spoonBotem, a także jak uruchomić tryb demo spoonBota. Tryb demo spoonBota jest podobny do trybu demo CMUcam2, tyle że używa spoonBota do obrotu (pan) i pochylenia (tilt).
Kalibracja spoonBota#
Przed użyciem spoonBota musisz skalibrować ustawienia serw. Robi się to, ustawiając następującą strukturę danych na górze funkcji 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);
Wgraj firmware emulacji cmucam2 na kamerę
Otwórz CMUcam3 Frame Grabber lub program terminalowy
Za pomocą Frame Grabber przejdź do panelu „Settings” i przeciągnij suwaki serw, aby zmienić wartości
W terminalu wpisz „sv <servo-id> <servo-value>”, aby ustawić serwa, na przykład:
:sv 0 77 ACK
Znajdź środkową pozycję serw 0 i 1, regulując je, aż koła się zatrzymają
my_cal.left_mid = <wartość z serwa 0>
my_cal.righ_mid = <wartość z serwa 1>
Teraz musisz znaleźć znak kierunków
Patrząc na spoonBota od tyłu (łyżka skierowana ku Tobie), spróbuj obniżyć numer serwa 0, które powinno być lewym kołem
jeśli serwo obraca się zgodnie z ruchem wskazówek zegara / do tyłu (w Twoją stronę), to left_dir powinno być ustawione na 1
jeśli serwo obraca się przeciwnie do ruchu wskazówek zegara, left_dir powinno być ustawione na -1
Powtórz dla serwa 1 (które powinno być prawym kołem z punktu widzenia spoonBota)
jeśli serwo obraca się zgodnie z ruchem wskazówek zegara / do tyłu (w Twoją stronę), to right_dir powinno być ustawione na 1
jeśli serwo obraca się przeciwnie do ruchu wskazówek zegara, right_dir powinno być ustawione na -1
Zwykle jedno serwo powinno być ustawione na wartość ujemną!
Teraz znajdź pozycje łyżki Min, Middle i Max, regulując Servo 2
Min powinno być najmniejszą wartością, która wciska łyżkę w dół, a tym samym przechyla spoonBota do przodu
Ustaw odpowiednio spoon_down
Max to zwykle 255 i powinno ustawić spoonBota tak, aby patrzył jak najdalej w górę
Ustaw odpowiednio spoon_up
Middle to wartość, która ustawia serwo w poziomie
Ustaw odpowiednio spoon_mid
Jeśli Min i Max wydają się być zamienione, zmień spoon_dir na -1
Po zakończeniu kalibracji skompiluj ponownie projekt i wgraj go (FLASH) na CMUcam3. spoonBot najpierw wykona sekwencję zaplanowanych ruchów, aby upewnić się, że serwa są poprawnie skonfigurowane. Następnie spoonBot będzie czekał na naciśnięcie przycisku, aby rozpocząć śledzenie koloru. Przez port szeregowy wyświetlany jest tekst informujący Cię o różnych etapach działania.
Zaplanowany ruch powinien wyglądać następująco:
Siedź nieruchomo
Patrz w dół
Patrz w górę
Powrót do pozycji środkowej
Obróć zgodnie z ruchem wskazówek zegara (patrząc z góry)
Obróć przeciwnie do ruchu wskazówek zegara
Czerwona dioda LED wyłączona, gdy kamera się przygotowuje
Czerwona dioda LED zapala się, gdy jest gotowa do śledzenia
Jeśli to wygląda poprawnie, spróbuj przytrzymać jaskrawo kolorowy obiekt kilka cali przed kamerą, a następnie naciśnij przycisk. Gdy odsuwasz obiekt, spoonBot powinien obrócić się w jego kierunku. Używaj jaskrawo kolorowych obiektów, które są jak najbardziej jednolite w kolorze. Obiekt taki jak jaskrawoczerwona tkanina sprawdziłby się dobrze, ponieważ odbija bardzo mało światła (poza czystą czerwienią). Upewnij się, że w pomieszczeniu jest wystarczające oświetlenie. Spróbuj przechwycić klatkę, aby zobaczyć, jak wyglądają warunki.
Uwaga: Jeśli chcesz wyłączyć serwa bez ich odłączania, rozłącz zworkę zasilania serwa (servo-power-jumper).