1581| 2
|
[ESP8266/ESP32] 用ESP32-S2实现一个加速度传感器控制的彩灯 |
本帖最后由 豆爸 于 2023-9-1 02:30 编辑 1 项目介绍 项目实现的功能是一个加速度传感器控制的彩灯,将板子朝向不同摆放时,屏幕显示的数字不同,并且手持板子转到不同方位彩灯颜色跟随变化。在板子静置30秒后,彩灯的颜色呈现周期变化。 2 设计思路 1、读出板载加速度传感器传感器X、Y、Z的数值显示在OLED屏幕上 2、根据加速度传感器的数值,板载的RGB彩灯显示不同颜色。 3、当在板子静置30秒(即加速度传感器的X、Y、Z值不发生变化时),彩灯呈现周期性变化,依次显示相应的颜色,1秒钟切换一次。 3 框图和软件流程图 4 硬件介绍 4.1 ESP32-S2 WiFi模块 ESP32-S2 WiFi模块是物联网、可穿戴电子设备和智能家居等应用场景的理想选择,另搭配输入控制、输出显示以及传感器感知和控制的套件,使其功能更加完善。 该模块板载了:
配套的ESP32 S2 开发板除了ESP32wifi模组之外还集成了USB TYPE -C接口,两个按键,一个电源指示灯,一个用户LED灯,2排10pin的排针,将重要IO引出。使用USB供电或通过排针3.3V供电。 ESP32-S2 是一款高度集成、高性价比、低功耗、主打安全的单核 Wi-Fi SoC,具备强大的功能和丰富的 IO 接口。使用乐鑫ESP-IF开发环境,我们可以通过USB对其编程,作为带wifi的MCU单独使用,也可以烧录AT固件,作为WiFi透传模块与RP2040游戏机套件结合使用。 4.2 输入、输出扩展板 本扩展板包含如下功能:
5 实现的功能及图片展示 5.1 MMA7660加速度传感器的研究 板载一颗来自飞思卡尔的MMA7660这一款传感器。MMA7660FC是具有数字输出的I²C、低功耗、紧凑型电容式微机械加速度传感器,提供低通滤波器、零重力加速度偏移和增益误差补偿,并可以转化为6位数字值,用户可配置输出数据的传输速率。该器件可通过中断引脚(INT)识别传感器的数据变化、产品的朝向和姿态等。 产片结构图 产品特性
系统框架图 5.2 功能实现 (1)读取三轴加速度传感器的数值。 (2)将读取的数值显示在TFT液晶屏上。 (3)根据读数变化,改变RGB灯颜色。 (4)30秒内,数值无变化,RGB彩灯间隔1秒依次变换颜色。 5.3 Thonny的下载与安装 Thonny是一个面向初学者的 Python IDE。Thonny 由爱沙尼亚的 Tartu 大学开发,它采用了不同的方法,因为它的调试器是专为学习和教学编程而设计的。 Installer with 64-bit Python 3.10下载链接:https://github.com/thonny/thonny/releases/download/v4.0.2/thonny-4.0.2.exe 5.4 导入mma7660库 这里我们使用了一个三轴加速度计驱动库文件mma7660.py,这个文件可以从github下载。 将mma7660.py驱动文件通过Thonny上传到ESP32的根目录。 5.5 导入ST7735库 这里我们使用了一个TFT液晶屏驱动库文件ST7735.py,这个文件可以从github下载。 将ST7735.py驱动文件通过Thonny上传到ESP32的根目录。 5.6 导入sysfont字体 这里我们使用了一个sysfont字体库文件sysfont.py,这个文件可以从github下载。 将sysfont.py驱动文件通过Thonny上传到ESP32的根目录。 6 主要代码片段及说明 6 主要代码片段及说明 6.1 加载库函数
6.2 定义变量
6.3 实例化
6.4 TFT屏初始化
6.5 配置3轴传感器MMA7660
6.6 读取传感器数据
6.7 TFT屏显示加速度传感器数值
6.8 根据加速度传感器值,切换彩灯颜色
6.9 静置30秒周期性彩灯颜色变换
7 运行效果 程序运行效果如下图所示: 1、屏幕加速度显示传感器数据 2、板子转到不同方位彩灯颜色跟随变化 3、静置30秒后,彩灯呈现周期变化 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed