MatrixMiniR4 1.1.5
Matrix Mini R4 Arduino Library API Documentation
Loading...
Searching...
No Matches
MMLower Class Reference

Handling the Lower MCU (STM32) communication. More...

#include <MMLower.h>

Classes

struct  AllInfo_t
 
struct  Motors_Param_t
 

Public Types

enum class  COMM_STATE { WAIT_LEAD , WAIT_NOT_LEAD , WAIT_CMD , ERROR }
 
enum class  COMM_CMD {
  NONE = 0x00 , SET_DC_MOTOR_DIR = 0x01 , SET_ENCODER_DIR , SET_SERVO_DIR ,
  SET_DC_MOTOR_SPEED_RANGE , SET_SERVO_PULSE_RANGE , SET_SERVO_ANGLE_RANGE , SET_BUTTON_INIT ,
  SET_ENCODER_ECHO_MODE , SET_IMU_ECHO_MODE , SET_IMU_INIT , SET_POWER_PARAM ,
  SET_DC_MOTOR_POWER = 0x11 , SET_DC_MOTOR_SPEED , SET_DC_MOTOR_ROTATE , SET_ALL_DC_MOTOR_SPEED ,
  SET_SERVO_ANGLE , SET_ALL_SERVO_ANGLE , SET_MOVE_DISTANCE , SET_ENCODER_RESET_COUNTER ,
  SET_STATE_LED , SET_IMU_TO_ZERO , SET_PID_PARAM , SET_DC_BRAKE ,
  GET_BUTTON_STATE = 0x21 , GET_BUTTONS_STATE , GET_ENCODER_COUNTER , GET_ALL_ENCODER_COUNTER ,
  GET_IMU_EULER , GET_IMU_GYRO , GET_IMU_ACC , GET_POWER_INFO ,
  GET_ROTATE_STATE , AUTO_SEND_BUTTON_STATE = 0x31 , AUTO_SEND_ENCODER_COUNTER , AUTO_SEND_IMU_EULER ,
  AUTO_SEND_IMU_GYRO , AUTO_SEND_IMU_ACC , ECHO_TEST = 0xFF , F_VERSION = 0xFE ,
  F_BUILD_DAY = 0xFD , F_DESCRIPTOR = 0xFC , READ_MODEL_INDEX = 0xFB , READ_ALL_INFO = 0xFA ,
  RUN_AUTO_QC = 0xF9
}
 
enum class  BTN_STATE {
  NOKEY , F_EDGE , REPEAT , PRESSED ,
  R_EDGE
}
 
enum class  DIR { REVERSE , FORWARD }
 
enum class  BUTTON_ECHO_MODE { PASSIVE , ACTIVE , MAX }
 
enum class  ENCODER_ECHO_MODE { PASSIVE , ACTIVE , MAX }
 
enum class  IMU_ECHO_MODE { PASSIVE , TIMING , ACTIVE , MAX }
 
enum class  IMU_ACC_FSR { _2G , _4G , _8G , _16G }
 
enum class  IMU_GYRO_FSR { _250DPS , _500DPS , _1000DPS , _2000DPS }
 
enum class  IMU_ODR {
  _10_SPS , _20_SPS , _25_SPS , _50_SPS ,
  _100_SPS , _125_SPS , _250_SPS , _500_SPS ,
  _1000_SPS , _2000_SPS , _4000_SPS , _8000_SPS
}
 
enum class  IMU_FIFO { ENABLE , DISABLE }
 
enum class  MOVE_TYPE { DIFF , OMNI }
 
enum class  MOVE_ACTION {
  STOP , FORWARD , BACKWARD , LEFT ,
  RIGHT
}
 
