当前位置: 首页 > news >正文

毕业设计 基于stm32舞台彩灯控制器设计app控制系统

基于stm32舞台彩灯控制器设计app控制

  • 1、项目简介
    • 1.1 系统构成
    • 1.2 系统功能
  • 2、部分电路设计
    • 2.1 STM32F103C8T6核心系统电路设计
    • 2.2 WS2812RGB彩灯电路设计
  • 3、部分代码展示
    • 3.1 控制WS2812显示颜色
    • 3.2 设置RGB灯的颜色,角度,亮度
  • 实物图

1、项目简介

  • 选题指导,项目分享: https://gitee.com/lighter-z/embedded-base/tree/master
  • 点击查看详细资料

1.1 系统构成

本设计由STM32F103C8T6单片机核心板电路+蓝牙模块+RGB彩灯电路+舵机+红外检测电路组成。

1.2 系统功能

  • 1、基于stm32舞台彩灯控制器设计app控制系统有两种模式,自动模式与手动模式。
  • 2、手动模式下可以通过手机APP对RGB彩灯进行控制。
  • 3、可以通过APP控制RGB彩灯的颜色,旋转角度,亮度。
  • 4、自动模式下根据RGB彩灯会根据人体位置自动旋转。

2、部分电路设计

2.1 STM32F103C8T6核心系统电路设计

STM32F103C8T6单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:

实物图:

2.2 WS2812RGB彩灯电路设计

其具体电路原理图如下图所示:

实物图如下图所示:

3、部分代码展示

3.1 控制WS2812显示颜色

