Le moteur intelligent VEX IQ dispose de nombreuses fonctions à utiliser lors du codage dans VEXcode IQ. Cela peut s'avérer utile lors du codage des bras, des griffes et des admissions, ainsi que des transmissions et autres mécanismes créés à l'aide de VEX IQ. Comprendre comment les moteurs peuvent être codés aidera à atténuer des problèmes tels que le blocage des projets ou les moteurs qui ne fonctionnent pas comme prévu.
Encodeur de moteur
Non seulement le moteur intelligent VEX IQ transforme l’énergie électrique en énergie mécanique, comme le font la plupart des moteurs, mais il possède également des fonctionnalités que la plupart des moteurs n’ont pas, ce qui le rend « intelligent ». L'une de ses principales caractéristiques est l'encodeur en quadrature. Cet encodeur est monté à l'intérieur du moteur afin de suivre la vitesse et/ou la position de l'arbre du moteur.
Les rapports de l'encodeur du VEX IQ Smart Motor permettent de connaître :
- Le sens de rotation du moteur (avant/arrière ou ouvert/fermé)
- La position du moteur et l'ampleur du tour et de la position du moteur (soit en tours, soit en degrés)
- La vitesse de rotation du moteur (en fonction de la position de l'encodeur dans le temps)
Étant donné que l'encodeur signale les états du moteur, ils peuvent être utilisés dans des calculs en coulisse pour faire fonctionner de nombreuses commandes de mouvement et de détection au sein du VEXcode IQ.
Codage de moteurs individuels
Avant de commencer à coder des moteurs intelligents individuels dans VEXcode IQ, vous devez configurer le moteur. Les moteurs individuels sont fréquemment utilisés pour des mécanismes supplémentaires tels que les admissions, les bras et les griffes. Cependant, toutes les informations s'appliquent toujours à d'autres mécanismes utilisant des moteurs individuels.
Suivez les étapes de cet article pour configurer votre moteur individuel dans VEXcode IQ.
Avec un seul moteur configuré, les commandes permettant de contrôler ce moteur apparaîtront dans la boîte à outils. Vous remarquerez qu'il existe différents types de commandes : en attente et sans attente.
Commandes en attente ou sans attente
Notez que toutes les images ici montrent des blocs. Tous ces projets peuvent être reconstruits en Python ou C++ et contiennent les mêmes fonctionnalités que les blocs.
Les commandes en attente empêchent le projet de continuer jusqu'à ce que le comportement soit terminé. Celles-ci incluent des commandes telles que [Spin for] et [Spin to position].
Le projet présenté ici utilise un modèle Clawbot (2 moteurs) et toutes les commandes sont en attente. Ainsi, en série, le moteur à griffes se fermerait à 90 degrés, le robot roulerait en marche arrière, puis le bras tournerait pour atteindre la position à 180 degrés.
En revanche, il existe des commandes sans attente. Une commande sans attente exécutera le comportement indéfiniment ou jusqu'à ce qu'on lui demande de passer à un autre comportement. Il s'agit notamment de commandes telles que [Spin].
Le projet présenté ici utilise un BaseBot avec un apport ajouté. Ici, le moteur d'admission commencerait à tourner. La commande [Attendre] est une commande d'attente, donc l'admission continue de tourner jusqu'à ce que les 2 secondes soient écoulées, puis passe à la commande suivante du projet qui est une commande [Arrêter]. Ensuite, le moteur cesserait de tourner.
Délais d'attente du moteur
Lors du codage d'un moteur dans le cadre d'un bras ou d'une griffe, il est important de se rappeler la différence entre les blocs en attente et sans attente et l'impact de ceux-ci sur le mouvement de votre robot. Les délais d'attente du moteur vous permettent de définir une limite de temps pour que le moteur atteigne la position cible prévue. S'il n'a pas atteint cette position à l'expiration du délai, le moteur cessera d'essayer de tourner et le projet passera à la commande suivante.
Dans cet exemple, le délai d'attente du moteur est réglé sur 2 secondes. Si la griffe ne se ferme pas à 90 degrés dans les 2 secondes, le moteur cessera de tourner au bout de 2 secondes, puis passera à la commande suivante et avancera.
Si vous ne savez pas jusqu'où déplacer un moteur, utilisez le tableau de bord des capteurs. Le tableau de bord indique la position du moteur en degrés et en tours, de sorte que lorsque vous déplacez un moteur (comme ouvrir et fermer une griffe), les chiffres changent. Utilisez ce test pour déterminer combien de degrés ou de rotations sont nécessaires pour fermer une griffe, lever un bras, faire tourner une admission, etc.
Consultez ces articles pour savoir comment utiliser le tableau de bord des capteurs.
Codage de moteurs intelligents dans le cadre d'une transmission
Avant de commencer à coder une transmission dans VEXcode IQ, vous devez configurer la transmission, y compris les moteurs utilisés. Les moteurs sont configurés au sein de la transmission pour garantir qu'ils sont contrôlés avec les mêmes commandes telles que [Drive] et [Drive for].
Commandes en attente et sans attente
Lors du codage d'une transmission, des commandes d'attente et de non-attente sont disponibles pour contrôler le mouvement du robot.
Les commandes en attente empêchent le projet de continuer jusqu'à ce que le comportement soit terminé. Celles-ci incluent des commandes telles que [Conduire vers] [Tourner vers] et [Tourner vers le cap].
Le projet présenté ici utilise un modèle Clawbot (2 moteurs) et toutes les commandes sont en attente. Ainsi, en série, le robot avancerait sur 200 millimètres puis tournerait à droite en utilisant la transmission.
En revanche, il existe des commandes sans attente. Une commande sans attente exécutera le comportement indéfiniment ou jusqu'à ce qu'on lui demande de passer à un autre comportement. Il s'agit notamment de commandes telles que [Drive].
Le projet présenté ici utilise un BaseBot. Ici, le robot avancerait indéfiniment jusqu'à ce que l'interrupteur du pare-chocs soit enfoncé. Ensuite, le projet passerait à la commande suivante et le robot arrêterait de conduire et tournerait à droite sur 90 degrés.