Browse Source

增加限位开关判断到达位置

master
Lizongdi 2 months ago
parent
commit
877e1baa0d
  1. 4
      diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml
  2. 6
      diaoerqiege/BHBF_Robot_Lifting_Lug/BHBF_Robot_Lifting_Lug Debug.launch
  3. 21
      diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c
  4. 33
      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="-1256539702914033922" 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="-63235014752314356" 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="-1256539702914033922" 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="-63235014752314356" 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>

6
diaoerqiege/BHBF_Robot_Lifting_Lug/BHBF_Robot_Lifting_Lug Debug.launch

@ -7,7 +7,7 @@
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/> <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/> <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.enabled" value="false"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/> <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.limit_swo_clock.value" value=""/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{&quot;fItems&quot;:[{&quot;fIsFromMainTab&quot;:true,&quot;fPath&quot;:&quot;C:\\Users\\13752\\STM32CubeIDE\\git\\diaoerqiege\\BHBF_Robot_Lifting_Lug\\Debug\\BHBF_Robot_Lifting_Lug.elf&quot;,&quot;fProjectName&quot;:&quot;BHBF_Robot_Lifting_Lug&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/> <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{&quot;fItems&quot;:[{&quot;fIsFromMainTab&quot;:true,&quot;fPath&quot;:&quot;D:\\music\\huangjiabao_backup\\diaoerqiege\\BHBF_Robot_Lifting_Lug\\Debug\\BHBF_Robot_Lifting_Lug.elf&quot;,&quot;fProjectName&quot;:&quot;BHBF_Robot_Lifting_Lug&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/> <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.override_start_address_mode" value="default"/>
<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/> <stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/>
<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/> <booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/>
@ -60,12 +60,12 @@
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> <stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> <booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/> <booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> <intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="1"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/> <stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> <booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="C:\Users\13752\STM32CubeIDE\git\diaoerqiege\BHBF_Robot_Lifting_Lug\Debug\BHBF_Robot_Lifting_Lug.elf"/> <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="D:\music\huangjiabao_backup\diaoerqiege\BHBF_Robot_Lifting_Lug\Debug\BHBF_Robot_Lifting_Lug.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="BHBF_Robot_Lifting_Lug"/> <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="BHBF_Robot_Lifting_Lug"/>
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/> <booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912"/> <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1900810912"/>

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

@ -139,6 +139,10 @@ void Mode_Control()
} }
extern uint8_t Pin2;
extern uint8_t Pin3;
void IO_Control() void IO_Control()
{ {
GF_BSP_GPIO_SetIO(4, 1); GF_BSP_GPIO_SetIO(4, 1);
@ -155,14 +159,15 @@ void IO_Control()
} }
Pin2 = GF_BSP_GPIO_ReadIO(2);
Pin3 = GF_BSP_GPIO_ReadIO(3);
} }
uint8_t IsAllowRotation_AutoMode = 0; uint8_t IsAllowRotation_AutoMode = 0; // 是否允许转刀
int32_t knife_descent_height = 0; int32_t knife_descent_height = 0; // 屏幕配置值转换后
// 自动作业停止后默认上升高度为5mm int32_t knife_rising_height = 500; // 自动作业停止后默认上升高度为5mm
int32_t knife_rising_height = 500; int32_t knife_current_altitude = 0; // 激光1读数
int32_t knife_current_altitude = 0;
uint16_t delay_counts = 0;
uint8_t auto_work_mode_states = 5; uint8_t auto_work_mode_states = 5;
uint8_t auto_work_halt_states = 10; uint8_t auto_work_halt_states = 10;
@ -174,12 +179,12 @@ void Automatic_Operation()
{ {
switch(auto_work_mode_states) switch(auto_work_mode_states)
{ {
case 5: case 5: // 读一下激光高度
knife_current_altitude = GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance; knife_current_altitude = GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance;
auto_work_mode_states = 10; auto_work_mode_states = 10;
auto_work_halt_states = 10; auto_work_halt_states = 10;
break; break;
case 10: case 10: // 下刀
IsAllowRotation_AutoMode = Knife_Detection(); IsAllowRotation_AutoMode = Knife_Detection();
if(IsAllowRotation_AutoMode == 1) if(IsAllowRotation_AutoMode == 1)
{ {

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

@ -228,15 +228,23 @@ static const int32_t SliderSpeed = 50;
const uint32_t up_limit = 6200; const uint32_t up_limit = 6200;
const uint8_t down_limit = 0; const uint8_t down_limit = 0;
uint8_t Pin2 = -1; //上限位,为0表示限位触发
uint8_t Pin3 = -1; //下限位,为0表示限位触发
void Manual_Up_State_Do(void) void Manual_Up_State_Do(void)
{ {
int32_t SliderSpeed_PPS = SliderSpeed_mmps_2_pps(SliderSpeed); int32_t SliderSpeed_PPS = SliderSpeed_mmps_2_pps(SliderSpeed);
GV.LS_FrontEnd_Motor.Target_Position = -10000000; GV.LS_FrontEnd_Motor.Target_Position = -10000000;
GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS; GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS;
if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance >= up_limit) /*if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance >= up_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance >= up_limit) || (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance >= up_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance >= up_limit)) || (GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance >= up_limit))
{
GV.LS_FrontEnd_Motor.Target_Velcity = 0;
}*/
if (!Pin2)
{ {
GV.LS_FrontEnd_Motor.Target_Velcity = 0; GV.LS_FrontEnd_Motor.Target_Velcity = 0;
} }
@ -248,13 +256,17 @@ void Manual_Down_State_Do(void)
GV.LS_FrontEnd_Motor.Target_Position = 10000000; GV.LS_FrontEnd_Motor.Target_Position = 10000000;
GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS; GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS;
if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance <= down_limit) /*if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance <= down_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance <= down_limit) || (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance <= down_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance <= down_limit)) || (GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance <= down_limit))
{ {
GV.LS_FrontEnd_Motor.Target_Velcity = 0; GV.LS_FrontEnd_Motor.Target_Velcity = 0;
} }*/
if (!Pin3)
{
GV.LS_FrontEnd_Motor.Target_Velcity = 0;
}
} }
// 定义前端升降电机速度,单位0.1mm/s // 定义前端升降电机速度,单位0.1mm/s
@ -266,9 +278,14 @@ void Manual_Low_Speed_Up_State_Do(void)
GV.LS_FrontEnd_Motor.Target_Position = -10000000; GV.LS_FrontEnd_Motor.Target_Position = -10000000;
GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS; GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS;
if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance >= up_limit) /*if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance >= up_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance >= up_limit) || (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance >= up_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance >= up_limit)) || (GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance >= up_limit))
{
GV.LS_FrontEnd_Motor.Target_Velcity = 0;
}*/
if (!Pin2)
{ {
GV.LS_FrontEnd_Motor.Target_Velcity = 0; GV.LS_FrontEnd_Motor.Target_Velcity = 0;
} }
@ -280,13 +297,17 @@ void Manual_low_speed_Down_State_Do(void)
GV.LS_FrontEnd_Motor.Target_Position = 10000000; GV.LS_FrontEnd_Motor.Target_Position = 10000000;
GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS; GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS;
if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance <= down_limit) /*if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance <= down_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance <= down_limit) || (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance <= down_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance <= down_limit)) || (GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance <= down_limit))
{ {
GV.LS_FrontEnd_Motor.Target_Velcity = 0; GV.LS_FrontEnd_Motor.Target_Velcity = 0;
} }*/
if (!Pin3)
{
GV.LS_FrontEnd_Motor.Target_Velcity = 0;
}
} }

Loading…
Cancel
Save