Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Objectif

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

Quand l’utiliser

Si vous avez une base de robot en configuration « arcade », où un signal contrôle le mouvement avant/arrière et un second la rotation.

Où l’utiliser

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

Note

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::MoveArcade(int8_t forwardChannel, int8_t yawChannel, unsigned char frontLeftMotor, unsigned char backLeftMotor, unsigned char frontRightMotor, unsigned char backRightMotor)

Les paramètres suivants sont requis par la fonction:

  • forwardChannel: La vitesse à laquelle le robot devrait avancer/reculer. De type int8_t (aussi appelé signed char), soit entre -128 et 127.

  • yawChannel: La vitesse à laquelle le robot devrait tourner. 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::MoveArcade(int8_t forwardChannel, int8_t yawChannel, unsigned char leftMotor, unsigned char rightMotor)

Les paramètres suivants sont requis par la fonction:

  • forwardChannel: La vitesse à laquelle le robot devrait avancer/reculer. De type int8_t (aussi appelé signed char), soit entre -128 et 127.

  • yawChannel: La vitesse à laquelle robot devrait tourner. 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::MoveArcade(ANALOG forwardChannel, ANALOG yawChannel, unsigned char frontLeftMotor, unsigned char backLeftMotor, unsigned char frontRightMotor, unsigned char backRightMotor)

Les paramètres suivants sont requis par la fonction:

  • forwardChannel: Le « channel » channel de joystick à utiliser pour contrôler la vitesse avant/arrière. De type ANALOG (voir CrcLib: accéder aux boutons de la télécommande)

  • yawChannel: Le « channel » channel de joystick à utiliser pour contrôler la vitesse de rotation. 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::MoveArcade(ANALOG forwardChannel, ANALOG yawChannel, unsigned char leftMotor, unsigned char rightMotor)

Les paramètres suivants sont requis par la fonction:

Exemples

Expand
title#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 avant/arrière et de rotation soit directement contrôlée respectivement par la position horizontale et verticale du joystick 1 de la manette connectée au CRCconnect.
Code Block
languagecpp
#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::MoveArcade(ANALOG::JOYSTICK1_Y, ANALOG::JOYSTICK1_X, CRC_PWM_1, CRC_PWM_2);
    
    /* 
    Reste de la boucle principale
    ...
    */
}

Articles reliés

Filter by label (Content by label)
sorttitle
excerptTyperich content
cqllabel = "ar-crclib_funct_drive"