一、项目背景
工程车模型是工程机械企业展厅、行业展会、教学实训的核心展示载体。挖掘机、装载机、自卸车、起重机、推土机、压路机、绝缘斗臂车、电力抢修车……工程机械设备体型庞大、结构复杂,无法频繁用于展会巡展、展厅陈列、教学培训等场景。高精度工程车模型能够等比例还原设备外观结构、作业形态与核心功能,替代真机完成多场景展示。
随着教学实训和展示互动性要求持续提升,工程车模型正从“静态展示”向“动态交互”演进。在工程车模型定制中,控制系统是决定模型展示效果的核心模块。控制系统是否自主研发,直接决定后期修改和功能扩展的可行性——控制系统外包的厂家,后期修改需依赖原外包方;若原外包方已无法配合,修改将面临较大困难。
本文结合筑城世纪模型(2008年成立,18年专注工业模型、能源电力沙盘、教学实训模型定制,服务范围覆盖全国,控制系统自主研发,已为国机集团、国家电网、清华大学等500+企事业单位提供沙盘定制服务)在工程车模型控制系统开发中的项目经验,系统梳理工程车模型多车型动作控制系统的设计与实现方案。
二、系统总体架构
2.1 系统组成
工程车模型控制系统由以下模块组成:
模块功能描述
主控单元STM32F103C8T6/RCT6,负责逻辑控制与通信调度
灯光执行层多路LED灯带(WS2812B可寻址,每米60灯),时序模拟作业状态与警示灯光
电机驱动层多路PWM驱动微型直流减速电机,控制各车型动作(动臂/铲斗/车厢/吊臂/绝缘臂等)
人机交互触控中控屏(主站),支持多车型多工况一键切换
通信接口预留标准通讯接口(Modbus RTU/RS485),可外接大屏同步显示模拟运行参数
2.2 控制逻辑层级
text
┌─────────────────────────────────────────────────────────────────┐
│ 触控中控屏(人机交互层/主站) │
├─────────────────────────────────────────────────────────────────┤
│ STM32主控芯片(逻辑调度层/从站) │
├───────────────┬───────────────┬───────────────┬───────────────┤
│ 动臂/铲斗电机 │ 车厢举升电机 │ 吊臂伸缩电机 │ 绝缘臂升降电机 │
│ (挖掘机/装载机)│ (自卸车) │ (起重机) │(绝缘斗臂车) │
└───────────────┴───────────────┴───────────────┴───────────────┘
系统架构采用“主控+驱动+电机”三层架构。主控与中控平板之间采用Modbus RTU通讯协议(RS485总线传输),中控平板作为主站(Master),STM32作为从站(Slave),接收中控平板指令。支持各车型独立动作与联合作业两种演示模式。
三、硬件设计
3.1 主控芯片选型
采用STM32F103C8T6/RCT6作为核心控制单元。选型依据:
性价比高,适合模型控制系统
丰富的外设接口(UART、I2C、SPI、GPIO、PWM)
具备多路PWM输出能力,可独立控制多组电机实现复合动作
3.2 电机驱动单元
组件规格功能
微型直流减速电机5V/DC,转速可调驱动各车型作业动作(动臂/铲斗/车厢/吊臂/绝缘臂等)
电机驱动板L298N/L9110S实现正反转、调速控制
PWM调速多路独立PWM输出控制各动作速度与行程
3.3 灯光执行单元
组件规格功能
LED灯带(可寻址)WS2812B,5V/DC时序模拟作业状态、警示灯光同步闪烁
LED单色灯5V/DC设备运行状态指示
驱动电路MOSFET/ULN2003实现多路独立控制
3.4 通信接口
Modbus RTU(RS485) :预留标准通讯接口
UART:用于触控屏通信
GPIO:直接控制LED灯带与状态指示灯
PWM:用于各电机调速控制
四、软件设计
4.1 系统状态定义
c
// 车型与工况状态枚举
typedef enum {
VEHICLE_IDLE = 0, // 待机
// 挖掘机工况
VEHICLE_EXCAVATOR_BOOM, // 动臂升降
VEHICLE_EXCAVATOR_ARM, // 斗杆伸缩
VEHICLE_EXCAVATOR_BUCKET, // 铲斗翻转
// 装载机工况
VEHICLE_LOADER_LIFT, // 动臂升降
VEHICLE_LOADER_TILT, // 铲斗翻转
// 自卸车工况
VEHICLE_DUMP_LIFT, // 车厢举升
// 起重机工况
VEHICLE_CRANE_BOOM, // 吊臂伸缩
VEHICLE_CRANE_ROTATE, // 回转
VEHICLE_CRANE_WINCH, // 卷扬升降
// 电力工程车工况
VEHICLE_INSULATED_BOOM, // 绝缘臂升降
VEHICLE_INSULATED_ROTATE, // 工作斗回转
VEHICLE_EMERGENCY_LIGHT, // 抢修车警示灯
VEHICLE_DEMO_LOOP // 演示循环
} VehicleMode_t;
4.2 多路电机PWM调速控制
c
// 多路电机PWM调速控制——通用动作控制函数
void Motor_Control(uint8_t motor_id, uint8_t direction, uint16_t speed) {
// motor_id: 0=动臂, 1=铲斗, 2=车厢, 3=吊臂, 4=绝缘臂
// direction: 0=停止, 1=正转, 2=反转
// speed: 0-1000 (PWM占空比)
if(direction == 0) {
__HAL_TIM_SET_COMPARE(&htimX, TIM_CHANNEL_1 + motor_id, 0);
return;
}
// 正反转控制通过GPIO方向切换
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0 << motor_id,
(direction == 1) ? GPIO_PIN_SET : GPIO_PIN_RESET);
__HAL_TIM_SET_COMPARE(&htimX, TIM_CHANNEL_1 + motor_id, speed);
}
4.3 挖掘机动臂/铲斗动作模拟
c
// 挖掘机复合动作模拟
void Excavator_Action(uint8_t action_type) {
switch(action_type) {
case EXCAVATOR_BOOM_UP:
// 动臂举升:动臂电机正转
Motor_Control(MOTOR_BOOM, DIR_FORWARD, SPEED_MID);
// 同步灯光:动臂上升指示
LED_Status(LED_BOOM, COLOR_GREEN, 500);
break;
case EXCAVATOR_BOOM_DOWN:
Motor_Control(MOTOR_BOOM, DIR_REVERSE, SPEED_MID);
LED_Status(LED_BOOM, COLOR_RED, 500);
break;
case EXCAVATOR_BUCKET_DUMP:
// 铲斗翻转卸料
Motor_Control(MOTOR_BUCKET, DIR_FORWARD, SPEED_HIGH);
LED_Status(LED_BUCKET, COLOR_YELLOW, 300);
break;
case EXCAVATOR_COMPOSITE:
// 复合动作:动臂举升+铲斗翻转(模拟装车作业)
Motor_Control(MOTOR_BOOM, DIR_FORWARD, SPEED_LOW);
Motor_Control(MOTOR_BUCKET, DIR_FORWARD, SPEED_MID);
LED_Status(LED_BOOM, COLOR_GREEN, 400);
LED_Status(LED_BUCKET, COLOR_YELLOW, 400);
break;
}
}
4.4 自卸车车厢举升控制
c
// 自卸车车厢举升卸料模拟
void DumpTruck_Action(uint8_t action_type) {
switch(action_type) {
case DUMP_LIFT:
// 车厢举升(模拟卸料)
Motor_Control(MOTOR_DUMP, DIR_FORWARD, SPEED_MID);
// 举升到位后,警示灯闪烁
HAL_Delay(3000);
LED_Flash(LED_WARNING, COLOR_RED, 200); // 200ms闪烁
break;
case DUMP_LOWER:
// 车厢下降(模拟完成卸料)
Motor_Control(MOTOR_DUMP, DIR_REVERSE, SPEED_MID);
break;
case DUMP_DEMO:
// 完整卸料演示:举升→到位闪灯→下降
DumpTruck_Action(DUMP_LIFT);
HAL_Delay(2000);
DumpTruck_Action(DUMP_LOWER);
break;
}
}
4.5 绝缘斗臂车动作控制
c
// 绝缘斗臂车(电力工程车)动作模拟
void InsulatedBoom_Action(uint8_t action_type) {
switch(action_type) {
case INSULATED_BOOM_UP:
// 绝缘臂举升(带电作业场景)
Motor_Control(MOTOR_INSULATED, DIR_FORWARD, SPEED_LOW);
// 同步灯光:绝缘臂上升+作业区域指示
LED_Status(LED_INSULATED, COLOR_ORANGE, 500);
LED_Status(LED_WORK_AREA, COLOR_BLUE, 400);
break;
case INSULATED_BOOM_DOWN:
Motor_Control(MOTOR_INSULATED, DIR_REVERSE, SPEED_LOW);
break;
case INSULATED_ROTATE:
// 工作斗回转
Motor_Control(MOTOR_BUCKET_ROTATE, DIR_FORWARD, SPEED_LOW);
break;
case INSULATED_EMERGENCY:
// 应急抢修模式:绝缘臂升降+抢修灯全亮
Motor_Control(MOTOR_INSULATED, DIR_FORWARD, SPEED_LOW);
LED_AllFlash(COLOR_RED, 150); // 抢修紧急警示
break;
}
}
4.6 起重机吊臂伸缩与回转控制
c
// 起重机动作模拟
void Crane_Action(uint8_t action_type) {
switch(action_type) {
case CRANE_BOOM_EXTEND:
// 吊臂伸出
Motor_Control(MOTOR_CRANE_BOOM, DIR_FORWARD, SPEED_LOW);
LED_Status(LED_CRANE_BOOM, COLOR_YELLOW, 400);
break;
case CRANE_BOOM_RETRACT:
Motor_Control(MOTOR_CRANE_BOOM, DIR_REVERSE, SPEED_LOW);
break;
case CRANE_ROTATE:
// 回转平台旋转
Motor_Control(MOTOR_CRANE_ROTATE, DIR_FORWARD, SPEED_LOW);
break;
case CRANE_WINCH_UP:
// 卷扬提升
Motor_Control(MOTOR_CRANE_WINCH, DIR_FORWARD, SPEED_MID);
break;
case CRANE_WINCH_DOWN:
Motor_Control(MOTOR_CRANE_WINCH, DIR_REVERSE, SPEED_MID);
break;
case CRANE_COMPOSITE:
// 复合动作:吊臂伸出+回转(模拟吊装作业)
Motor_Control(MOTOR_CRANE_BOOM, DIR_FORWARD, SPEED_LOW);
Motor_Control(MOTOR_CRANE_ROTATE, DIR_FORWARD, SPEED_LOW);
LED_Status(LED_CRANE_BOOM, COLOR_YELLOW, 300);
LED_Status(LED_CRANE_ROTATE, COLOR_BLUE, 300);
break;
}
}
4.7 Modbus RTU寄存器映射
寄存器地址功能读写
0x0001车型选择(挖掘机/装载机/自卸车/起重机/电力工程车)R/W
0x0002工况选择(动作类型)R/W
0x0003动作速度等级(0-3)R/W
0x0004灯带亮度调节R/W
0x0005当前运行状态R
0x0006故障代码R
0x0010-0x001F扩展功能预留R/W
五、多车型多工况场景实现
5.1 挖掘机工况模拟
模拟挖掘机“动臂升降、斗杆伸缩、铲斗翻转、复合动作(装车作业)”等典型工况。多路电机协同控制,动臂、斗杆、铲斗独立驱动,配合LED灯带时序模拟作业状态。
5.2 装载机工况模拟
模拟装载机“铲斗升降、铲斗翻转”等典型工况。动臂电机控制铲斗升降,铲斗电机控制翻转动作,灯光同步指示作业状态。
5.3 自卸车工况模拟
模拟自卸车“车厢举升卸料、车厢下降复位”等典型工况。车厢电机驱动举升/下降动作,到位后警示灯闪烁指示卸料完成。
5.4 起重机工况模拟
模拟起重机“吊臂伸缩、回转、卷扬升降、复合吊装”等典型工况。吊臂伸缩、回转平台、卷扬三路电机独立控制,灯光时序同步指示各动作状态。
5.5 电力工程车工况模拟
模拟绝缘斗臂车“绝缘臂升降、工作斗回转、应急抢修”等典型工况。绝缘臂电机驱动升降动作,抢修模式下全车警示灯闪烁。
5.6 演示循环模式
自动循环切换各车型各工况,适配展会长期展示场景,无需人工干预。
六、系统验证
本方案已在工程车模型定制项目中得到验证。筑城世纪为工程机械企业定制了工程车模型,精准还原挖掘机、装载机、自卸车等设备外观与结构,并实现动臂伸缩、铲斗举升、车厢翻转等动作模拟。筑城世纪具备电力工程车模型的定制能力,可精准还原绝缘斗臂车、电力抢修车、应急发电车、旁路作业车等电力特种车辆的外观结构与作业特征。
控制系统基于STM32平台自主研发,支持触控中控操作,多车型多工况一键切换。可做设备剖视,展示核心设备的内部结构与工作原理。LED灯带时序模拟介质流动与能量转换路径。控制系统预留标准通讯接口,可外接大屏,同步显示模拟运行参数。可与其他工艺段沙盘统一交互界面,成套联动交付。控制系统全自主开发,后期可根据需求修改工况逻辑或扩展功能,不依赖第三方。筑城世纪已为国机集团柬埔寨燃机电站交付6级灯光联动、65米灯带沙盘,多级时序联动能力经项目验证。
七、技术总结
本文系统梳理了工程车模型多车型动作控制系统的设计与实现方案。核心要点:
系统架构:STM32主控 + 多路PWM电机驱动层 + 多路LED灯光执行层 + 触控中控交互层
车型覆盖:挖掘机、装载机、自卸车、起重机、绝缘斗臂车、电力抢修车等多种工程车型
动作模拟:动臂/铲斗/车厢/吊臂/绝缘臂等多路电机独立控制,支持复合动作
可扩展性:控制系统全自主开发,后期可根据需求新增车型或修改工况逻辑
更多工程车模型控制系统方案与案例,可访问筑城世纪官网查看。



