添加文件1和文件2
This commit is contained in:
42
Mecanum Wheel moving project 1/Core/Inc/M3508.h
Normal file
42
Mecanum Wheel moving project 1/Core/Inc/M3508.h
Normal file
@@ -0,0 +1,42 @@
|
||||
#ifndef __M3508_H
|
||||
#define __M3508_H
|
||||
#include "main.h"
|
||||
#include "PID.h"
|
||||
|
||||
// <20><><EFBFBD>̲<EFBFBD><CCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʻ<EFBFBD>е<EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define WHEEL_RADIUS 0.075f// <20><><EFBFBD>Ӱ뾶 (<28><>)
|
||||
#define WHEELBASE_WIDTH 0.21f // <20>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>/2 (<28><>)
|
||||
#define WHEELBASE_LENGTH 0.17f // <20>־<D6BE><E0B3A4>/2 (<28><>)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t ecd;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ -16384--+16384
|
||||
int16_t speed_rpm;//ת<><D7AA> תÿ<D7AA><C3BF><EFBFBD><EFBFBD>
|
||||
int16_t given_current;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
uint8_t temperate;//<2F><><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD>
|
||||
int16_t last_ecd;//<2F>ϴα<CFB4><CEB1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
} motor_measure_t;
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽṹ<C6BD><E1B9B9>
|
||||
typedef struct {
|
||||
motor_measure_t measure; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ٶȵ<D9B6>λ<EFBFBD><CEBB>RPM<50><4D>
|
||||
PID_Controller_t speed_pid; // <20>ٶȻ<D9B6>PID
|
||||
float target_speed; // Ŀ<><C4BF><EFBFBD>ٶ<EFBFBD> (rad/s)
|
||||
} Motor_Controller_t;
|
||||
|
||||
|
||||
extern motor_measure_t motor_chassis[4];
|
||||
extern Motor_Controller_t motor_controller[4];
|
||||
extern int16_t motor_commands[4];
|
||||
|
||||
|
||||
extern void CAN_cmd_chassis(int16_t motor1, int16_t motor2, int16_t motor3, int16_t motor4);
|
||||
extern float RPM_To_RadPerSec(int16_t rpm);
|
||||
extern int16_t RadPerSec_To_RPM(float rad_per_sec);
|
||||
extern void Set_Motor_Target_Speed(uint8_t motor_id, float target_speed_rad_s);
|
||||
extern void Motor_Speed_Control_Task(float dt);
|
||||
extern void Drive_Motor(float vx, float vy, float vz);
|
||||
extern float Map_Remote_to_Speed(int16_t input, float max_speed);
|
||||
extern void Process_Remote_Control(void);
|
||||
#endif
|
||||
Reference in New Issue
Block a user