MakeBlock Drive Updated
Updated library for MakeBlock Ranger
Loading...
Searching...
No Matches
MeEncoderOnBoard Class Reference

Driver for Encoder module on MeAuriga and MeMegaPi. More...

#include <src/MeEncoderOnBoard.h>

Public Member Functions

 MeEncoderOnBoard ()
 
 MeEncoderOnBoard (int slot)
 
void reset (uint8_t slot)
 
uint8_t getSlotNum (void) const
 
uint8_t getIntNum (void) const
 
uint8_t getPortA (void) const
 
uint8_t getPortB (void) const
 
long getPulsePos (void) const
 
void setPulsePos (long pulse_pos)
 
void pulsePosPlus (void)
 
void pulsePosMinus (void)
 
void setCurrentSpeed (float speed)
 
float getCurrentSpeed (void) const
 
int16_t getCurPwm (void) const
 
void setTarPWM (int16_t pwm_value)
 
void setMotorPwm (int16_t pwm)
 
void updateSpeed (void)
 
void updateCurPos (void)
 
long getCurPos (void) const
 
void runSpeed (float speed)
 
void setSpeed (float speed)
 
void move (long position, float speed=100, int16_t extId=0, cb callback=NULL)
 
void moveTo (long position, float speed=100, int16_t extId=0, cb callback=NULL)
 
long distanceToGo () const
 
void setSpeedPid (float p, float i, float d)
 
void setPosPid (float p, float i, float d)
 
void setPulse (int16_t pulseValue)
 
void setRatio (float RatioValue)
 
void setMotionMode (int16_t motionMode)
 
int16_t pidPositionToPwm (void)
 
int16_t speedWithoutPos (void)
 
void encoderMove (void)
 
void pwmMove (void)
 
boolean isTarPosReached (void) const
 
void loop (void)
 

Detailed Description

Driver for Encoder module on MeAuriga and MeMegaPi.

Class: MeEncoderOnBoard

Description
Declaration of Class MeEncoderOnBoard
Copyright (C), 2012-2016, MakeBlock

Constructor & Destructor Documentation

◆ MeEncoderOnBoard() [1/2]

MeEncoderOnBoard::MeEncoderOnBoard ( )

Alternate Constructor which can call your own function to map the Encoder motor to arduino port, no pins are used or initialized here.

Parameters
[in]None

◆ MeEncoderOnBoard() [2/2]

MeEncoderOnBoard::MeEncoderOnBoard ( int  slot)

Alternate Constructor which can call your own function to map the Encoder motor to arduino port

Parameters
[in]slot- megapi slot from SLOT1 to SLOT4(Auriga SLOT1 and SLOT2).

Member Function Documentation

◆ distanceToGo()

long MeEncoderOnBoard::distanceToGo ( void  ) const
Function
distanceToGo
Description
The distance that encoder should go, units are in degrees.\r
So 360-degree means a circle.
Parameters
[in]None
Output
None
Return
long - Return the length that encoder need run.
Others
None

◆ encoderMove()

void MeEncoderOnBoard::encoderMove ( void  )
Function
encoderMove
Description
This function used for move with PID mode.
Parameters
[in]None
Output
None
Return
None
Others
None

◆ getCurPos()

long MeEncoderOnBoard::getCurPos ( void  ) const
Function
getCurPos
Description
This function used to get the current position(The units are degrees).
Parameters
[in]None
Output
None
Return
None
Others
None

◆ getCurPwm()

int16_t MeEncoderOnBoard::getCurPwm ( void  ) const
Function
getCurPwm
Description
This function used to get the current pwm setting.
Parameters
[in]None
Output
None
Returns
None
Others
None
Function
getCurPwm
Description
This function used to get the current pwm setting.
Parameters
[in]None
Output
None
Returns
int16_t - the pwm setting
Others
None

◆ getCurrentSpeed()

float MeEncoderOnBoard::getCurrentSpeed ( void  ) const
Function
getCurrentSpeed
Description
This function used to get the current speed(The unit is rpm).
Parameters
[in]None
Output
None
Returns
float - the speed value(The unit is rpm).
Others
None

◆ getIntNum()