enum class  RESULT {
  OK , ERROR , ERROR_SOFTSERIAL_BEGIN , ERROR_INIT ,
  ERROR_WAIT_TIMEOUT , ERROR_READ_TIMEOUT , ERROR_SERVO_MIN_PULSE , ERROR_SERVO_MAX_PULSE ,
  ERROR_SERVO_MIN_ANGLE , ERROR_SERVO_MAX_ANGLE , ERROR_MODE , ERROR_INTERVAL ,
  ERROR_IMU_ACC_FSR , ERROR_IMU_GYRO_FSR , ERROR_IMU_ODR , ERROR_MOTOR_SPEED ,
  ERROR_MOTOR_POWER , ERROR_MOTOR1_SPEED , ERROR_MOTOR2_SPEED , ERROR_MOTOR3_SPEED ,
  ERROR_MOTOR4_SPEED , ERROR_SERVO_ANGLE , ERROR_SERVO1_ANGLE , ERROR_SERVO2_ANGLE ,
  ERROR_SERVO3_ANGLE , ERROR_SERVO4_ANGLE , ERROR_MOVE_ACTION , ERROR_MOVE_SPEED ,
  ERROR_MOVE_ENCODER , ERROR_QC_IMU , ERROR_POWER_VOLT_RANGE
}
 
typedef void(*) BtnChgCallback(uint8_t num, BTN_STATE newState)
 

Public Member Functions

 MMLower (uint8_t rx, uint8_t tx, uint32_t baudrate)
 
RESULT Init (uint32_t timeout_ms=1000)
 
RESULT SetDCMotorDir (uint8_t num, DIR dir)
 
RESULT SetEncoderDir (uint8_t num, DIR dir)
 
RESULT SetServoDir (uint8_t num, DIR dir)
 
RESULT SetDCMotorSpeedRange (uint8_t num, uint16_t min, uint16_t max)
 
RESULT SetServoPulseRange (uint8_t num, uint16_t min, uint16_t max)
 
RESULT SetServoAngleRange (uint8_t num, uint16_t min, uint16_t max)
 
RESULT SetIMUEchoMode (IMU_ECHO_MODE mode, uint16_t echoIntervalMs)
 
RESULT SetIMUInit (IMU_ACC_FSR accFSR, IMU_GYRO_FSR gyroFSR, IMU_ODR odr, IMU_FIFO fifo)
 
RESULT SetPowerParam (float fullVolt, float cutOffVolt, float alarmVolt)
 
RESULT SetStateLED (uint8_t brightness, uint32_t colorRGB)
 
RESULT SetIMUToZero (void)
 
RESULT SetDCMotorPower (uint8_t num, int16_t power)
 
RESULT SetDCMotorSpeed (uint8_t num, int16_t speed)
 
RESULT SetDCMotorRotate (uint8_t num, int16_t maxSpeed, uint16_t degree)
 
RESULT SetAllDCMotorSpeed (Motors_Param_t param)
 
RESULT SetServoAngle (uint8_t num, uint16_t angle)
 
RESULT SetAllServoAngle (uint16_t angle1, uint16_t angle2, uint16_t angle3, uint16_t angle4)
 
RESULT SetMoveDistance (MOVE_TYPE type, MOVE_ACTION action, uint16_t speed, uint16_t enCounter)
 
RESULT SetEncoderResetCounter (uint8_t num)
 
RESULT SetPIDParam (uint8_t num, uint8_t pidNum, float kp, float ki, float kd)
 
RESULT SetDCBrake (uint8_t num)
 
RESULT GetButtonState (uint8_t num, bool &btnState)
 
RESULT GetButtonsState (bool *btnsState)
 
RESULT GetEncoderCounter (uint8_t num, int32_t &enCounter)
 
RESULT GetAllEncoderCounter (int32_t *enCounter)
 
RESULT GetIMUEuler (int16_t &roll, int16_t &pitch, int16_t &yaw)
 
RESULT GetIMUGyro (double &x, double &y, double &z)
 
RESULT GetIMUAcc (double &x, double &y, double &z)
 
RESULT GetPowerInfo (float &curVolt, float &curVoltPerc)
 
