r1upper/User/module/take.hpp
2025-04-12 15:18:06 +08:00

78 lines
1.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef TAKE_HPP
#define TAKE_HPP
#include "djiMotor.h"
#include "pid.h"
typedef enum
{
//上下3508顶端
POINT_TOP = -2280,
//上下3508暂停点
POINT_MID = -1720,
//上下3508取球点
POINT_BUTTOM = 0,
//前后2006取球点
POINT_TAKE = -730,
//前后2006放球点
POINT_PUT = 0,
//翻转3508放球点
POINT_TURN_LEFT = -350,
POINT_TURN_RIGHT = 350,
POINT_TURN_ZERO = 0,
//归零死区,没有柔性控制,防止堵转
POINT_DEAD = 5,
}point_e;//存放位置宏定义
typedef enum
{
MOTOR_UP = 0,
MOTOR_TURN = 1,
MOTOR_RING_RIGHT = 2,
MOTOR_RING_LEFT = 3,
MOTOR_NUM
}motorput_e;
class Take
{
public:
Take();
//下降到取球点
void fall();
void mid();//平常停在中间
void top();
void putRight();
void putLeft();
void takeRight();
void takeLeft();
void left();
void right();
void turnMid();
void turnFlow();
//暂存要发送的电流
int16_t result[MOTOR_NUM];
//电机状态
private:
motor_measure_t* putMotor[MOTOR_NUM];
//上下3508pid
static const float TakeRing_speed_PID[3];
static const float TakeRing_angle_PID[3];
//翻转3508pid
static const float M3508_speed_PID[3];
static const float M3508_angle_PID[3];
//前后与夹球2006pid
static const float Turn_speed_PID[3];
static const float Turn_angle_PID[3];
//电机速度pid结构体
pid_type_def speed_pid[MOTOR_NUM];
//位置环pid
pid_type_def angle_pid[MOTOR_NUM];
//暂存目标位置
//0上下1翻转2前后3夹球
float angleSet[MOTOR_NUM];
};
#endif