Simon Krogedal / Karbot_wheel_control

Dependencies:   mbed ros_lib_melodic

Embed: (wiki syntax)

« Back to documentation index

encoder Class Reference

encoder Class More...

#include <encoder.h>

Inherited by MotorControl.

Public Types

enum  Side
 

Direction enumerator.

More...

Public Member Functions

 encoder (PinName chanA, PinName chanB, int CPR, Side side, double Period, double diameter)
 Create an instance.
double getSpeed (void)
 Get wheel speed.
double getDistance (void)
 Get distance travelled.
double tempDist (void)
 Get distance travelled.
void distRst (void)
 Reset distance measurement.
void tempRst (void)
 Reset distance measurement.
void start (void)
 Start encoder reading.
void reset (void)
 Stop encoder reading.
int getCurrentState (void)
 Read the state of the encoder.
int getPulses (void)
 Read the number of pulses recorded by the encoder.

Protected Member Functions

void sample_func (void)
 sampling period and wheel constant
double getClicks (void)
 Get wheel speed.

Protected Attributes

double period
 ticker object to sample speed

Detailed Description

encoder Class

Class for measuring quadrature magnetic encoders requiring internal pullups

Author:
Simon Krogedal

27/05/2021

Team 9 4th Year project

for NUCLEO-F401RE

Version:
0.2

Definition at line 39 of file encoder.h.


Member Enumeration Documentation

enum Side

Direction enumerator.

Definition at line 45 of file encoder.h.


Constructor & Destructor Documentation

encoder ( PinName  chanA,
PinName  chanB,
int  CPR,
Side  side,
double  Period,
double  diameter 
)

Create an instance.

Parameters:
chanAEncoder channel A pin
chanBEncoder channel B pin
CPREncoder clicks per revolution
sideLeft side or right side motor, defines whether counter-clockwise rotation is forwards (left) or backwards (right) (when looking at the robot from outside)
PeriodSampling period of the wheel speed
Note:
Too short samling period gives a noisy reading, too long and dynamics are lost
Parameters:
diameterWheel diameter in meters

Definition at line 19 of file encoder.cpp.


Member Function Documentation

void distRst ( void   )

Reset distance measurement.

Definition at line 183 of file encoder.cpp.

double getClicks ( void   ) [protected]

Get wheel speed.

Returns:
Wheel speed in clicks/second

Definition at line 149 of file encoder.cpp.

int getCurrentState ( void   )

Read the state of the encoder.

Returns:
The current state of the encoder as a 2-bit number, where: bit 1 = The reading from channel B bit 2 = The reading from channel A

Definition at line 59 of file encoder.cpp.

double getDistance ( void   )

Get distance travelled.

Returns:
Distance travelled in meters

Definition at line 165 of file encoder.cpp.

int getPulses ( void   )

Read the number of pulses recorded by the encoder.

Returns:
Number of pulses which have occured.

Definition at line 65 of file encoder.cpp.

double getSpeed ( void   )

Get wheel speed.

Returns:
Wheel speed in meters/second

Definition at line 157 of file encoder.cpp.

void reset ( void   )

Stop encoder reading.

Definition at line 55 of file encoder.cpp.

void sample_func ( void   ) [protected]

sampling period and wheel constant

Sample function called by ticker object

Definition at line 141 of file encoder.cpp.

void start ( void   )

Start encoder reading.

Definition at line 197 of file encoder.cpp.

double tempDist ( void   )

Get distance travelled.

Returns:
Distance travelled in meters since last reset

Definition at line 174 of file encoder.cpp.

void tempRst ( void   )

Reset distance measurement.

Definition at line 195 of file encoder.cpp.


Field Documentation

double period [protected]

ticker object to sample speed

Definition at line 134 of file encoder.h.