【雕爷学编程】Arduino动手做(95)---GY9960手势传感器模块3

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验九十五:APDS-9960 GY-9960-3.3 RGB红外手势传感器 方向识别模块

在这里插入图片描述
这是一个 RGB和手势传感器模块,小接口板具有内置APDS-9960芯片,提供环境光与颜色测量,接近检测和非接触手势检测。有了这个RGB和手势感应器,你就可以控制一台计算机,单片机,机器人,它比你的手一个简单的刷卡功能强大的多!实际上,该手势传感器APDS-9960在三星Galaxy S5中使用。该APDS-9960是一个极小的传感器,内置紫外线和红外线阻隔滤镜,四个单独的二极管不同方向的敏感,以及一个I2C兼容接口。为了使用方便,设计出了以下引脚:VL(可选功率IR LED),GND(地),VCC(电源,APDS-9960传感器),SDA(I2C数据),SCL(时钟I2C)和INT(中断)。每个APDS-9960还具有4至8英寸(10至20cm)的检测范围。
在这里插入图片描述
APDS-9960 中文资料 (P39)

https://wenku.baidu.com/view/2b2 … 4ae45c3b35c27b.html

https://max.book118.com/html/2017/0905/131913559.shtm

模块电原理图

在这里插入图片描述
在这里插入图片描述

APDS-9960手势检测模块参数与特点:
工作电压:3.3V
环境光及RGB色彩感应
接近检测
手势检测
测量范围:4-8in(10-20CM)
I2C接口(I2C地址:0x39)

对于APDS
SDA = A4
SCL = A5
GND = GND
VCC = 3.3V

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
GY9960红外手势传感器模块实验所需硬件清单
Arduino Uno开发板 X1
0.96寸OLED显示屏X1
杜邦线 若干(备了9条)
IIC/I2C 1602 LCD液晶屏模块X1
高电平触发有源蜂鸣器模块X1
GY9960红外手势传感器模块X2
LED发光二极管(绿、蓝色)X2
Proto Shield 原型扩展板(带mini面包板)X1

在这里插入图片描述
在这里插入图片描述

传感器模块实验所需软件平台
代码编程 Arduino IDE (版本1.8.19)
仿真编程 Linkboy (版本V4.6.3)
图形编程 Mind+ (版本 V1.7.0 RC2.0)
以及编玩边学(线上平台https://ide.codepku.com/?type=Arduino)

打开Arduino IDE——工具——管理库,搜索APDS-9960,并安装

在这里插入图片描述

实验接线示意图

在这里插入图片描述

GY9960红外手势传感器模块的几个实验
程序一:当接近度读数超过175时触发中断阈值
(1)Arduino参考开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)程序一:当接近度读数超过175时触发中断阈值注:设备的 I2C 地址为 0x39
*/#include "Adafruit_APDS9960.h"//导入APDS9960驱动库
#define INT_PIN 2//中断附加到的引脚D2
Adafruit_APDS9960 apds;//创建APDS9960对象void setup() {Serial.begin(115200);pinMode(INT_PIN, INPUT_PULLUP);if (!apds.begin()) {Serial.println("初始化设备失败!请检查您的接线。");}else Serial.println("设备已初始化!");//开启接近模式apds.enableProximity(true);//设置当接近度读数超过175时触发中断阈值apds.setProximityInterruptThreshold(0, 175);//启用接近中断apds.enableProximityInterrupt();
}void loop() {//当中断引脚变低时打印接近度读数if (!digitalRead(INT_PIN)) {Serial.println(apds.readProximity());apds.clearInterrupt();//清除中断delay(500);}
}

(2)实验串口返回情况

在这里插入图片描述

(3)实验场景图

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验九十五:APDS-9960 GY-9960-3.3 RGB红外手势传感器 方向识别模块

程序二:测试颜色识别模式

(1)Arduino参考开源代码

