Einen SpoonBot testen#

spoonBot ist ein einfacher Differentialantriebsroboter mit einem Löffel, der mit einem Servo verbunden ist, wodurch er schwenken und neigen kann. Informationen zum Bau von spoonBot finden Sie auf der Seite spoonBot-Konstruktion. Das Beispielprogramm, das mit der neuesten cc3-Distribution geliefert wird, enthält Beispielcode, der zeigt, wie man spoonBot bewegt und den spoonBot-Demomodus ausführt. Der spoonBot-Demomodus ähnelt dem CMUcam2-Demomodus, nur dass er spoonBot zum Schwenken und Neigen verwendet.

Kalibrieren des spoonBot#

Bevor Sie spoonBot verwenden, müssen Sie Ihre Servoeinstellungen kalibrieren. Dies geschieht durch Festlegen der folgenden Datenstruktur am Anfang von 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);
  • Flashen Sie die CMUcam2-Emulations-Firmware auf die Kamera

  • Öffnen Sie entweder den CMUcam3 Frame Grabber oder ein Terminalprogramm

    • Gehen Sie im Frame Grabber zum Bedienfeld „Settings“ und ziehen Sie die Servo-Balken, um die Werte zu ändern

    • Geben Sie in einem Terminal „sv <servo-id> <servo-value>“ ein, um die Servos einzustellen, zum Beispiel:

      :sv 0 77
      ACK
      
  • Ermitteln Sie die Mittelstellung der Servos 0 und 1, indem Sie sie einstellen, bis die Räder stehen bleiben

    • my_cal.left_mid = <Wert von Servo 0>

    • my_cal.righ_mid = <Wert von Servo 1>

  • Nun müssen Sie das Vorzeichen der Richtungen finden

    • Betrachten Sie den spoonBot von hinten (Löffel zu Ihnen gerichtet) und versuchen Sie, die Servo-0-Nummer zu verringern, was das linke Rad sein sollte

      • wenn sich der Servo im Uhrzeigersinn / rückwärts (auf Sie zu) dreht, dann sollte left_dir auf 1 gesetzt werden

      • wenn sich der Servo gegen den Uhrzeigersinn dreht, sollte left_dir auf -1 gesetzt werden

    • Wiederholen Sie dies für Servo 1 (was aus spoonBots Sicht das rechte Rad sein sollte)

      • wenn sich der Servo im Uhrzeigersinn / rückwärts (auf Sie zu) dreht, dann sollte right_dir auf 1 gesetzt werden

      • wenn sich der Servo gegen den Uhrzeigersinn dreht, sollte right_dir auf -1 gesetzt werden

    • Normalerweise sollte ein Servo auf negativ eingestellt werden!

  • Finden Sie nun die Min-, Mittel- und Max-Löffelpositionen durch Anpassen von Servo 2

    • Min sollte der kleinste Wert sein, der den Löffel nach unten drückt und somit den spoonBot nach vorne kippt

      • Stellen Sie spoon_down entsprechend ein

    • Max ist normalerweise 255 und sollte den spoonBot so weit wie möglich nach oben blicken lassen

      • Stellen Sie spoon_up entsprechend ein

    • Middle ist der Wert, der den Servo waagerecht stellt

      • Stellen Sie spoon_mid entsprechend ein

    • Wenn Min und Max vertauscht zu sein scheinen, ändern Sie spoon_dir auf -1

Sobald die Kalibrierung abgeschlossen ist, kompilieren Sie das Projekt neu und FLASHEN Sie die CMUcam3. spoonBot durchläuft zunächst eine Sequenz von skriptgesteuerten Bewegungen, um sicherzustellen, dass die Servos korrekt eingerichtet sind. Dann wartet spoonBot auf einen Tastendruck, um mit dem Verfolgen einer Farbe zu beginnen. Über den seriellen Port wird Text angezeigt, der Sie über die verschiedenen Betriebsphasen informiert.

Die skriptgesteuerte Bewegung sollte wie folgt sein:

  • Stillsitzen

  • Nach unten schauen

  • Nach oben schauen

  • Zurück zur Mittelposition

  • Im Uhrzeigersinn drehen (von oben betrachtet)

  • Gegen den Uhrzeigersinn drehen

  • Rote LED aus, während die Kamera sich vorbereitet

  • Rote LED schaltet sich ein, wenn bereit zum Verfolgen

Wenn dies korrekt aussieht, versuchen Sie, ein leuchtend farbiges Objekt einige Zentimeter vor die Kamera zu halten und dann die Taste zu drücken. Wenn Sie das Objekt wegziehen, sollte sich der spoonBot in seine Richtung drehen. Verwenden Sie leuchtend farbige Objekte, die so gleichmäßig in der Farbe wie möglich sind. Ein Objekt wie ein leuchtend rotes Tuch würde gut funktionieren, da es sehr wenig Licht reflektiert (außer dem reinen Rot). Stellen Sie sicher, dass genügend Beleuchtung im Raum vorhanden ist. Versuchen Sie, ein Bild aufzunehmen, um zu sehen, wie die Bedingungen aussehen.

Hinweis: Wenn Sie Servos deaktivieren möchten, ohne sie auszustecken, trennen Sie den Servo-Power-Jumper.