void WS2812_send(uint8_t (*color)[3], uint16_t len)
{uint8_t i;uint16_t memaddr;uint16_t buffersize;buffersize = (len*24)+43;	// number of bytes needed is #LEDs * 24 bytes + 42 trailing bytesmemaddr = 0;				// reset buffer memory indexwhile (len){	for(i=0; i<8; i++) // GREEN data{LED_BYTE_Buffer[memaddr] = ((color[0][1]<<i) & 0x0080) ? TIMING_ONE:TIMING_ZERO;memaddr++;}for(i=0; i<8; i++) // RED{LED_BYTE_Buffer[memaddr] = ((color[0][0]<<i) & 0x0080) ? TIMING_ONE:TIMING_ZERO;memaddr++;}for(i=0; i<8; i++) // BLUE{LED_BYTE_Buffer[memaddr] = ((color[0][2]<<i) & 0x0080) ? TIMING_ONE:TIMING_ZERO;memaddr++;}len--;}

3.2 设置RGB灯的颜色,角度,亮度

void Set_Light_Color_Angle()
{//亮度量switch(USART_RX_BUF[4]){case Light_one: Light_Number = 5; break;case Light_two: Light_Number = 10; break;case Light_three: Light_Number = 15; break;case Light_fore: Light_Number = 20; break;case Light_five: Light_Number = 26; break;}//	//颜色量switch(USART_RX_BUF[5]){case Color_black: Color_Number = 0; break;case Color_Red: Color_Number = 1; break;case Color_Orange: Color_Number = 2; break;case Color_Yellow: Color_Number = 3; break;case Color_Green: Color_Number = 4; break;case Color_Ching: Color_Number = 5; break;case Color_Blue: Color_Number = 6; break;case Color_Purple: Color_Number = 7; break;}//角度量if(Angle_Add == USART_RX_BUF[6]){Angle_Number += 10;								if(Angle_Number >= 1900){Angle_Number = 1900;}}else if(Angle_Down == USART_RX_BUF[6]){Angle_Number -= 10;if(Angle_Number <= 1750){Angle_Number = 1750;}}/*发送设置好的亮度与颜色数据*/switch(Color_Number){case 0: WS2812_send(rgb0,7); break;case 1: WS2812_send(&rgb_Red[Light_Number],7); break;case 2: WS2812_send(&rgb_Orange[Light_Number],7); break;case 3: WS2812_send(&rgb_Yellow[Light_Number],7); break;case 4: WS2812_send(&rgb_Green[Light_Number],7); break;case 5: WS2812_send(&rgb_Ching[Light_Number],7); break;case 6: WS2812_send(&rgb_Blue[Light_Number],7); break;case 7: WS2812_send(&rgb_Purple[Light_Number],7); break;}
}

实物图

相关文章:

毕业设计 基于stm32舞台彩灯控制器设计app控制系统

基于stm32舞台彩灯控制器设计app控制1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STM32F103C8T6核心系统电路设计2.2 WS2812RGB彩灯电路设计3、部分代码展示3.1 控制WS2812显示颜色3.2 设置RGB灯的颜色&#xff0c;角度&#xff0c;亮度实物图1、项目简介 选题指导…...

【MyBatis】篇一.

文章目录1、MyBatis概述2、环境搭建1、MyBatis概述 认识&#xff1a; JavaEE开发的一个套件SSM&#xff0c;即&#xff1a; MyBatis是一个持久层的框架&#xff0c;是对JDBC的一个封装&#xff0c;是一个半自动的ORM框架。 ORM即实体类对象和数据库中的数据的一个映射关系&am…...

【JavaScript速成之路】JavaScript流程控制

&#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f525;系列专栏&#xff1a;【JavaScript速成之路】 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; 文章目录前言1&#xff0c;流程控制2&#xff0c;分支结构2.1&#xff0c;if语句2.2&…...

18、基准测试,sysbench

基准测试,sysbench 1. sysbench1.1 用途1.2 安装1.3 版本1.4 查看帮助1.5 测试过程阶段2 CPU 性能测试2.1 测试原理2.2 查看帮助2.3 测试3. 内存性能测试3.1 查看帮助信息3.2 测试过程4.磁盘性能基准测试4.1 查看帮助4.2 生成文件(prepare)4.3 测试文件io(run)4.4 结果分析4.5…...

3D,点云拼接2

文章目录 点云配准方法自动配准技术PCL实现的配准算法两两配准1.关键点提取2.特征描述符3. 对应关系估计4. 对应关系去除5. 变换矩阵估算在上篇文章中对于拼接的概念、拼接精度的评价做了详细的介绍。本文是对拼接(配准)的进一步介绍,涉及更多原理层面的东西。 主要围绕以下三…...

jmeter学习笔记一(http基础知识)

HTTP请求&#xff1a;客户端同通过发送http请求向服务器请求资源的访问。http请求由三部分组成&#xff1a;请求行、请求头、请求正文 ​ 请求行包括&#xff1a;请求方法 URI 协议/版本 ​ 请求头&#xff1a;Content-type、Cookie、Authorization、User-Agent、Accept、Acc…...

【Java】CompletableFuture 并发顺序调度

前言 Java CompletableFuture 提供了一种异步编程的方式&#xff0c;可以在一个线程中执行长时间的任务&#xff0c;而不会堵塞主线程。 和Future相比&#xff0c;CompletableFuture不仅实现了Future接口&#xff0c;也实现了 CompletionStage接口。Future接口不用多说&#…...

职场人必备的6款实用办公app,每一款都是心头爱

打工人不容易啊&#xff0c;不提高工作效率怕是要被淘汰了。今天给大家分享6款职场人必备的实用办公APP&#xff0c;免费效率神器让工作事半功倍。这些APP每一款都是我的心头爱&#xff0c;肯定会让人大开眼界的&#xff0c;超级实用&#xff0c;直接往下看吧。1、向日葵远程控…...

小丑改造计划之复习一

1.函数重载 根据参数个数 参数顺序 参数类型 的不同 可以在同一个域存在多个同名函数 但是不可以根据返回值 缺省参数的不同去重载函数 2.指针和引用的区别 第一点 指针是内存地址&#xff0c;会开辟内存空间&#xff0c;而引用和它所引用的变量共享同一块内存 第二点 引用必须…...

final修饰符使用中遇到的一些问题

文章目录final修饰符1. final不能用来修饰构造方法2. final修饰变量的一些注意问题2.1 final修饰成员变量2.2 final修饰引用类型2.2.1 演示代码中lombok链式编程介绍final修饰符 final具有“不可改变”的含义&#xff0c;它可以修饰非抽象类、非抽象成员方法和变量。 用final…...

好记又实用的获取电脑型号方法

个人常用的方法 方法二最好记又好用。 方法一 dxdiag命令 按下键盘WINR调出运行在输入框输入dxdiag命令后&#xff0c;按下回车&#xff1b;进入DirectX诊断工具&#xff0c;便可查看系统型号等信息。 这里就会显示系统型号。 方法二 设备和打印机 控制面板-查看方式-小图…...

@Transactional配置详解

一&#xff1a;事务注解Transactional&#xff0c;属性propagation的7个配置 PROPAGATION_REQUIRED -- 支持当前事务&#xff0c;如果当前没有事务&#xff0c;就新建一个事务。&#xff0c;默认配置&#xff0c;也是常用的选择。 PROPAGATION_SUPPORTS -- 支持当前事务&#…...

性能测试面试题汇总

稳定性测试的怎么挑选的接口&#xff1f; 1、频繁使用的接口&#xff1a;选择那些被频繁使用的接口&#xff0c;因为这些接口可能会面临更大的负载和并发访问&#xff0c;从而可能导致性能问题。 2、核心功能接口&#xff1a;选择那些实现系统核心功能的接口&#xff0c;因为这…...

vue权限控制和动态路由

思路 登录&#xff1a;当用户填写完账号和密码后向服务端验证是否正确&#xff0c;验证通过之后&#xff0c;服务端会返回一个token&#xff0c;拿到token之后&#xff08;我会将这个token存贮到localStore中&#xff0c;保证刷新页面后能记住用户登录状态&#xff09;&#xf…...

利用正则表达式删掉代码中的所有注释-pycharm为例

首先删除注释 打开您想要删除注释的Python文件。 使用快捷键 Ctrl Shift R 打开 "Replace in Files"&#xff08;在文件中替换&#xff09;对话框。 在 "Find"&#xff08;查找&#xff09;框中输入以下正则表达式&#xff0c;以查找所有行中的注释内容…...

【java基础】内部类、局部内部类、匿名内部类、静态内部类

内部类 内部类就是定义在另一个类中的类。我们使用内部类的原因主要有以下两点 内部类可以对同一个包中的其他类隐藏内部类方法可以访问定义这个类的作用域中的数据&#xff0c;包括原本私有的数据 public class A {class B {} }我们使用内部类可以访问外部类的所有属性&…...

react renderProps学习记录

react renderProps学习记录1.引入2.改一下呢3.再改一下呢4.总结一下如何向组件内部动态传入带内容的结构(标签)?children propsrender props1.引入 上代码&#xff1a; import React, { Component } from react import ./index.css export default class Parent extends Com…...

关于tf.gather函数batch_dims参数用法的理解

关于tf.gather函数batch_dims参数用法的理解0 前言1. 不考虑batch_dims2. 批处理(考虑batch_dims)2.1 batch_dims12.2 batch_dims02.3 batch_dims>22.4 batch_dims再降为12.5 再将axis降为12.6 batch_dims<02.7 batch_dims总结3. 补充4. 参数和返回值5. 其他相关论述6. 附…...

日常操作linux常用命令

cd /mnt/opt/cqstt/logs/stt-erp docker logs -f --tail1000 stt-erp # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的…...

【Java集合框架】篇二:Collection接口方法

JDK不提供此接口的任何直接实现类&#xff0c;而是提供更具体的子接口&#xff08;如&#xff1a;Set和List&#xff09;去实现。 Collection 接口是 List和Set接口的父接口&#xff0c;该接口里定义的方法既可用于操作 Set 集合&#xff0c;也可用于操作 List 集合。方法如下…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...