/*【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)程序二:测试颜色识别模式注:设备的 I2C 地址为 0x39
*/#include "Adafruit_APDS9960.h"//导入APDS9960驱动库//创建APDS9960对象
Adafruit_APDS9960 apds;void setup() {Serial.begin(115200);if (!apds.begin()) {Serial.println("初始化设备失败!请检查您的接线。");}else Serial.println("设备已初始化!");//启用颜色识别模式apds.enableColor(true);
}void loop() {//创建一些变量来存储颜色数据uint16_t r, g, b, c;//等待颜色数据准备好while (!apds.colorDataReady()) {delay(5);}//获取数据并打印不同的通道apds.getColorData(&r, &g, &b, &c);Serial.print("红色:");Serial.println(r);Serial.print("绿色: ");Serial.println(g);Serial.print("蓝色: ");Serial.println(b);Serial.print("清除:");Serial.println(c);Serial.println();delay(5000);
}

(2)实验串口返回情况
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/9366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直播平台源码开发提高直播质量的关键:视频编码和解码技术

在互联网日益发展的今天,直播平台成为人们互联网生活的主力军,直播平台功能的多样化与智能化使我们的生活有了极大地改变,比如短视频功能,它让我们既可以随时随地去发布自己所拍摄到的东西让世界各地的用户看到,也能让…

Windows下基于VSCode搭建C++开发环境(包含整合MinGW64、CMake的详细流程)

最近想写写C,装了VisualStudio 2022,折腾半天。对于一个用惯VSCode的人来说,总感觉IDE太笨重。于是自己网上各种查资料,自己琢磨,搭建了一套Windows下基于VSCode和CMake的C轻量级开发环境。 具体搭建步骤 1. 下载并安…

国产数据库-内核特性-gbase8a智能索引

国产数据库-内核特性-gbase8a智能索引 南大通用gbase8a MPP Cluster是一款分析型MPP数据库,有个特性鲜明的功能就是智能索引。该索引建立膨胀率不超过百分之一,包含基于列的统计信息,可以有效过滤数据,大幅降低数据库磁盘IO&#…

NRF52832-扩展广播

nordic论坛 我想要设置广播名称为 “一二三四五”,当广播名称为FULL_NAME时,但是广播显示还是“一?”,“?”是乱码,后来打开nrf connect观察广播,在没连接的时候,点击一下&#xff0…

CDP spark 无法读取hive表的问题

最近发现CDP中某些个别hive表, impala和hive可以正常读取,但spark 却读成空表,已排除spark参数和orc 的问题。 StackOverflow上有个相似问题 说是需要关闭以下参数: hive.create.as.insert.onlyfalse metastore.create.as.acid…

Qt中字符串比较的时候如何忽略大小写?

问题描述: 当我要比较电脑的MAC地址的时候,出现了使用ifconfig查看到的地址,和Qt使用QNetInterface获取的MAC地址有着大小写的区别。 解决办法: 方法一: 可以使用QString类的compare()函数,并将第三个参数设置为Qt::CaseInsensitive。下面是一个示例代码: #include &…

React 基础篇(一)

💻 React 基础篇(一)🏠专栏:React 👀个人主页:繁星学编程🍁 🧑个人简介:一个不断提高自我的平凡人🚀 🔊分享方向:目前主攻…

基于Matlab微分器的PID控制(附上完整源码+数据)

PID控制是一种常用的控制算法,广泛应用于工业控制和自动化系统中。在Matlab中,可以使用PID控制器对象来实现PID控制。 文章目录 说明部分代码完整源码数据下载 说明 PID控制器是一个反馈控制系统,它根据当前的偏差(即实际值与期望…

数据结构和算法——快速排序(算法概述、选主元、子集划分、小规模数据的处理、算法实现)

目录 算法概述 图示 伪代码 选主元 子集划分 小规模数据的处理 算法实现 算法概述 图示 快速排序和归并排序有一些相似,都是用到了分而治之的思想: 伪代码 通过初步的认识,我们能够知道快速排序算法最好的情况应该是: 每…

torchaudio 教程

torchaudio 教程 PyTorch 是一个开源深度学习平台,提供了从研究原型到具有 GPU 支持的生产部署的无缝路径。 解决机器学习问题的巨大努力在于数据准备。 torchaudio充分利用了 PyTorch 的 GPU 支持,并提供了许多工具来简化数据加载并使其更具可读性。 …

TCP协议如何实现可靠传输

TCP最主要的特点 TCP是面向连接的运输层协议,在无连接的、不可靠的IP网络服务基础之上提供可靠交付的服务。为此,在IP的数据报服务基础之上,增加了保证可靠性的一系列措施。 TCP最主要的特点: TCP是面向连接的输出层协议 每一条…

降龙十八掌

目录 大数据: 1 HIVE: 1.1 HIVE QL 1.1.1 创建表 1.1.2 更新表 1.1.3 常用语句 1.2 hive参数配置 大数据: 1 HIVE: 1.1 HIVE QL DDL中常用的命令有:create,drop,alter,trunc…

Python web实战 | 使用 Django 搭建 Web 应用程序 【干货】

概要 从社交媒体到在线购物,从在线银行到在线医疗,Web 应用程序为人们提供了方便快捷的服务。Web 应用程序已经成为了人们日常生活中不可或缺的一部分。搭建一个高效、稳定、易用的 Web 应用程序并不是一件容易的事情。本文将介绍如何使用 Django 快速搭…

OpenShift 4 - 可观测性之用 OpenTelemetry+Jaeger 实现 Distributed Tracing

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.13 的环境中验证 文章目录 技术架构部署 Distributed Tracing 运行环境安装测试应用并进行观测跟踪参考 说明: 本文使用的测试应用采用的是 “手动 Instrumentation” 方式在…

WPF快速开发(2):图标库知识点

文章目录 前言知识点windows资源Style:样式Setter:属性继承关系 Trigger:触发器 WPF层级划分数据绑定声明数据上下文绑定数据模板 前言 图标资源下载 iconfont 知识点 windows资源 Window.Resources:资源位置声明X:Key:资源Id,用于前端的…

Kafka 实时处理Stream与Batch的对比分析

Kafka 实时处理Stream与Batch的对比分析 一、简介1. Kafka的定义和特点2. Kafka实时处理基础架构 二、Stream和Batch1. Stream和Batch的区别2. 对比Stream和Batch的优缺点Stream的优缺点Batch的优缺点 三、使用场景1. 使用场景对比Batch使用场景Stream使用场景 2. 如何选择Stre…

PHP服务器文件日志功能

php文件日志功能 <?php w_log(123,test/); w_log(array(a>1),test/); function w_log($data, $path log/) {$root_pathstr_replace(\\, /, dirname(dirname(__FILE__)));//改成你自己目录$dir $root_path . /log/ . $path;if (!is_dir($dir)) {mkdir($dir, 0777, tr…

2023年JAVA最新面试题

2023年JAVA最新面试题 1 JavaWeb基础1.1 HashMap的底层实现原理&#xff1f;1.2 HashMap 和 HashTable的异同&#xff1f;1.5 Collection 和 Collections的区别&#xff1f;1.6 Collection接口的两种区别1.7 ArrayList、LinkedList、Vector者的异同&#xff1f;1.8 String、Str…

【云原生】Minikube 部署

minikube 介绍 minikube 是本地 Kubernetes&#xff0c;专注于让 Kubernetes 易于学习和开发。 您所需要的只是 Docker&#xff08;或类似兼容的&#xff09;容器或虚拟机环境&#xff0c;只需一条命令即可使用 Kubernetes&#xff1a;minikube start 环境准备 2 个或更多 …

前端JS 展示上传图片缩略图(本地图片读取)

需求&#xff1a; 点击上传图片按钮&#xff0c;选择图片以后&#xff0c;不请求后端接口&#xff0c;直接将图片展示在缩略图中。 解决方案&#xff1a; 使用 FileReader 和 FileReader 中的 readAsDataURL 方法。 第一步 从input[type“file”] (上传文件标签) 里面拿到fil…