uint8_t MeEncoderOnBoard::getIntNum ( void  ) const
Function
getIntNum
Description
This function used to get the Auriga/MegaPi Interrupt number of current objects.
Parameters
[in]None
Output
None
Returns
uint8_t - The Interrupt number of current objects
Others
None

◆ getPortA()

uint8_t MeEncoderOnBoard::getPortA ( void  ) const
Function
getPortA
Description
This function used to get the GPIO number of current objects's dir port A.
Parameters
[in]None
Output
None
Returns
uint8_t - The GPIO number of current objects's dir port A
Others
None

◆ getPortB()

uint8_t MeEncoderOnBoard::getPortB ( void  ) const
Function
getPortB
Description
This function used to get the GPIO number of current objects's dir port B.
Parameters
[in]None
Output
None
Returns
uint8_t - The GPIO number of current objects's dir port B
Others
None

◆ getPulsePos()

long MeEncoderOnBoard::getPulsePos ( void  ) const
Function
getPulsePos
Description
This function used to get the current pos value(pulse counter).
Parameters
[in]None
Output
None
Returns
long - current pos value
Others
None

◆ getSlotNum()

uint8_t MeEncoderOnBoard::getSlotNum ( void  ) const
Function
getSlotNum
Description
This function used to get the Auriga/MegaPi slot number of current objects.
Parameters
[in]None
Output
None
Returns
uint8_t - The slot number of current objects
Others
None

◆ isTarPosReached()

boolean MeEncoderOnBoard::isTarPosReached ( void  ) const
Function
isTarPosReached
Description
This function used to determine whether the motor come to the target position.
It is mainly applied to function moveTo or function move
Parameters
[in]None
Output
None
Return
true - target position is reached, otherwise
Others
None

◆ loop()

void MeEncoderOnBoard::loop ( void  )
Function
loop
Description
This function should be called without Blocked.
Parameters
[in]None
Output
None
Return
None
Others
None

◆ move()

void MeEncoderOnBoard::move ( long  position,
float  speed = 100,
int16_t  extId = 0,
cb  callback = NULL 
)
Function
move
Description
encoder motor moves to the relative positions.
Parameters
[in]position- The relative angle encoder motor moves.
[in]speed- the speed value(The unit is rpm).
[in]extId- It is used to indicate the ID of motor(Optional parameters).
[in]callback- callback function when the target position has been reached(Optional parameters).
Output
None
Return
None
Others
None

◆ moveTo()

void MeEncoderOnBoard::moveTo ( long  position,
float  speed = 100,
int16_t  extId = 0,
cb  callback = NULL 
)
Function
moveTo
Description
encoder motor moves to the absolute position.
Parameters
[in]position- The absolute angle encoder motor moves.
[in]speed- the speed value(The unit is rpm).
[in]extId- It is used to indicate the ID of motor(Optional parameters).
[in]callback- callback function when the target position has been reached(Optional parameters).
Output
None
Return
None
Others
None

◆ pidPositionToPwm()

int16_t MeEncoderOnBoard::pidPositionToPwm ( void  )
Function
pidPositionToPwm
Description
This function used to calculate the PWM motor value of encoder motor(position & speed).
Parameters
[in]None
Output
None
Return
None
Others
None

◆ pulsePosMinus()

void MeEncoderOnBoard::pulsePosMinus ( void  )
Function
pulsePosMinus
Description
This function used to reduction the current pos value(pulse counter).
Parameters
[in]None
Output
None
Returns
None
Others
None

◆ pulsePosPlus()

void MeEncoderOnBoard::pulsePosPlus ( void  )
Function
pulsePosPlus
Description
This function used to increase the current pos value(pulse counter).
Parameters
[in]None
Output
None
Returns
None
Others
None

◆ pwmMove()

void MeEncoderOnBoard::pwmMove ( void  )
Function
pwmMove
Description
This function used for move with PWM mode.
Parameters
[in]None
Output
None
Return
None
Others
None

◆ reset()

void MeEncoderOnBoard::reset ( uint8_t  slot)
Function
reset
Description
Reset the encoder motor available PIN by Auriga/MegaPi slot.
Parameters
[in]slot- MegaPi encoder port from SLOT1 to SLOT4(Auriga SLOT1 and SLOT2).
Output
None
Returns
None
Others
None

