问题:用Python程序,通过串口服务器调试RGB灯带
解答1:
import serial
import time
# 串口初始化
ser = serial.Serial('COM1', 9600) # 串口初始化,根据实际情况更改端口和波特率
# 控制RGB灯的函数
def control_rgb_lights(r, g, b):
command = f"RGB({r},{g},{b})\n" # 拼接RGB控制指令
ser.write(command.encode()) # 发送指令给串口
time.sleep(0.1) # 等待一段时间,确保指令被处理
# 控制灯带颜色
control_rgb_lights(255, 0, 0) # 设置为红色
time.sleep(2)
control_rgb_lights(0, 255, 0) # 设置为绿色
time.sleep(2)
control_rgb_lights(0, 0, 255) # 设置为蓝色
# 关闭串口连接
ser.close()
解答2,用pyqt实现
import sys
import serial
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout
class RGBController(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
self.init_serial()
def init_ui(self):
red_button = QPushButton('红色', self)
green_button = QPushButton('绿色', self)
blue_button = QPushButton('蓝色', self)
red_button.clicked.connect(self.set_red)
green_button.clicked.connect(self.set_green)
blue_button.clicked.connect(self.set_blue)
layout = QHBoxLayout()
layout.addWidget(red_button)
layout.addWidget(green_button)
layout.addWidget(blue_button)
self.setLayout(layout)
self.setWindowTitle('RGB灯带控制')
def init_serial(self):
self.ser = serial.Serial('COM1', 9600) # 根据实际情况更改端口和波特率
def control_rgb_lights(self, r, g, b):
command = f"RGB({r},{g},{b})\n"
self.ser.write(command.encode())
def set_red(self):
self.control_rgb_lights(255, 0, 0)
def set_green(self):
self.control_rgb_lights(0, 255, 0)
def set_blue(self):
self.control_rgb_lights(0, 0, 255)
def closeEvent(self, event):
self.ser.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
controller = RGBController()
controller.show()
sys.exit(app.exec_())