RESULT GetRotateState (uint8_t num, bool &isEnd)
 
RESULT EchoTest (void)
 
RESULT GetFWVersion (String &version)
 
RESULT GetFWBuildDay (String &date)
 
RESULT GetFWDescriptor (String &descriptor)
 
RESULT GetModelIndex (uint8_t &index)
 
RESULT GetAllInfo (AllInfo_t &info)
 
RESULT RunAutoQC (void)
 
void loop (void)
 
void onBtnChg (BtnChgCallback callback)
 

Public Attributes

int32_t enCounter [MatrixR4_ENCODER_NUM]
 
double imuGyroX
 
double imuGyroY
 
double imuGyroZ
 
double imuAccX
 
double imuAccY
 
double imuAccZ
 

Detailed Description

Handling the Lower MCU (STM32) communication.

Definition at line 51 of file MMLower.h.

Member Typedef Documentation

◆ BtnChgCallback

void(*) MMLower::BtnChgCallback(uint8_t num, BTN_STATE newState)

Definition at line 284 of file MMLower.h.

Member Enumeration Documentation

◆ BTN_STATE

enum class MMLower::BTN_STATE
strong
Enumerator
NOKEY 
F_EDGE 
REPEAT 
PRESSED 
R_EDGE 

Definition at line 122 of file MMLower.h.

◆ BUTTON_ECHO_MODE

enum class MMLower::BUTTON_ECHO_MODE
strong
Enumerator
PASSIVE 
ACTIVE 
MAX 

Definition at line 137 of file MMLower.h.

◆ COMM_CMD

enum class MMLower::COMM_CMD
strong
Enumerator
NONE 
SET_DC_MOTOR_DIR 
SET_ENCODER_DIR 
SET_SERVO_DIR 
SET_DC_MOTOR_SPEED_RANGE 
SET_SERVO_PULSE_RANGE 
SET_SERVO_ANGLE_RANGE 
SET_BUTTON_INIT 
SET_ENCODER_ECHO_MODE 
SET_IMU_ECHO_MODE 
SET_IMU_INIT 
SET_POWER_PARAM 
SET_DC_MOTOR_POWER 
SET_DC_MOTOR_SPEED 
SET_DC_MOTOR_ROTATE 
SET_ALL_DC_MOTOR_SPEED 
SET_SERVO_ANGLE 
SET_ALL_SERVO_ANGLE 
SET_MOVE_DISTANCE 
SET_ENCODER_RESET_COUNTER 
SET_STATE_LED 
SET_IMU_TO_ZERO 
SET_PID_PARAM 
SET_DC_BRAKE 
GET_BUTTON_STATE 
GET_BUTTONS_STATE 
GET_ENCODER_COUNTER 
GET_ALL_ENCODER_COUNTER 
GET_IMU_EULER 
GET_IMU_GYRO 
GET_IMU_ACC 
GET_POWER_INFO 
GET_ROTATE_STATE 
AUTO_SEND_BUTTON_STATE 
AUTO_SEND_ENCODER_COUNTER 
AUTO_SEND_IMU_EULER 
AUTO_SEND_IMU_GYRO 
AUTO_SEND_IMU_ACC 
ECHO_TEST 
F_VERSION 
F_BUILD_DAY 
F_DESCRIPTOR 
READ_MODEL_INDEX 
READ_ALL_INFO 
RUN_AUTO_QC 

Definition at line 64 of file MMLower.h.

◆ COMM_STATE

enum class MMLower::COMM_STATE
strong
Enumerator
WAIT_LEAD 
WAIT_NOT_LEAD 
WAIT_CMD 
ERROR 

Definition at line 56 of file MMLower.h.

◆ DIR

enum class MMLower::DIR
strong
Enumerator
REVERSE 
FORWARD 

Definition at line 131 of file MMLower.h.

◆ ENCODER_ECHO_MODE

