Paso 7: Usando el Software
Cuando se ejecuta el código, deben saltar dos ventanas. Uno es la Visión de Webcam y la otra es el Panel de Control.
En modo Manual, puede apuntar y disparar apuntando y haciendo clic en la vista de la webcam. En modo autónomo, el software asume el control, y su arma adquiere una vida propia! Dar un poco de tiempo para ajustar a un segundo plano, y luego se dispara a todo lo que entra en su vista.
Juego alrededor con el otro-funciones Auto/Semi-Automatico, ocultar la vista de cámara, etc..
Calibración - su arreglo servo y cámara es probablemente único, por lo que necesitarás calibrarlo la primera vez.
Puede hacer esto mediante el ajuste de los valores de xMin, xMax, yMin y yMax, al principio del código. Juego alrededor con ellos hasta que tienen el objetivo de la pistola donde señalas con el ratón en la vista de la webcam. Una herramienta útil para hacer esto es observar los números de desplazamiento por la parte inferior de la IDE de procesamiento mientras se ejecuta el código.
También puede que deba calibrar la posición del servo en el código de Arduino:
Para establecer la posición de carga, cambiar estas líneas:
if(digitalRead(7) == HIGH) {}
xPosition = 110;
yPosition = 135;
fuego = 0;
}
Para establecer la posición inicial (no hay comunicación del USB), cambiar estas líneas:
{if(idle)}
idleCounter ++;
Si {} (idleCounter > 10000)
analogWrite (5, 50);
Delay(250);
digitalWrite (5, bajo);
idleCounter = 0;
}
Else {}
digitalWrite (5, bajo);
}
xPosition = 110;
yPosition = 100;
fuego = 0;
}
Para establecer las posiciones 'exprimidas' y 'no exprimido' para el servo del gatillo, cambiar estas líneas:
anular fuego (int selector) {}
if(selector == 1) {}
fireTimer ++;
Si (fireTimer > = 0 & & fireTimer < = triggerTravelMillis) {}
Trigger.Write (90);
digitalWrite (2, alto);
}
Si (fireTimer > triggerTravelMillis & & fireTimer < 1,5 * triggerTravelMillis) {}
Trigger.Write (140);
digitalWrite (2, bajo);
}
Si (fireTimer > = 1.5 * triggerTravelMillis) {}
fireTimer = 0;
}
}
if(selector == 3) {}
Trigger.Write (90);
digitalWrite (2, alto);
}
}
anular la cesación del fuego (int selector) {}
if(selector == 1) {}
fireTimer = 0;
Trigger.Write (140);
digitalWrite (2, bajo);
}
if(selector == 3) {}
Trigger.Write (140);
digitalWrite (2, bajo);
}
}