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