enum class MMLower::ENCODER_ECHO_MODE
strong
Enumerator
PASSIVE 
ACTIVE 
MAX 

Definition at line 144 of file MMLower.h.

◆ IMU_ACC_FSR

enum class MMLower::IMU_ACC_FSR
strong
Enumerator
_2G 
_4G 
_8G 
_16G 

Definition at line 159 of file MMLower.h.

◆ IMU_ECHO_MODE

enum class MMLower::IMU_ECHO_MODE
strong
Enumerator
PASSIVE 
TIMING 
ACTIVE 
MAX 

Definition at line 151 of file MMLower.h.

◆ IMU_FIFO

enum class MMLower::IMU_FIFO
strong
Enumerator
ENABLE 
DISABLE 

Definition at line 191 of file MMLower.h.

◆ IMU_GYRO_FSR

enum class MMLower::IMU_GYRO_FSR
strong
Enumerator
_250DPS 
_500DPS 
_1000DPS 
_2000DPS 

Definition at line 167 of file MMLower.h.

◆ IMU_ODR

enum class MMLower::IMU_ODR
strong
Enumerator
_10_SPS 
_20_SPS 
_25_SPS 
_50_SPS 
_100_SPS 
_125_SPS 
_250_SPS 
_500_SPS 
_1000_SPS 
_2000_SPS 
_4000_SPS 
_8000_SPS 

Definition at line 175 of file MMLower.h.

◆ MOVE_ACTION

enum class MMLower::MOVE_ACTION
strong
Enumerator
STOP 
FORWARD 
BACKWARD 
LEFT 
RIGHT 

Definition at line 205 of file MMLower.h.

◆ MOVE_TYPE

enum class MMLower::MOVE_TYPE
strong
Enumerator
DIFF 
OMNI 

Definition at line 197 of file MMLower.h.

◆ RESULT

enum class MMLower::RESULT
strong
Enumerator
OK 
ERROR 
ERROR_SOFTSERIAL_BEGIN 
ERROR_INIT 
ERROR_WAIT_TIMEOUT 
ERROR_READ_TIMEOUT 
ERROR_SERVO_MIN_PULSE 
ERROR_SERVO_MAX_PULSE 
ERROR_SERVO_MIN_ANGLE 
ERROR_SERVO_MAX_ANGLE 
ERROR_MODE 
ERROR_INTERVAL 
ERROR_IMU_ACC_FSR 
ERROR_IMU_GYRO_FSR 
ERROR_IMU_ODR 
ERROR_MOTOR_SPEED 
ERROR_MOTOR_POWER 
ERROR_MOTOR1_SPEED 
ERROR_MOTOR2_SPEED 
ERROR_MOTOR3_SPEED 
ERROR_MOTOR4_SPEED 
ERROR_SERVO_ANGLE 
ERROR_SERVO1_ANGLE 
ERROR_SERVO2_ANGLE 
ERROR_SERVO3_ANGLE 
ERROR_SERVO4_ANGLE 
ERROR_MOVE_ACTION 
ERROR_MOVE_SPEED 
ERROR_MOVE_ENCODER 
ERROR_QC_IMU 
ERROR_POWER_VOLT_RANGE 

Definition at line 214 of file MMLower.h.

Constructor & Destructor Documentation

◆ MMLower()

MMLower::MMLower ( uint8_t rx,
uint8_t tx,
uint32_t baudrate )

Definition at line 9 of file MMLower.cpp.

Member Function Documentation

◆ EchoTest()

MMLower::RESULT MMLower::EchoTest ( void )

Definition at line 929 of file MMLower.cpp.

◆ GetAllEncoderCounter()

MMLower::RESULT MMLower::GetAllEncoderCounter ( int32_t * enCounter)

Definition at line 789 of file MMLower.cpp.

◆ GetAllInfo()

MMLower::RESULT MMLower::GetAllInfo ( AllInfo_t & info)

Definition at line 1052 of file MMLower.cpp.

◆ GetButtonsState()

MMLower::RESULT MMLower::GetButtonsState ( bool * btnsState)

Definition at line 744 of file MMLower.cpp.

◆ GetButtonState()

MMLower::RESULT MMLower::GetButtonState ( uint8_t num,
bool & btnState )

Definition at line 722 of file MMLower.cpp.

◆ GetEncoderCounter()

MMLower::RESULT MMLower::GetEncoderCounter ( uint8_t num,
int32_t & enCounter )

Definition at line 767 of file MMLower.cpp.

◆ GetFWBuildDay()

MMLower::RESULT MMLower::GetFWBuildDay ( String & date)

Definition at line 975 of file MMLower.cpp.

◆ GetFWDescriptor()

MMLower::RESULT MMLower::GetFWDescriptor ( String & descriptor)

Definition at line 1003 of file MMLower.cpp.

◆ GetFWVersion()

MMLower::RESULT MMLower::GetFWVersion ( String & version)

Definition at line 953 of file MMLower.cpp.

◆ GetIMUAcc()

MMLower::RESULT MMLower::GetIMUAcc ( double & x,
double & y,
double & z )

Definition at line 860 of file MMLower.cpp.

◆ GetIMUEuler()

MMLower::RESULT MMLower::GetIMUEuler ( int16_t & roll,
int16_t & pitch,
int16_t & yaw )

Definition at line 813 of file MMLower.cpp.

◆ GetIMUGyro()

MMLower::RESULT MMLower::GetIMUGyro ( double & x,
double & y,
double & z )

Definition at line 837 of file MMLower.cpp.

◆ GetModelIndex()

MMLower::RESULT MMLower::GetModelIndex ( uint8_t & index)

Definition at line 1031 of file MMLower.cpp.

◆ GetPowerInfo()

MMLower::RESULT MMLower::GetPowerInfo ( float & curVolt,
float & curVoltPerc )

Definition at line 883 of file MMLower.cpp.

◆ GetRotateState()

MMLower::RESULT MMLower::GetRotateState ( uint8_t num,
bool & isEnd )

Definition at line 907 of file MMLower.cpp.

◆ Init()

MMLower::RESULT MMLower::Init ( uint32_t timeout_ms = 1000)

Definition at line 15 of file MMLower.cpp.

◆ loop()

void MMLower::loop ( void )

Definition at line 1107 of file MMLower.cpp.

◆ onBtnChg()

void MMLower::onBtnChg ( BtnChgCallback callback)

Definition at line 1112 of file MMLower.cpp.

◆ RunAutoQC()

MMLower::RESULT MMLower::RunAutoQC ( void )

Definition at line 1082 of file MMLower.cpp.

◆ SetAllDCMotorSpeed()

MMLower::RESULT MMLower::SetAllDCMotorSpeed ( Motors_Param_t param)

Definition at line 422 of file MMLower.cpp.

◆ SetAllServoAngle()

MMLower::RESULT MMLower::SetAllServoAngle ( uint16_t angle1,
uint16_t angle2,
uint16_t angle3,
uint16_t angle4 )

Definition at line 504 of file MMLower.cpp.

◆ SetDCBrake()

MMLower::RESULT MMLower::SetDCBrake ( uint8_t num)

Definition at line 644 of file MMLower.cpp.

◆ SetDCMotorDir()

MMLower::RESULT MMLower::SetDCMotorDir ( uint8_t num,
DIR dir )

Definition at line 36 of file MMLower.cpp.

◆ SetDCMotorPower()

MMLower::RESULT MMLower::SetDCMotorPower ( uint8_t num,
int16_t power )

Definition at line 327 of file MMLower.cpp.

◆ SetDCMotorRotate()

MMLower::RESULT MMLower::SetDCMotorRotate ( uint8_t num,
int16_t maxSpeed,
uint16_t degree )

Definition at line 393 of file MMLower.cpp.

