Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 3 Current »

Objectif

Facilement ajouter un contrôle de style « tank » à votre base de robot.

Quand l’utiliser

Si vous avez une base de robot en configuration « tank », où un signal contrôle les moteurs du côté droit et un autre les moteurs du côté gauche.

Où l’utiliser

Dans la partie void loop() de votre fichier .ino, puisqu’il faut qu’elle soit appelée en boucle le plus rapidement possible.

Cette fonction requiert l’utilisation des fonctions suivantes dans votre programme:

Valeur de retour

Cette fonction ne retourne aucune valeur après avoir exécuté ses tâches.

Prototype principal

static void CrcLib::MoveTank(int8_t leftChannel, int8_t rightChannel, unsigned char frontLeftMotor, unsigned char backLeftMotor, unsigned char frontRightMotor, unsigned char backRightMotor)

Les paramètres suivants sont requis par la fonction:

  • leftChannel: La vitesse à laquelle les moteurs gauches devrait aller. De type int8_t (aussi appelé signed char), soit entre -128 et 127.

  • rightChannel: La vitesse à laquelle les moteurs droits devrait aller. De type int8_t (aussi appelé signed char), soit entre -128 et 127.

  • frontLeftMotor: Le port PWM auquel est connecté le moteur avant gauche.

  • backLeftMotor: Le port PWM auquel est connecté le moteur arrière gauche.

  • frontRightMotor: Le port PWM auquel est connecté le moteur avant droit.

  • backRightMotor: Le port PWM auquel est connecté le moteur arrière droit.

Overloads

#1: Un seul moteur par côté

static void CrcLib::MoveTank(int8_t leftChannel, int8_t rightChannel, unsigned char leftMotor, unsigned char rightMotor)

Les paramètres suivants sont requis par la fonction:

  • leftChannel: La vitesse à laquelle les moteurs gauches devrait aller. De type int8_t (aussi appelé signed char), soit entre -128 et 127.

  • rightChannel: La vitesse à laquelle les moteurs droits devrait aller. De type int8_t (aussi appelé signed char), soit entre -128 et 127.

  • leftMotor: Le port PWM auquel est connecté le moteur gauche.

  • rightMotor: Le port PWM auquel est connecté le moteur droit.

#2: Utiliser directement les valeurs de la manettes, 2 moteurs par côté

static void CrcLib::MoveTank(ANALOG leftChannel, ANALOG rightChannel, unsigned char frontLeftMotor, unsigned char backLeftMotor, unsigned char frontRightMotor, unsigned char backRightMotor)

Les paramètres suivants sont requis par la fonction:

  • leftChannel: Le « channel » de joystick à utiliser pour contrôler les moteurs gauches. De type ANALOG (voir CrcLib: accéder aux boutons de la télécommande )

  • rightChannel: Le « channel » de joystick à utiliser pour contrôler les moteurs droits. De type ANALOG (voir CrcLib: accéder aux boutons de la télécommande )

  • frontLeftMotor: Le port PWM auquel est connecté le moteur avant gauche.

  • backLeftMotor: Le port PWM auquel est connecté le moteur arrière gauche.

  • frontRightMotor: Le port PWM auquel est connecté le moteur avant droit.

  • backRightMotor: Le port PWM auquel est connecté le moteur arrière droit.

#3: Utiliser directement les valeurs de la manettes, 1 seul moteur par côté

static void CrcLib::MoveTank(ANALOG leftChannel, ANALOG rightChannel, unsigned char leftMotor, unsigned char rightMotor)

Les paramètres suivants sont requis par la fonction:

Exemples

 #1 Nous souhaitons contrôler 2 moteurs de puissance faisant partie d'une base de style « tank » dirigée par des contrôleurs de moteur connectés aux ports PWM #1 et #2. Nous souhaitons que la vitesse des moteurs soit directement contrôlée par la position verticale des deux joysticks de la manette connectée au CRCconnect.
#include <CrcLib.h> 

void setup() {
    CrcLib::Initialize();

    CrcLib::InitializePwmOutput(CRC_PWM_1);
    CrcLib::InitializePwmOutput(CRC_PWM_2);
    
    /* 
    Reste du code d'initialisation
    ...
     */
}
void loop() {
    CrcLib::Update();

    CrcLib::MoveTank(ANALOG::JOYSTICK1_Y, ANALOG::JOYSTICK2_Y, CRC_PWM_1, CRC_PWM_2);
    
    /* 
    Reste de la boucle principale
    ...
    */
}

Articles reliés

  • No labels