Prueba de un spoonBot#

spoonBot es un sencillo robot de tracción diferencial con una cuchara conectada a un servo que le permite hacer panorámica e inclinación. Consulte la página spoonBot-Construction para obtener información sobre la construcción del spoonBot. El programa de muestra que viene con la última distribución de cc3 contiene código de muestra que demuestra cómo mover el spoonBot así como ejecutar el modo demostración del spoonBot. El modo demostración del spoonBot es similar al modo demostración de la CMUcam2, solo que usa el spoonBot para hacer panorámica e inclinación.

Calibración del spoonBot#

Antes de usar spoonBot, necesita calibrar la configuración de sus servos. Esto se hace estableciendo la siguiente estructura de datos al principio de 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);
  • Grabe el firmware de emulación de la cmucam2 en la cámara

  • Abra el CMUcam3 Frame Grabber o un programa de terminal

    • Usando el Frame Grabber, vaya al panel «Settings» y arrastre las barras de servo para cambiar los valores

    • En un terminal, escriba «sv <servo-id> <servo-value>» para configurar los servos, por ejemplo:

      :sv 0 77
      ACK
      
  • Encuentre la posición media de los servos 0 y 1 ajustándolos hasta que las ruedas se detengan

    • my_cal.left_mid = <valor del servo 0>

    • my_cal.righ_mid = <valor del servo 1>

  • Ahora necesita encontrar el signo de las direcciones

    • Mirando el spoonBot desde atrás (con la cuchara hacia usted), intente bajar el número del servo 0, que debería ser la rueda izquierda

      • si el servo gira en sentido horario / hacia atrás (hacia usted) entonces left_dir debería establecerse en 1

      • si el servo gira en sentido antihorario, left_dir debería establecerse en -1

    • Repita para el servo 1 (que debería ser la rueda derecha desde el punto de vista del spoonBot)

      • si el servo gira en sentido horario / hacia atrás (hacia usted) entonces right_dir debería establecerse en 1

      • si el servo gira en sentido antihorario, right_dir debería establecerse en -1

    • ¡Normalmente, un servo debe establecerse como negativo!

  • Ahora encuentre las posiciones Min, Middle y Max de la cuchara ajustando el servo 2

    • Min debería ser el valor más pequeño que empuja la cuchara hacia abajo y por tanto inclina al spoonBot hacia adelante

      • Establezca spoon_down según corresponda

    • Max suele ser 255 y debería posicionar al spoonBot mirando lo más arriba posible

      • Establezca spoon_up según corresponda

    • Middle es el valor que hace que el servo quede nivelado

      • Establezca spoon_mid según corresponda

    • Si Min y Max parecen estar invertidos, cambie spoon_dir a -1

Una vez hecha la calibración, recompile el proyecto y GRABE la CMUcam3. spoonBot primero realizará una secuencia de movimientos programados para asegurarse de que los servos estén configurados correctamente. Luego spoonBot esperará una pulsación del botón para comenzar a rastrear un color. Se muestra texto a través del puerto serie notificándole las distintas etapas de funcionamiento.

El movimiento programado debería ser el siguiente:

  • Quedarse quieto

  • Mirar hacia abajo

  • Mirar hacia arriba

  • Volver a la posición media

  • Girar en sentido horario (visto desde arriba)

  • Girar en sentido antihorario

  • El LED rojo se apaga mientras la cámara se prepara

  • El LED rojo se enciende cuando está lista para rastrear

Si esto parece correcto, entonces intente sostener un objeto de color brillante a unos centímetros frente a la cámara y luego presione el botón. A medida que aleja el objeto, spoonBot debería girar hacia él. Use objetos de colores brillantes que sean lo más uniformes posible en color. Un objeto como un paño rojo brillante funcionaría bien, ya que refleja muy poca luz (aparte del rojo puro). Asegúrese de que haya suficiente iluminación en la habitación. Intente capturar un fotograma para ver cómo se ven las condiciones.

Nota: Si desea deshabilitar los servos sin desenchufarlos, desconecte el servo-power-jumper.