8#ifndef MOTOR_CONTROLLER_H 
    9#define MOTOR_CONTROLLER_H 
   11#include "ArduinoX/ArduinoX.h" 
   14#define DEFAULT_GEAR_BOX_RATIO 1 
   15#define DEFAULT_ENCODER_TICK_PER_TURN 1 
   16#define DEFAULT_CONVERTION_RATIO 1 
   17#define DEFAULT_LAYER MOTOR 
   36        MotorController(ArduinoX* arduinoX, PidLayer layer, 
int motorID, 
int encoderID, 
double gearBoxRatio, 
double encoderTickPerTurn, 
double convertionRatio);
 
   47        MotorController(ArduinoX* arduinoX, PidLayer layer, 
int motorID, 
int encoderID, 
double gearBoxRatio, 
double encoderTickPerTurn);
 
   57        MotorController(ArduinoX* arduinoX, PidLayer layer, 
int motorID, 
int encoderID, 
double encoderTickPerTurn);
 
   66        MotorController(ArduinoX* arduinoX, PidLayer layer, 
int motorID, 
int encoderID);
 
   77        MotorController(ArduinoX* arduinoX, 
int motorID, 
int encoderID, 
double gearBoxRatio, 
double encoderTickPerTurn, 
double convertionRatio);
 
   87        MotorController(ArduinoX* arduinoX, 
int motorID, 
int encoderID, 
double gearBoxRatio, 
double encoderTickPerTurn);
 
   96        MotorController(ArduinoX* arduinoX, 
int motorID, 
int encoderID, 
double encoderTickPerTurn);
 
  230        double getFirstConversionStage();
 
  239        double getLastConversionStage();
 
  243        double encoderTickPerTurn;         
 
  244        double convertionRatio;            
 
Class for controlling a motor using an Arduino and a PID controller.
Definition: MotorController.h:24
 
static double wheelRatio(double diameter)
Calculate the wheel ratio based on diameter.
Definition: MotorController.cpp:81
 
void setConversionRatio(double convertionRatio)
Set the conversion ratio.
Definition: MotorController.cpp:60
 
static double degreesRatio()
Calculate the degrees ratio.
Definition: MotorController.cpp:84
 
void setGearBoxRatio(double gearBoxRatio)
Set the gearbox ratio.
Definition: MotorController.cpp:46
 
PidLayer getLayer()
Get the PID layer.
Definition: MotorController.cpp:70
 
void setEncoderID(int encoderID)
Set the encoder ID.
Definition: MotorController.cpp:39
 
double getConversionRatio()
Get the conversion ratio.
Definition: MotorController.cpp:63
 
double measurementFunction()
Measurement function for the motor.
Definition: MotorController.cpp:74
 
int getMotorID()
Get the motor ID.
Definition: MotorController.cpp:35
 
static double radiansRatio()
Calculate the radians ratio.
Definition: MotorController.cpp:87
 
void setLayer(PidLayer layer)
Set the PID layer.
Definition: MotorController.cpp:67
 
void commandFunction(double command)
Command function for the motor.
Definition: MotorController.cpp:77
 
int getEncoderID()
Get the encoder ID.
Definition: MotorController.cpp:42
 
static double turnRatio()
Calculate the turn ratio.
Definition: MotorController.cpp:90
 
double getEncoderTickPerTurn()
Get the encoder ticks per turn.
Definition: MotorController.cpp:56
 
void setEncoderTickPerTurn(double encoderTickPerTurn)
Set the encoder ticks per turn.
Definition: MotorController.cpp:53
 
void setMotorID(int motorID)
Set the motor ID.
Definition: MotorController.cpp:32
 
double getGearBoxRatio()
Get the gearbox ratio.
Definition: MotorController.cpp:49