◆ runSpeed()

void MeEncoderOnBoard::runSpeed ( float  speed)
Function
runSpeed
Description
The speed of encode, and encoder motor will running with the setting speed.
Parameters
[in]speed- the speed value(The unit is rpm).
Output
None
Return
None
Others
None

◆ setCurrentSpeed()

void MeEncoderOnBoard::setCurrentSpeed ( float  speed)
Function
setCurrentSpeed
Description
This function used to set the current speed(The unit is rpm).
Parameters
[in]speed- the speed value(The unit is rpm).
Output
None
Returns
None
Others
None

◆ setMotionMode()

void MeEncoderOnBoard::setMotionMode ( int16_t  motionMode)
Function
setMotionMode
Description
This function used to set the motion mode of encoder motor.
Parameters
[in]motionMode- motion mode
Output
None
Return
None
Others
None

◆ setMotorPwm()

void MeEncoderOnBoard::setMotorPwm ( int16_t  pwm)
Function
setMotorPwm
Description
This function used to set current pwm setting.
Parameters
[in]pwm- the pwm setting
Output
None
Returns
None
Others
None
Function
setMotorPwm
Description
This function used to execute current pwm setting.
Parameters
[in]pwm- the pwm setting
Output
None
Returns
None
Others
None

◆ setPosPid()

void MeEncoderOnBoard::setPosPid ( float  p,
float  i,
float  d 
)
Function
setPosPid
Description
This function used to set the PID parameters for encoder motor's pos.
Parameters
[in]p- Proportion parameter
[in]i- Integration Parameters
[in]d- Differential parameter
Output
None
Return
None
Others
None

◆ setPulse()

void MeEncoderOnBoard::setPulse ( int16_t  pulseValue)
Function
setPulse
Description
This function used to set the pulse number of encoder code disc.
Parameters
[in]pulseValue- pulse number
Output
None
Return
None
Others
None

◆ setPulsePos()

void MeEncoderOnBoard::setPulsePos ( long  pulsePos)
Function
setPulsePos
Description
This function used to Set the current pos value(pulse counter). Generally used for
reset the distance calculation.
Parameters
[in]pulsePos- the value of pos value(pulse counter)
Output
None
Returns
None
Others
None

◆ setRatio()

void MeEncoderOnBoard::setRatio ( float  RatioValue)
Function
setRatio
Description
This function used to set the ratio of encoder motor.
Parameters
[in]RatioValue- ratio number
Output
None
Return
None
Others
None

◆ setSpeed()

void MeEncoderOnBoard::setSpeed ( float  speed)
Function
setSpeed
Description
This function used to set the current speed(The unit is rpm).
Note: used with update function.
Parameters
[in]speed- the speed value(The unit is rpm).
Output
None
Returns
None
Others
None

◆ setSpeedPid()

void MeEncoderOnBoard::setSpeedPid ( float  p,
float  i,
float  d 
)
Function
setSpeedPid
Description
This function used to set the PID parameters for encoder motor's speed.
Parameters
[in]p- Proportion parameter
[in]i- Integration Parameters
[in]d- Differential parameter
Output
None
Return
None
Others
None

◆ setTarPWM()

void MeEncoderOnBoard::setTarPWM ( int16_t  pwm_value)
Function
setTarPWM
Description
This function used for set the target pwm value.
Parameters
[in]pwm_value- the target pwm value.
Output
None
Return
None
Others
None

◆ speedWithoutPos()

int16_t MeEncoderOnBoard::speedWithoutPos ( void  )
Function
speedWithoutPos
Description
This function used to calculate the PWM motor value of encoder motor(single speed).
Parameters
[in]None
Output
None
Return
None
Others
None

◆ updateCurPos()

void MeEncoderOnBoard::updateCurPos ( void  )
Function
updateCurPos
Description
This function used to calculate the current position(The units are degrees).
Parameters
[in]None
Output
None
Return
None
Others
None

◆ updateSpeed()

void MeEncoderOnBoard::updateSpeed ( void  )
Function
updateSpeed
Description
This function used to update current speed.
Parameters
[in]None
Output
None
Returns
None
Others
None

The documentation for this class was generated from the following files: