物联网开发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

相关文章

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I