基于STM32舞台彩灯控制器设计app控制系统
基于STM32舞台彩灯控制器设计APP控制系统
1 功能介绍
舞台灯光在演出、晚会和各种表演活动中扮演着极为重要的角色,它不仅能够提供必要的照明,还能通过光影效果渲染氛围、突出人物和场景。本设计以STM32F103C8T6单片机为核心,构建了一套舞台彩灯控制器系统,能够通过手机APP远程控制,实现多种模式切换与灯光效果调节,结合红外传感器与舵机实现灯光角度自动调整,达到智能化舞台灯光控制的目标。
系统整体功能如下:
- 彩灯控制:采用WS2812RGB智能彩灯,支持多种颜色与动态模式,用户可通过APP设定亮度、颜色及切换方式;
- 手机APP控制:通过蓝牙模块实现与手机的无线通信,用户可在APP上设置彩灯参数,如时间、亮度、颜色以及舵机角度;
- 自动角度调节:系统集成红外传感器,可感应舞台上的演员位置或动作,根据传感器反馈信号驱动舵机实现灯光角度的自动调节;
- 舵机控制:通过PWM信号调节舵机角度,使灯光能够灵活调整照射方向,实现“跟随效果”;
- 多模式运行:既可通过手动方式(APP控制)设定灯光效果,也可自动模式运行,由传感器感知环境并自动调整。
该系统结合了嵌入式控制、智能灯光与无线通信技术,能够在舞台环境中提供灵活、便捷、智能的灯光控制方案。
2 系统电路设计
整个系统的电路设计以STM32单片机为核心,扩展了彩灯驱动电路、蓝牙通信模块、红外传感器模块、舵机驱动模块和电源电路。以下对各模块逐一说明。
2.1 主控芯片电路(STM32F103C8T6最小系统)
STM32F103C8T6单片机作为控制核心,负责采集传感器数据、处理APP指令、生成PWM信号以及控制彩灯模式。最小系统包括:
- 时钟电路:外接8MHz晶振,保证MCU的高速与稳定运行;
- 复位电路:通过按键和上电复位电路,确保系统在异常后恢复正常;
- 电源电路:提供稳定的3.3V电源,满足STM32和其他外设的工作需求。
2.2 WS2812RGB彩灯电路
WS2812RGB是一种带有内置控制电路的智能LED灯,每颗灯珠可以独立控制亮度和颜色,数据通过单线串行方式传输。STM32只需通过一个GPIO口输出时序信号即可驱动多颗灯珠,实现舞台灯光的动态效果。
2.3 蓝牙通信电路
采用HC-05蓝牙模块与STM32的UART接口连接,实现与手机APP的无线通信。蓝牙模块负责接收APP发送的指令,并传输至单片机进行解析,进而控制彩灯与舵机。
2.4 红外传感器电路
红外传感器用于检测舞台上目标的移动或位置变化。当检测到演员的活动范围时,传感器将信号输入至STM32,系统通过算法调整舵机角度,使灯光能够自动跟随目标,提升舞台表现力。
2.5 舵机驱动电路
舵机用于调节彩灯的照射角度,STM32通过定时器输出PWM信号控制舵机的旋转角度。红外传感器提供反馈信号,MCU根据算法实时调整舵机位置,实现“自动追踪照明”。
2.6 电源电路
整个系统由5V直流电源供电,其中:
- WS2812RGB和彩灯部分直接使用5V电源;
- STM32与蓝牙模块使用3.3V稳压电路供电;
- 舵机则根据型号直接由5V供电。
电源部分设计了滤波与保护电路,保证在大电流工作条件下的系统稳定性。
3 程序设计
程序设计是系统实现的关键部分,主要包括APP指令解析、彩灯控制、舵机控制、传感器数据采集和自动模式实现。
3.1 主程序设计
主程序负责系统初始化,并在循环中根据传感器状态与APP指令执行相应功能。
#include "stm32f10x.h"
#include "usart.h"
#include "ws2812.h"
#include "servo.h"
#include "infrared.h"
#include "bluetooth.h"
#include "delay.h"int main(void)
{SystemInit();USART1_Init(9600);WS2812_Init();Servo_Init();Infrared_Init();while(1){// 接收APP指令Bluetooth_ReceiveCommand();// 自动模式if(Infrared_Detected()){Servo_AdjustAngle();}Delay_ms(50);}
}
3.2 彩灯控制程序
彩灯的模式控制包括静态颜色、渐变、闪烁和流水灯效果,均通过发送不同的时序数据至WS2812灯珠实现。
void WS2812_SetColor(uint8_t r, uint8_t g, uint8_t b)
{for(int i=0;i<LED_COUNT;i++){WS2812_SendData(r,g,b);}
}
3.3 舵机控制程序
舵机通过PWM波控制转动角度。
void Servo_SetAngle(uint16_t angle)
{TIM_SetCompare1(TIM3, angle); // 通过占空比对应舵机角度
}
3.4 红外传感器程序
红外传感器检测信号后,系统自动调整舵机角度,模拟追随灯光效果。
uint8_t Infrared_Detected(void)
{if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0)return 1;elsereturn 0;
}
3.5 蓝牙通信程序
蓝牙接收APP指令后进行解析,例如控制颜色、亮度、舵机角度等。
void Bluetooth_ReceiveCommand(void)
{char cmd[20];if(USART_ReceiveString(cmd)){if(strcmp(cmd,"RED")==0) WS2812_SetColor(255,0,0);else if(strcmp(cmd,"GREEN")==0) WS2812_SetColor(0,255,0);else if(strcmp(cmd,"BLUE")==0) WS2812_SetColor(0,0,255);else if(strncmp(cmd,"ANGLE",5)==0){int angle = atoi(&cmd[6]);Servo_SetAngle(angle);}}
}
4 总结
本设计基于STM32单片机,结合WS2812RGB彩灯、蓝牙通信、红外传感器与舵机,实现了舞台彩灯的智能化控制。用户可通过APP手动设定灯光颜色、亮度和模式,也可通过红外传感器触发系统自动调节灯光角度,使舞台照明更加灵活多样。
系统具备以下优势:
- 智能化:可实现APP与传感器双重控制;
- 可扩展性强:支持多种模式与灯光效果;
- 实用性高:可应用于舞台演出、展厅布置、家庭娱乐等场景。
通过该系统,舞台灯光的控制方式更加便捷和多样化,不仅提升了演出的视觉效果,还降低了人工控制的复杂度,充分体现了嵌入式与物联网技术在舞台艺术中的应用价值。