Cours:TPS 2103 tp pixy : Différence entre versions
Ligne 1 : | Ligne 1 : | ||
{{EnTeteTpInfoS2|InfoS2_tpPixy_corrige}} | {{EnTeteTpInfoS2|InfoS2_tpPixy_corrige}} | ||
− | |||
Vous allez faire un tracking de balle de tennis avec une caméra pixy et un servomoteur. | Vous allez faire un tracking de balle de tennis avec une caméra pixy et un servomoteur. |
Version du 23 mars 2024 à 10:47
Vous allez faire un tracking de balle de tennis avec une caméra pixy et un servomoteur.
Sommaire
pixymon
Le logiciel pixymon permet de configurer la caméra pixy, connectée en usb :
https://docs.pixycam.com/wiki/doku.php?id=wiki:v2:teach_pixy_an_object_2
lancer le logiciel pour reconnaître les balles de tennis :
- dans le menu File, remettre les paramètres par défaut
- dans le menu Action, définir la couleur de la signature 1
Librairie arduino
sur la page suivante: https://pixycam.com/downloads-pixy2/
Télécharger et installer la librairie arduino pour la pixy
Utiliser le programme d'exemple de la librairie pixy ccc_hello_world pour vérifier le bon fonctionnement
Affichage de la position de la balle
Nous allons utiliser le shield LCD (cf TP précédent) pour afficher des informations sur l'objet détecté par la caméra pixy.
En utilisant la documentation sur la page suivante :
Afficher sur le l'écran LCD les coordonnées du centre de la balle de tennis
Rotation de la caméra
La caméra est montée sur un servomoteur que vous allez piloter pour centrer la balle sur l'image de la caméra.
Servomoteur
Nous avons vu dans un TP la configuration du timer pour utiliser un servomoteur. A défaut, vous pouvez utiliser la librairie servo.
connecter le servomoteur sur le connecteur CON_MLI en utilisant la page suivante : Cours:ShieldNanoinfo
Position de la balle
Faire en sorte que l'abscisse de la balle (variable positionBalle) soit comprise entre [-158 158], 0 au centre de l'image
Rque : pixy.ccc.blocks[i].m_x est une valeur entre 0 et 316
Déplacement dans la direction de la balle
Il reste à tout assembler.
Ecrire un programme qui change la position du servomoteur suivant le signe de posBalle :
- si posBalle est positif, augmenter la position du servomoteur
- si posBalle est négatif, diminuer la position du servomoteur
- ou le contraire !
Rque :
- Attention à ne pas dépasser les positions maxi/mini du servo
Correcteur proportionnel
Ecrire un programme qui change la position du servomoteur de façon plus efficace de la façon suivante :
PositionServo = PositionServo + k . positionBalle
Rque :
- Attention à ne pas dépasser les positions maxi/mini du servo