物联网开发113 - Micropython ESP32 C3连接PAJ7620手势传感器控制WS2812彩灯

本文主要是介绍物联网开发113 - Micropython ESP32 C3连接PAJ7620手势传感器控制WS2812彩灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、目的

        这一节我们来学习如何使用合宙ESP32 C3,连接0.96寸ssd1306屏幕、PAJ7620手势传感和WS2812 5050 RGB LED 全彩驱动彩灯,进行一个小实验。

二、环境

        ESP32 C3开发板(MicroPython v1.19.1 on 2022-06-18)+ I2C 0.96寸ssd1306屏幕模块+ PAJ7620手势传感器  + WS2812 5050 RGB LED 全彩驱动彩灯 + 几根杜邦线 + Win10商业版

        ESP32 C3和各个模块接线方法:

三、示例代码

        examples.py

from machine import Pin,I2C
from neopixel import NeoPixel
from paj7260 import PAJ7260
from ssd1306 import SSD1306_I2C
from ufont import BMFont
import timei2c = I2C(0,scl = Pin(5),sda = Pin(4),freq = 400_000)
oled = SSD1306_I2C(128,64,i2c,0X3C)
ws  = NeoPixel(Pin(8,Pin.OUT),64)
paj = PAJ7260(i2c)font = BMFont("fonts/unifont-14-12888-16.v3.bmf")#print("%#X"%(i2c.scan()[1]))def Hxd():#从暗到鲜艳for i in range(0,255,1):ws.fill((i,i,i))ws.write()time.sleep(0.01)#从鲜艳到暗for i in range(255,-1,-1):ws.fill((i,i,i))ws.write()time.sleep(0.01)ws.fill((0,0,0))ws.write()time.sleep(1)def WS2812B():Get = paj.return_gesture()code = [[19,26,33,34,35,36,37,38,42,51],  #右0[20,29,33,34,35,36,37,38,45,52],  #左1[11,18,19,20,25,27,29,35,43,51],  #上2[11,19,27,33,35,37,42,43,44,51],  #下3[11,18,20,25,29,35,42,44,49,53],  #前4[09,13,18,20,27,33,37,42,44,51],  #后5[17,21,26,28,35,42,44,49,53,53],  #波6]if Get != 0:print("%d"%(Get))#右到左if Get == 4:ws.fill((0,0,0))ws.write()for i in range(len(code[0])):ws[code[0][i]]=(0,200,0)ws.write()#左到右       elif Get == 3:ws.fill((0,0,0))ws.write()for i in range(len(code[1])):ws[code[1][i]]=(0,200,0)ws.write()#上       elif Get == 5:ws.fill((0,0,0))ws.write()for i in range(len(code[2])):ws[code[2][i]]=(0,200,0)ws.write()oled.clear()font.text(oled,"向上",24,24,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)#下       elif Get == 6:ws.fill((0,0,0))ws.write()for i in range(len(code[3])):ws[code[3][i]]=(0,200,0)ws.write()oled.clear()font.text(oled,"向下",24,24,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)#前      elif Get == 1:ws.fill((0,0,0))ws.write()for i in range(len(code[4])):ws[code[4][i]]=(0,200,0)ws.write()#后       elif Get == 2:ws.fill((0,0,0))ws.write()for i in range(len(code[5])):ws[code[5][i]]=(0,200,0)ws.write()#波浪       elif Get == 9:ws.fill((0,0,0))ws.write()for i in range(len(code[6])):ws[code[6][i]]=(0,200,0)ws.write()oled.clear()font.text(oled,"挥手",24,24,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)time.sleep(1)else:ws.fill((10,0,10))ws.write()def main():font.text(oled,"手势传感器",24,24,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)Hxd()while True:WS2812B()if __name__ == "__main__":main()

演示效果:

 四、WS2812驱动

        Micropython集成自带的,无需另外导入。

from neopixel import NeoPixel

五、ssd1306和字库文件

        请查看这个文章获取:

物联网开发107 - Micropython ESP32 C3接DS1307时钟模块在SSD1306屏幕上显示时间_魔都飘雪的博客-CSDN博客Micropython ESP32 C3连接DS1307时钟模块在SSD1306屏幕上显示时间https://blog.csdn.net/zhusongziye/article/details/130535482?spm=1001.2014.3001.5501六、WS2812 5050 RGB LED 全彩驱动彩灯 正方形开发板购买

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2f582e8d4Jxt4i&id=605669316457&_u=mp01rch2294https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2f582e8d4Jxt4i&id=605669316457&_u=mp01rch2294

这篇关于物联网开发113 - Micropython ESP32 C3连接PAJ7620手势传感器控制WS2812彩灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/217066

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块