123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * @Author: Sorzn
- * @Date: 2019-12-12 14:33:50
- * @LastEditTime: 2019-12-13 15:47:59
- * @Description: M5Stack project
- * @FilePath: /M5Stack/examples/Modules/BaseX/BaseX.h
- */
- #ifndef __BASE_X_H__
- #define __BASE_X_H__
- #include "Arduino.h"
- #define BASE_X_ADDR (0x22)
- #define BASE_X_SERVO_ANGLE_ADDR (0x00)
- #define BASE_X_SERVO_PULSE_ADDR (0x10)
- #define BASE_X_PWM_DUTY_ADDR (0x20)
- #define BASE_X_ENCODER_ADDR (0x30)
- #define BASE_X_SPEED_ADDR (0x40)
- /*
- | 0 | 1 | 2 | 3 | 4, 5, 6, 7 | 8
- | 9 | 10 | 11 | 12 | | mod | position-p |
- position-i | position-d | position-point | position-max-speed | speed-p |
- speed-i | speed-d | speed-point |
- */
- #define BASE_X_CONFIG_ADDR (0x50)
- #define NORMAL_MODE (0x00)
- #define POSITION_MODE (0x01)
- #define SPEED_MODE (0x02)
- class BASE_X {
- public:
- void SetMode(uint8_t pos, uint8_t mode);
- int32_t GetEncoderValue(uint8_t pos);
- void SetEncoderValue(uint8_t pos, int32_t encode);
- void SetMotorSpeed(uint8_t pos, int8_t duty);
- int8_t GetMotorSpeed(uint8_t pos);
- int8_t GetMotorSpeed20MS(uint8_t pos);
- void SetPositionPID(uint8_t pos, uint8_t kp, uint8_t ki, uint8_t kd);
- void SetPositionPoint(uint8_t pos, int32_t position_point);
- void SetPostionPIDMaxSpeed(uint8_t pos, uint8_t max_pwm);
- void SetSpeedPID(uint8_t pos, uint8_t kp, uint8_t ki, uint8_t kd);
- void SetSpeedPoint(uint8_t pos, int8_t speed_point);
- void SetServoAngle(uint8_t pos, uint8_t angle);
- void SetServoPulseWidth(uint8_t pos, uint16_t width);
- private:
- uint8_t CheckPos(uint8_t pos);
- };
- #endif
|