◆ SetDCMotorSpeed()

MMLower::RESULT MMLower::SetDCMotorSpeed ( uint8_t num,
int16_t speed )

Definition at line 360 of file MMLower.cpp.

◆ SetDCMotorSpeedRange()

MMLower::RESULT MMLower::SetDCMotorSpeedRange ( uint8_t num,
uint16_t min,
uint16_t max )

Definition at line 113 of file MMLower.cpp.

◆ SetEncoderDir()

MMLower::RESULT MMLower::SetEncoderDir ( uint8_t num,
DIR dir )

Definition at line 61 of file MMLower.cpp.

◆ SetEncoderResetCounter()

MMLower::RESULT MMLower::SetEncoderResetCounter ( uint8_t num)

Definition at line 593 of file MMLower.cpp.

◆ SetIMUEchoMode()

MMLower::RESULT MMLower::SetIMUEchoMode ( IMU_ECHO_MODE mode,
uint16_t echoIntervalMs )

Definition at line 216 of file MMLower.cpp.

◆ SetIMUInit()

MMLower::RESULT MMLower::SetIMUInit ( IMU_ACC_FSR accFSR,
IMU_GYRO_FSR gyroFSR,
IMU_ODR odr,
IMU_FIFO fifo )

Definition at line 251 of file MMLower.cpp.

◆ SetIMUToZero()

MMLower::RESULT MMLower::SetIMUToZero ( void )

Definition at line 698 of file MMLower.cpp.

◆ SetMoveDistance()

MMLower::RESULT MMLower::SetMoveDistance ( MOVE_TYPE type,
MOVE_ACTION action,
uint16_t speed,
uint16_t enCounter )

Definition at line 550 of file MMLower.cpp.

◆ SetPIDParam()

MMLower::RESULT MMLower::SetPIDParam ( uint8_t num,
uint8_t pidNum,
float kp,
float ki,
float kd )

Definition at line 618 of file MMLower.cpp.

◆ SetPowerParam()

MMLower::RESULT MMLower::SetPowerParam ( float fullVolt,
float cutOffVolt,
float alarmVolt )

Definition at line 294 of file MMLower.cpp.

◆ SetServoAngle()

MMLower::RESULT MMLower::SetServoAngle ( uint8_t num,
uint16_t angle )

Definition at line 472 of file MMLower.cpp.

◆ SetServoAngleRange()

MMLower::RESULT MMLower::SetServoAngleRange ( uint8_t num,
uint16_t min,
uint16_t max )

Definition at line 179 of file MMLower.cpp.

◆ SetServoDir()

MMLower::RESULT MMLower::SetServoDir ( uint8_t num,
DIR dir )

Definition at line 87 of file MMLower.cpp.

◆ SetServoPulseRange()

MMLower::RESULT MMLower::SetServoPulseRange ( uint8_t num,
uint16_t min,
uint16_t max )

Definition at line 142 of file MMLower.cpp.

◆ SetStateLED()

MMLower::RESULT MMLower::SetStateLED ( uint8_t brightness,
uint32_t colorRGB )

Definition at line 669 of file MMLower.cpp.

Member Data Documentation

◆ enCounter

int32_t MMLower::enCounter[MatrixR4_ENCODER_NUM]

Definition at line 335 of file MMLower.h.

◆ imuAccX

double MMLower::imuAccX

Definition at line 338 of file MMLower.h.

◆ imuAccY

double MMLower::imuAccY

Definition at line 338 of file MMLower.h.

◆ imuAccZ

double MMLower::imuAccZ

Definition at line 338 of file MMLower.h.

◆ imuGyroX

double MMLower::imuGyroX

Definition at line 337 of file MMLower.h.

◆ imuGyroY

double MMLower::imuGyroY

Definition at line 337 of file MMLower.h.

◆ imuGyroZ

double MMLower::imuGyroZ

Definition at line 337 of file MMLower.h.


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