Étape 7: Utilisation du logiciel
Lorsque vous exécutez le code, deux fenêtres devraient apparaître. Est la Vue de la Webcam et l’autre est le Panneau de configuration.
En Mode manuel, vous pouvez viser et tirer en pointant et en cliquant sur la vue de la webcam. En Mode autonome, le logiciel se charge, et votre pistolet gagne une vie de son propre ! Donnez-lui un peu de temps pour s’adapter à l’arrière-plan, et puis il va tirer sur tout ce qui pénètre dans son point de vue.
Jouez avec l’autre fonctionne ainsi - / Semi-automatique, cacher la vue de caméra, etc..
Etalonnage - votre arrangement servo et la caméra est probablement unique, donc vous aurez besoin de l’étalonner la première fois.
Vous pouvez le faire en ajustant les valeurs de xMin, xMax, yMin et yMax, au début du code. Jouez avec eux jusqu'à ce que vous avez l’arme visant où vous pointez la souris sur la vue de la webcam. Un outil utile pour ce faire est de regarder les numéros de défilement au bas de l’IDE de traitement pendant que vous exécutez le code.
Vous devrez peut-être également étalonner les positions de servo dans le code de l’Arduino :
Pour définir la position de rechargement, modifier ces lignes:
if(digitalRead(7) == HIGH) {}
xPosition = 110;
PositionY = 135;
feu = 0 ;
}
Pour définir la position d’origine (pas de communication USB), modifier ces lignes:
{if(IDLE)}
idleCounter ++ ;
Si {(idleCounter > 10000)
analogWrite (5, 50) ;
Delay(250) ;
digitalWrite (5, faible) ;
idleCounter = 0 ;
}
else {}
digitalWrite (5, faible) ;
}
xPosition = 110;
PositionY = 100;
feu = 0 ;
}
Pour définir les positions « pressées » et « pas pressé » pour le servo de déclencheur, modifier ces lignes:
void Fire (sélecteur d’int) {}
if(Selector == 1) {}
fireTimer ++ ;
Si (fireTimer > = 0 & & fireTimer < = triggerTravelMillis) {}
Trigger.Write (90) ;
digitalWrite (2, haut) ;
}
Si (fireTimer > triggerTravelMillis & & fireTimer < 1,5 * triggerTravelMillis) {}
Trigger.Write (140) ;
digitalWrite (2, basse) ;
}
Si (fireTimer > = 1,5 * triggerTravelMillis) {}
fireTimer = 0 ;
}
}
if(Selector == 3) {}
Trigger.Write (90) ;
digitalWrite (2, haut) ;
}
}
annuler le cessez-le-feu (sélecteur d’int) {}
if(Selector == 1) {}
fireTimer = 0 ;
Trigger.Write (140) ;
digitalWrite (2, basse) ;
}
if(Selector == 3) {}
Trigger.Write (140) ;
digitalWrite (2, basse) ;
}
}