将各类库静态化
This commit is contained in:
parent
8e04862c86
commit
dea3f23e52
@ -6,26 +6,27 @@
|
|||||||
#include <NeoHWSerial.h>
|
#include <NeoHWSerial.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Move::Move()
|
|
||||||
{
|
//静态变量
|
||||||
global_speed_rate = DEFAULT_GLOBAL_SPEED_RATE;
|
float Move::global_speed_rate = DEFAULT_GLOBAL_SPEED_RATE; //全局速度比率
|
||||||
current_direction = STOP;
|
uint8_t Move::current_direction = STOP; //当前运动状态
|
||||||
current_speed_rate = 0.0;
|
float Move::current_speed_rate = 0.0; //当前运动速度比率
|
||||||
}
|
float Move::current_turn_speed_rate; //当前转向时一侧减速的比率
|
||||||
|
|
||||||
|
|
||||||
|
Move::Move() {}
|
||||||
|
|
||||||
|
|
||||||
Move::Move(float global_speed_rate)
|
Move::Move(float global_speed_rate)
|
||||||
{
|
{
|
||||||
Move();
|
Move::global_speed_rate = global_speed_rate;
|
||||||
|
|
||||||
this->global_speed_rate = global_speed_rate;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//设置全局速度比率
|
//设置全局速度比率
|
||||||
void Move::SetGlobalSpeedRate(float global_speed_rate)
|
void Move::SetGlobalSpeedRate(float global_speed_rate)
|
||||||
{
|
{
|
||||||
this->global_speed_rate = global_speed_rate;
|
Move::global_speed_rate = global_speed_rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -55,29 +55,29 @@ public:
|
|||||||
Move();
|
Move();
|
||||||
Move(float global_speed_rate);
|
Move(float global_speed_rate);
|
||||||
|
|
||||||
void SetGlobalSpeedRate(float global_speed_rate); //设置全局速度比率
|
static void SetGlobalSpeedRate(float global_speed_rate); //设置全局速度比率
|
||||||
|
|
||||||
uint8_t GetCurrentMove(void); //获取当前运动方向
|
static uint8_t GetCurrentMove(void); //获取当前运动方向
|
||||||
float GetCurrentSpeedRate(void); //获取当前运动速度比率
|
static float GetCurrentSpeedRate(void); //获取当前运动速度比率
|
||||||
float GetCurrentTurnSpeedRate(void); //获取当前转向时一侧减速的比率
|
static float GetCurrentTurnSpeedRate(void); //获取当前转向时一侧减速的比率
|
||||||
|
|
||||||
void Wheel(uint8_t wheel, uint8_t rotation, float speed_rate = 1.0); //控制某个轮子转动
|
static void Wheel(uint8_t wheel, uint8_t rotation, float speed_rate = 1.0); //控制某个轮子转动
|
||||||
|
|
||||||
void Forward(float speed_rate = 1.0); //前进
|
static void Forward(float speed_rate = 1.0); //前进
|
||||||
void Backward(float speed_rate = 1.0); //后退
|
static void Backward(float speed_rate = 1.0); //后退
|
||||||
void ForLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前左转
|
static void ForLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前左转
|
||||||
void ForRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前右转
|
static void ForRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前右转
|
||||||
void BackLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后左转
|
static void BackLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后左转
|
||||||
void BackRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后右转
|
static void BackRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后右转
|
||||||
void Stop(void); //制动
|
static void Stop(void); //制动
|
||||||
|
|
||||||
void MoveDirection(uint8_t direction, float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向某方向运动
|
static void MoveDirection(uint8_t direction, float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向某方向运动
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float global_speed_rate; //全局速度比率
|
static float global_speed_rate; //全局速度比率
|
||||||
uint8_t current_direction; //当前运动状态
|
static uint8_t current_direction; //当前运动状态
|
||||||
float current_speed_rate; //当前运动速度比率
|
static float current_speed_rate; //当前运动速度比率
|
||||||
float current_turn_speed_rate; //当前转向时一侧减速的比率
|
static float current_turn_speed_rate; //当前转向时一侧减速的比率
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -5,13 +5,11 @@
|
|||||||
|
|
||||||
//静态变量
|
//静态变量
|
||||||
HandleMessageFunction Radio::hm_func;
|
HandleMessageFunction Radio::hm_func;
|
||||||
NeoHWSerial* Radio::NeoSerialX;
|
NeoHWSerial* Radio::NeoSerialX = &RADIO_SERIAL_NUM;
|
||||||
|
|
||||||
|
|
||||||
Radio::Radio()
|
Radio::Radio()
|
||||||
{
|
{
|
||||||
NeoSerialX = &RADIO_SERIAL_NUM;
|
|
||||||
|
|
||||||
EnableReceiveInterrupt();
|
EnableReceiveInterrupt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -19,7 +17,7 @@ Radio::Radio()
|
|||||||
//打开串口
|
//打开串口
|
||||||
void Radio::BeginTransmit(unsigned long baud_rate)
|
void Radio::BeginTransmit(unsigned long baud_rate)
|
||||||
{
|
{
|
||||||
NeoSerialX->begin(RADIO_BAUD_RATE);
|
NeoSerialX->begin(baud_rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,6 +7,17 @@
|
|||||||
#include <NeoHWSerial.h>
|
#include <NeoHWSerial.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//静态变量
|
||||||
|
int Sensor::gray_1_gate = DEFAULT_GRAY_1_GATE;
|
||||||
|
int Sensor::gray_2_gate = DEFAULT_GRAY_2_GATE;
|
||||||
|
int Sensor::gray_3_gate = DEFAULT_GRAY_3_GATE;
|
||||||
|
int Sensor::gray_4_gate = DEFAULT_GRAY_4_GATE;
|
||||||
|
int Sensor::gray_5_gate = DEFAULT_GRAY_5_GATE;
|
||||||
|
int Sensor::gray_6_gate = DEFAULT_GRAY_6_GATE;
|
||||||
|
int Sensor::gray_7_gate = DEFAULT_GRAY_7_GATE;
|
||||||
|
|
||||||
|
|
||||||
Sensor::Sensor()
|
Sensor::Sensor()
|
||||||
{
|
{
|
||||||
pinMode(BUTTON_1_OUT, INPUT_PULLUP);
|
pinMode(BUTTON_1_OUT, INPUT_PULLUP);
|
||||||
@ -38,15 +49,6 @@ Sensor::Sensor()
|
|||||||
|
|
||||||
pinMode(BUTTON_2_VCC, OUTPUT);
|
pinMode(BUTTON_2_VCC, OUTPUT);
|
||||||
digitalWrite(BUTTON_2_VCC, HIGH);
|
digitalWrite(BUTTON_2_VCC, HIGH);
|
||||||
|
|
||||||
//设置灰度值为默认值
|
|
||||||
SetGrayGate(GRAY_1, DEFAULT_GRAY_1_GATE);
|
|
||||||
SetGrayGate(GRAY_2, DEFAULT_GRAY_2_GATE);
|
|
||||||
SetGrayGate(GRAY_3, DEFAULT_GRAY_3_GATE);
|
|
||||||
SetGrayGate(GRAY_4, DEFAULT_GRAY_4_GATE);
|
|
||||||
SetGrayGate(GRAY_5, DEFAULT_GRAY_5_GATE);
|
|
||||||
SetGrayGate(GRAY_6, DEFAULT_GRAY_6_GATE);
|
|
||||||
SetGrayGate(GRAY_7, DEFAULT_GRAY_7_GATE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -67,35 +67,35 @@ public:
|
|||||||
Sensor();
|
Sensor();
|
||||||
|
|
||||||
//设置灰度传感器临界值
|
//设置灰度传感器临界值
|
||||||
void SetGrayGate(uint8_t gray_sensor_num, int gate);
|
static void SetGrayGate(uint8_t gray_sensor_num, int gate);
|
||||||
|
|
||||||
//使灰度传感器闪烁
|
//使灰度传感器闪烁
|
||||||
void FlashGraySensor(uint8_t gray_sensor_num);
|
static void FlashGraySensor(uint8_t gray_sensor_num);
|
||||||
|
|
||||||
//灰度传感器判断下方是否为白色
|
//灰度传感器判断下方是否为白色
|
||||||
bool IsWhite(uint8_t gray_sensor_num);
|
static bool IsWhite(uint8_t gray_sensor_num);
|
||||||
|
|
||||||
//灰度传感器灰度值偏离比例,即 (gray_gate - gray_val) / gray_gate
|
//灰度传感器灰度值偏离比例,即 (gray_gate - gray_val) / gray_gate
|
||||||
float GrayDeviationRate(uint8_t gray_sensor_num);
|
static float GrayDeviationRate(uint8_t gray_sensor_num);
|
||||||
|
|
||||||
//碰撞传感器(开关)判断是否闭合
|
//碰撞传感器(开关)判断是否闭合
|
||||||
bool IsPushed(uint8_t button_num);
|
static bool IsPushed(uint8_t button_num);
|
||||||
|
|
||||||
//开启 HMC5883 的 I2C 通讯
|
//开启 HMC5883 的 I2C 通讯
|
||||||
void StartHMC5883(void);
|
static void StartHMC5883(void);
|
||||||
|
|
||||||
//返回朝向角
|
//返回朝向角
|
||||||
float GetAngle(void);
|
static float GetAngle(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//灰度传感器临界值
|
//灰度传感器临界值
|
||||||
int gray_1_gate;
|
static int gray_1_gate;
|
||||||
int gray_2_gate;
|
static int gray_2_gate;
|
||||||
int gray_3_gate;
|
static int gray_3_gate;
|
||||||
int gray_4_gate;
|
static int gray_4_gate;
|
||||||
int gray_5_gate;
|
static int gray_5_gate;
|
||||||
int gray_6_gate;
|
static int gray_6_gate;
|
||||||
int gray_7_gate;
|
static int gray_7_gate;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -11,16 +11,17 @@
|
|||||||
#define BYTE_TO_HW(A, B) ((((uint16_t)(A)) << 8) | (uint8_t)(B))
|
#define BYTE_TO_HW(A, B) ((((uint16_t)(A)) << 8) | (uint8_t)(B))
|
||||||
|
|
||||||
|
|
||||||
Servo::Servo()
|
//静态变量
|
||||||
{
|
NeoHWSerial* Servo::NeoSerialX = &SERVO_SERIAL_NUM;
|
||||||
NeoSerialX = &SERVO_SERIAL_NUM; //默认使用 Mega 板 18 19 作为串口通信端口
|
|
||||||
}
|
|
||||||
|
Servo::Servo() {}
|
||||||
|
|
||||||
|
|
||||||
//打开串口
|
//打开串口
|
||||||
void Servo::BeginTransmit(unsigned long baud_rate)
|
void Servo::BeginTransmit(unsigned long baud_rate)
|
||||||
{
|
{
|
||||||
NeoSerialX->begin(SERVO_BAUD_RATE);
|
NeoSerialX->begin(baud_rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -53,28 +53,28 @@ class Servo
|
|||||||
public:
|
public:
|
||||||
Servo();
|
Servo();
|
||||||
|
|
||||||
void BeginTransmit(unsigned long baud_rate = SERVO_BAUD_RATE); //打开串口
|
static void BeginTransmit(unsigned long baud_rate = SERVO_BAUD_RATE); //打开串口
|
||||||
|
|
||||||
void MoveServo(uint8_t servo_id, uint16_t position, uint16_t time); //控制单个舵机转动
|
static void MoveServo(uint8_t servo_id, uint16_t position, uint16_t time); //控制单个舵机转动
|
||||||
|
|
||||||
void RunActionGroup(uint8_t action_num, uint16_t times); //运行指定动作组
|
static void RunActionGroup(uint8_t action_num, uint16_t times); //运行指定动作组
|
||||||
void StopActionGroup(void); //停止动作组运行
|
static void StopActionGroup(void); //停止动作组运行
|
||||||
void SetActionGroupSpeed(uint8_t action_num, float speed); //设定指定动作组的运行速度
|
static void SetActionGroupSpeed(uint8_t action_num, float speed); //设定指定动作组的运行速度
|
||||||
void SetAllActionGroupSpeed(float speed); //设置所有动作组的运行速度
|
static void SetAllActionGroupSpeed(float speed); //设置所有动作组的运行速度
|
||||||
|
|
||||||
void OpenClaw(void); //打开爪子
|
static void OpenClaw(void); //打开爪子
|
||||||
|
|
||||||
void Reset(float speed = SERVO_NORMAL_SPEED); //恢复初始状态,指定速度
|
static void Reset(float speed = SERVO_NORMAL_SPEED); //恢复初始状态,指定速度
|
||||||
void Down(float speed = SERVO_NORMAL_SPEED); //放下爪子,指定速度
|
static void Down(float speed = SERVO_NORMAL_SPEED); //放下爪子,指定速度
|
||||||
void Catch(float speed = SERVO_NORMAL_SPEED); //抓取,指定速度
|
static void Catch(float speed = SERVO_NORMAL_SPEED); //抓取,指定速度
|
||||||
void Release(float speed = SERVO_NORMAL_SPEED); //释放,指定速度
|
static void Release(float speed = SERVO_NORMAL_SPEED); //释放,指定速度
|
||||||
void GainDown(float speed = SERVO_NORMAL_SPEED); //增益点放下爪子,指定速度
|
static void GainDown(float speed = SERVO_NORMAL_SPEED); //增益点放下爪子,指定速度
|
||||||
void GainCatch(float speed = SERVO_NORMAL_SPEED); //增益点抓取,指定速度
|
static void GainCatch(float speed = SERVO_NORMAL_SPEED); //增益点抓取,指定速度
|
||||||
void GainUp(float speed = SERVO_NORMAL_SPEED); //增益点抬升,指定速度
|
static void GainUp(float speed = SERVO_NORMAL_SPEED); //增益点抬升,指定速度
|
||||||
void StopAndReset(float speed = SERVO_NORMAL_SPEED); //停止舵机并恢复初始状态,指定速度
|
static void StopAndReset(float speed = SERVO_NORMAL_SPEED); //停止舵机并恢复初始状态,指定速度
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NeoHWSerial* NeoSerialX;
|
static NeoHWSerial* NeoSerialX;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user