Browse Source

新增强磨机控制

master
HJB\13752 3 months ago
parent
commit
ccf81e1bff
  1. 4
      diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml
  2. 7
      diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/FSM.h
  3. 4
      diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/robot_state.h
  4. 72
      diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c
  5. 8
      diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/main.c
  6. 10
      diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/robot_state.c

4
diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="464747038937607816" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1478844030219557014" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="464747038937607816" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1478844030219557014" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>

7
diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/FSM.h

@ -26,6 +26,13 @@ typedef enum _Front_MoveSTATE_t
} Front_MoveSTATE_t; } Front_MoveSTATE_t;
typedef enum _Strong_Grinding_Machine_MoveSTATE_t
{
STRONG_GRINDING_MACHINE_HALT_STATE = 0,
STRONG_GRINDING_MACHINE_MOTION_STATE,
} Strong_Grinding_Machine_MoveSTATE_t;
typedef struct _transition_t typedef struct _transition_t
{ {
int State; //状态 int State; //状态

4
diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/robot_state.h

@ -25,4 +25,8 @@ extern void Manual_Up_State_Do(void);
extern void Manual_Down_State_Do(void); extern void Manual_Down_State_Do(void);
extern void FrontEnd_Halt_State_Do(void); extern void FrontEnd_Halt_State_Do(void);
// ********强磨机运动控制***********
extern void Strong_Grinding_Machine_Halt_State_Do(void);
extern void Strong_Grinding_Machine_Motion_State_Do(void);
#endif /* INC_ROBOT_STATE_H_ */ #endif /* INC_ROBOT_STATE_H_ */

72
diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c

@ -12,6 +12,7 @@
#include "msp_TL720D.h" #include "msp_TL720D.h"
#include "robot_state.h" #include "robot_state.h"
#include "bsp_TIMER.h" #include "bsp_TIMER.h"
#include "msp_Strong_grinding_machine.h"
void action_perfrom(transition_t transitions[], int length, int state); void action_perfrom(transition_t transitions[], int length, int state);
@ -24,6 +25,8 @@ static void Frontend_Control();
MoveSTATE_t CurrentMoveState; MoveSTATE_t CurrentMoveState;
Front_MoveSTATE_t CurrentFrontEndState; Front_MoveSTATE_t CurrentFrontEndState;
Strong_Grinding_Machine_MoveSTATE_t StrongGrindingMachineCurrentState;
static int index_counter = 0; static int index_counter = 0;
@ -34,7 +37,6 @@ transition_t MoveTransitions[] =
{ Move_HALT, HALT_State_Do }, { Move_HALT, HALT_State_Do },
}; };
transition_t FrontendMoveTransitions[] = transition_t FrontendMoveTransitions[] =
{ {
{ HALT_STATE, FrontEnd_Halt_State_Do}, { HALT_STATE, FrontEnd_Halt_State_Do},
@ -43,6 +45,16 @@ transition_t FrontendMoveTransitions[] =
}; };
transition_t StrongGrindingMachineTransitions[] =
{
{ STRONG_GRINDING_MACHINE_HALT_STATE, Strong_Grinding_Machine_Halt_State_Do},
{ STRONG_GRINDING_MACHINE_MOTION_STATE, Strong_Grinding_Machine_Motion_State_Do},
};
void Fsm_Init() void Fsm_Init()
{ {
GF_BSP_Interrupt_Add_CallBack( GF_BSP_Interrupt_Add_CallBack(
@ -60,9 +72,67 @@ void GF_Dispatch()
// 前端控制 // 前端控制
Frontend_Control(); Frontend_Control();
//强磨机控制
Strong_Grinding_Machine_Control();
action_perfrom(MoveTransitions,sizeof(MoveTransitions) / sizeof(transition_t), CurrentMoveState); action_perfrom(MoveTransitions,sizeof(MoveTransitions) / sizeof(transition_t), CurrentMoveState);
action_perfrom(FrontendMoveTransitions, action_perfrom(FrontendMoveTransitions,
sizeof(FrontendMoveTransitions) / sizeof(transition_t), CurrentFrontEndState); sizeof(FrontendMoveTransitions) / sizeof(transition_t), CurrentFrontEndState);
action_perfrom(StrongGrindingMachineTransitions,
sizeof(StrongGrindingMachineTransitions) / sizeof(transition_t), StrongGrindingMachineCurrentState);
}
uint8_t IsAllowRotation = 0;
void Strong_Grinding_Machine_Control()
{
GF_BSP_GPIO_SetIO(4, 1);
IsAllowRotation = Knife_Detection();
if(IsAllowRotation == 1)
{
if(GV.MK32_Key.CH7_SD == -1000)
{
StrongGrindingMachineCurrentState = STRONG_GRINDING_MACHINE_MOTION_STATE;
}
else{
StrongGrindingMachineCurrentState = STRONG_GRINDING_MACHINE_HALT_STATE;
}
}
else{
StrongGrindingMachineCurrentState = STRONG_GRINDING_MACHINE_HALT_STATE;
}
}
uint8_t loosening_knife_signal = 0;
uint8_t clamping_knife_signal = 0;
int Knife_Detection(void)
{
// uint8_t loosening_knife_signal = 1;
// uint8_t clamping_knife_signal = 1;
// 夹刀信号检测
clamping_knife_signal = GF_BSP_GPIO_ReadIO(0);
// 松刀信号检测
loosening_knife_signal = GF_BSP_GPIO_ReadIO(1);
if(loosening_knife_signal == 0)
{
return 0;
}
else if(clamping_knife_signal == 0)
{
return 1;
}
else{
return 0;
}
} }
void Frontend_Control() void Frontend_Control()

8
diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/main.c

@ -35,6 +35,7 @@
#include "motors.h" #include "motors.h"
#include "SliderControl.h" #include "SliderControl.h"
#include "msp_zhr29_laser_sensor.h" #include "msp_zhr29_laser_sensor.h"
#include "msp_Strong_grinding_machine.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
@ -168,7 +169,6 @@ int main(void)
while (1) while (1)
{ {
//MX_LWIP_Process(); //MX_LWIP_Process();
/* USER CODE END WHILE */ /* USER CODE END WHILE */
@ -272,6 +272,9 @@ void CV_GV_Init()
P_MK32 = &GV.MK32_Key; P_MK32 = &GV.MK32_Key;
// 强磨机默认发送停止命令
strong_grinding_machine_cmd = 0;
// �?光测距传感器指针同步 // �?光测距传感器指针同步
g_zhr29_200_laser_sensor_1 = &GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance; g_zhr29_200_laser_sensor_1 = &GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance;
g_zhr29_200_laser_sensor_2 = &GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance; g_zhr29_200_laser_sensor_2 = &GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance;
@ -340,6 +343,9 @@ void GF_Robot_Init()
// �?光测距传感器�?115200 // �?光测距传感器�?115200
zhr29_200_laser_sensor_intialize(&RS_485_3_UART_Handler); zhr29_200_laser_sensor_intialize(&RS_485_3_UART_Handler);
// 强磨机
strong_grinding_machine_intialize(&RS_485_2_UART_Handler);
Fsm_Init(); Fsm_Init();
uint8_t _state = 1; uint8_t _state = 1;

10
diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/robot_state.c

@ -6,6 +6,7 @@
*/ */
#include "robot_state.h" #include "robot_state.h"
#include "bsp_GPIO.h" #include "bsp_GPIO.h"
#include "msp_Strong_grinding_machine.h"
#define PI 3.1415926 #define PI 3.1415926
@ -259,6 +260,15 @@ void FrontEnd_Halt_State_Do(void)
GV.LS_FrontEnd_Motor.Target_Velcity = 0; GV.LS_FrontEnd_Motor.Target_Velcity = 0;
} }
void Strong_Grinding_Machine_Halt_State_Do(void)
{
strong_grinding_machine_cmd = 0;
}
void Strong_Grinding_Machine_Motion_State_Do(void)
{
strong_grinding_machine_cmd = 1;
}
//void Manual_Up_Down_State_Do() //void Manual_Up_Down_State_Do()

Loading…
Cancel
Save