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).