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

电容屏物体识别手工制作

电容屏识别物体效果2

 

电容屏识别物体效果1

电容屏识别物体效果3

 

电容屏识别物体效果4

 

电容识别物理效果5

我们感兴趣的是找到让我们的平面屏幕与物理三维物体和表面交互的方法。

触摸屏无处不在,成千上万的应用程序中有多种设备和屏幕格式,但我们只找到了一些可以实现对象交互的选项。

我们可以想象有很多创造性的机会来连接这两个世界——你可以通过数字应用程序触摸到的物体和材料,这些应用程序能够显示丰富的交互式内容。

我们的教程建议了使用openFrameworks应用程序创建带有电容触摸屏的对象跟踪的方法。该应用程序可以在Windows或iOS上运行。您将需要openFrameworks的编码经验来运行对象检测应用程序并创建自己的交互式内容。

请注意,本教程处于实验阶段,还有改进的空间。我们希望您能提出建议和问题!

技术背景

为了了解我们的来源,我们需要回到使用相机的红外丙烯酸投影触摸屏,有一些系统能够检测触摸以及基准标记和物体。

为了了解我们的来源,我们需要回到使用相机的红外丙烯酸投影触摸屏,有一些系统能够检测触摸以及基准标记和物体。

( How to make one :

https://www.instructables.com/id/Multi-touch-Table

https://www.instructables.com/id/How-to-build-a-Multi-Touch-surface/

http://ccv.nuigroup.com/#home

In 2012 we created one using ccv )

现在,这项技术的使用越来越少,电容式触摸屏(与我们的智能手机触摸屏相同)也越来越普遍。电容式触摸屏非常准确,价格低廉,使用简单。然而,与红外丙烯酸投影不同,没有常见的方法来创建与对象的交互。我们看到的这种技术的唯一例子是来自Volumique公司,我们相信他们使用的技术与我们在本教程中展示的技术类似。

步骤一:

对于我们的演示,我们使用了以下材料(附属链接)

  1. 电容式触摸屏http://amzn.to/2ctA8ZLIiyama ProLite T2336MSC-B2或http://amzn.to/2ctA8ZLiPad。请注意,您必须选择电容式触摸屏或具有3个以上触摸点的设备(在屏幕上交互的每个对象需要3个触摸点,通常最近的电容式触摸屏幕支持10点触摸,因此可能同时检测到3个对象+1根手指)
  2. 与触摸屏建立接触点的垫子-http://amzn.to/2ctzgEp地板保护毡垫。注意,我们第一次尝试使用塑料垫http://amzn.to/2ctzgEp,但它在屏幕上滑动不好,所以除非你想让物体粘在屏幕上,否则请使用较软的材料,如毛毡垫
  3. 电动油漆http://amzn.to/2cmS4Jm或http://amzn.to/2cmS8JaBare导电涂料
  4. 油漆刷http://amzn.to/2cmR1cx
  5. 具有一个平面的对象。

以上链接可能在国内打不开。

步骤2 使用原理

我们正在触摸屏上创建三个形成三角形的触摸点。

该软件正在检测所有触摸点并寻找等腰三角形图案。

我们选择检测具有不同顶角的等腰三角形,这样我们就可以检测不同的物体。此外,知道三角形的顶点,我们可以找到物体的方向/旋转角度。物体的中心估计在三角形的中心。

步骤3:打印和修改标记模板

我们建议使用1到13个不同的对象。如果你想使用多达13个或更多不同的对象,你需要创建非常准确的标记。在获得令人满意的结果之前,您可能需要对具有不同角度的不同三角形进行实验。

您可以创建不同大小的三角形,对于我们提供的小型软件来说,重要的是保持相同的顶角。

步骤4:制作或寻找物体(原文翻译后为对象)

比如橡皮块、长方形的木头块、有具体形状的物理对象。

物体需要至少有一个平面,可以放在屏幕上。

在我们的演示中,我们使用模具制作技术创建了几何形状。我们用海藻酸盐制作了模具,因为它凝固得很快,可以与陶瓷粉末等大多数材料一起使用,我们将其与颜料混合制成我们的物体。我们期待着看到您将使用什么样的物品!

步骤5:创建标记

 

 

尽可能准确地按照打印的三角形模板,将3个凸起的垫子粘在物体的平面上

使用导电油墨,在焊盘表面涂漆

用导电墨水连接3个焊盘和物体

如果你不使用导电物体,你需要创建一个连接点,你可以用手在物体的顶部或侧面到达。该点还需要连接到焊盘。

当导电油墨干燥后,您就可以为下一部分做好准备了。

步骤6:准备软件

您需要在系统上设置并运行openFrameworks。

从以下位置下载触摸应用程序:

https://github.com/paul-ferragut/oscTouchObject(windows和openFrameworks,依赖于外部附加组件https://github.com/nneonneo/ofxWin8Touch)

https://github.com/paul-ferragut/iOSoscTouchObject(不幸的是,iOS和openFrameworks,您需要是一名获得许可的苹果开发者才能在iOS上编译该应用程序)

在运行该应用程序之前,您需要修改文件bin/data/settings.xml。在settings.xml文件中写入您正在使用的等腰三角形标记的顶角并保存该文件(例如:在示例图像中,我们使用4个顶角分别为38、91、150和165的对象)

您可以选择使用OSC协议与另一个应用程序通信,您需要更改settings.xml文件中的localhost地址和端口。此外,文件touchObject.h中有一个名为#USE_OSC的标志,您需要取消注释该标志。如果你不需要OSC,你可以注释#USE_OSC标志

当应用程序启动时,您将看到一个带有GUI的暗屏幕。根据您的屏幕分辨率和三角形标记的宽度,您需要调整滑块“distance triangle”。此变量会更改要检测的三角形的最小距离。您可以在屏幕上用3根手指模拟一个标记并形成一个三角形(请参见gif)。

在您能够测试您的对象和标记检测后,您可以开始创建自己的交互式内容!

在我们的演示中,我们用以下openFrameworks插件玩得很开心:

https://github.com/vanderlin/ofxBox2d

https://github.com/bakercp/ofxLight2D

https://github.com/tado/ofxLiquidFun

https://github.com/jacres/of-DeferredRendering

相关文章:

电容屏物体识别手工制作

电容屏识别物体效果2 电容屏识别物体效果1 电容屏识别物体效果3 电容屏识别物体效果4 电容识别物理效果5 我们感兴趣的是找到让我们的平面屏幕与物理三维物体和表面交互的方法。 触摸屏无处不在,成千上万的应用程序中有多种设备和屏幕格式,但我们只找到…...

13JVM进阶

JVM内存模型 1、线程私有的数据区 1)、程序计数器 我们知道,线程是CPU调度的基本单位。在多线程情况下,当线程数超过CPU数量或CPU内核数量时,线程之间就要根据 时间片轮询抢夺CPU时间资源。也就是说,在任何一个确定的时刻&#…...

java与c++中的交换方法

最近在写算法的时候,遇到一个问题。 java中编写swap(交换)方法还需要传入一个数组,但是在c中则不需要。 可以看到,在没有传入数组进行交换数组元素的时候,交换前与交换后的值是一样的。 而在c中&#xff…...

OpenCV中world模块介绍

OpenCV中有很多模块,模块间保持最小的依赖关系,用户可以根据自己的实际需要链接相关的库,而不需链接所有的库,这样在最终交付应用程序时可以减少总库的大小。但如果需要依赖OpenCV的库太多,有时会带来不方便,此时可以使…...

IMX6ULL板开发——第一个应用程序

实现第一个应用程序&#xff1a;在IMX6ULL开发板上运行程序hello.c #include <stdio.h>/* 执行命令: ./hello weidongshan* argc 2* argv[0] ./hello* argv[1] weidongshan*/int main(int argc, char **argv) {if (argc > 2)printf("Hello, %s!\n", arg…...

MyBatis Generator - 快速生成 实体类 和 映射文件

目录 一、MyBatis Generator 的使用 1.1、生成类和映射文件 1.1.1、在 pom.xml 中引入依赖 1.1.2、根据 configurationFile 标签中配置的路径 创建 generatorConfig.xml 文件 1.1.3、自动生成类 和 映射文件 1.1.4、在 Insert 标签中添加获取主键值的选项 1.1.5、扫描配置…...

点击查看详情 | 网页版微信客户管理系统如何操作试用?

微信作为我们日常生活中最常用的社交应用之一&#xff0c;早已成为我们与朋友、家人和同事保持联系的重要工具&#xff0c;也是营销引流的重要平台。 通过微信营销&#xff0c;可以比较精准定向亲近用户。而微信的功能并没有很能满足做微信营销的人群&#xff0c;所以我们需要借…...

新加坡攻略

文章目录 基础信息入境行李App电信交通餐饮购物法规旅游牛车水&#xff08;Chinatown&#xff09;克拉码头&#xff08;Clarke Quay&#xff09;东海岸&#xff08;East Coast&#xff09;丹戎巴葛&#xff08;Tanjong Pagar&#xff09;滨海湾&#xff08;Marina Bay&#xff…...

AM@导数的应用@二阶导数的应用@函数的性态研究@函数图形的绘制

文章目录 概念称呼说明驻点极值和极值点最值极值点和最值比较曲线的凹凸性凹凸性判定定理&#x1f47a;例证明 凹凸性和单调性无必然关系拐点寻找拐点&#x1f47a; 函数图形的绘制例 概念 本文讨论导数的应用:利用导数研究函数的性态相关定理主要通过Lagrange中值定理进行推导…...

【2024秋招】2023-9-14 最右后端开发线下一面

1 自我介绍 2 计算机网络 2.1 说说你对tcp滑动窗口的理解 TCP 滑动窗口是 TCP 协议流量控制的一个重要机制。它的主要目的是确保发送方不会因为发送太多数据而使接收方不堪重负。下面我会详细地描述滑动窗口的概念&#xff1a; 窗口的大小&#xff1a; 滑动窗口的大小&#…...

uniapp无感刷新token实现过程

路漫漫其修远兮&#xff0c;前端道路逐渐迷茫&#xff0c;时隔好久好久终于想起了我还有一个小博客&#xff0c;最近在一直在弄uniapp&#xff0c;属实有被恶心到&#xff0c;但也至少会用了&#xff0c;最近实现了一个比较通用的功能&#xff0c;就是无感刷新token&#xff0c…...

一步步掌握Java IO的奥秘:深入学习BIO、NIO,实现客户端与服务器通信

众所周知&#xff0c;Java IO是一个庞大的知识体系&#xff0c;很多人在学习的过程中会感到迷茫&#xff0c;甚至学得一头雾水&#xff0c;而我也曾有同样的困惑。因此&#xff0c;本文的目标是帮助大家一步一步深入学习Java IO&#xff0c;从BIO开始&#xff0c;然后引出JDK1.…...

MIT 生物信息课程

youtube链接 Regulatory Genomics (Lecture 07): 这门课程介绍了基因调控的概念&#xff0c;涉及到基因的开启和关闭。这是生物信息学中的一个核心概念&#xff0c;对于理解整个生物网络至关重要。 Deep Learning for Regulatory Genomics (Lecture 08): 在了解了基因调控的基…...

Windows下安装PyTorch(GPU版本)

PyTorch环境配置及安装 初步机器学习&#xff0c;这里记录下一些学习经过&#xff0c;之后以便于自己查看&#xff0c;同时欢迎各位大佬点评&#xff0c;本节是机器计算的一个包的安装和简单验证。 1.流程 确定自己的硬件信息-确定电脑有英伟达&#xff08;NVIDIA&#xff…...

力扣每日一题57:插入区间

题目描述&#xff1a; 给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&#xff09;。 示例 1&#xff1a; 输入&#x…...

大河弯弯:CSS 文档流与三大元素显示模式

文章目录 参考环境文档流概念三大显示模式 内联元素概念常见的内联元素宽高由内容决定 块级元素概念常见的块级元素宽度受容器影响&#xff0c;高度受内容影响 内联块级元素概念常见的内联块级元素折中方案 设置元素的显示模式display 属性内联元素与块级元素的切换为什么要通过…...

第六章:函数(中)

函数的参数 1.位置参数 位置参数是指函数调用时,参数的位置与函数定义中参数的位置对应,从而确定参数的值。 def fight(x,y,z):return .join((z,y,x)) fight(八神庵,打败了...

Top 10 数据恢复工具,可从iPhone 和 iPad 恢复数据

您是否正在寻找最好的 iPad 恢复软件&#xff0c;但不知道哪个选项最好&#xff1f;没有什么可担心的。本文将为您提供有关根据文件类型、设备兼容性和数据丢失原因等因素选择合适的 iPad 恢复软件的提示。此外&#xff0c;前 10 名提到的恢复软件是安全可靠的。 第 1 部分、iP…...

【C++程序员必修第一课】C++基础课程-14:C++ 函数(上)

1 本课主要内容&#xff1a; 函数是什么&#xff1f;函数的声明、定义和调用&#xff1b;函数返回值&#xff0c;函数参数&#xff0c;参数默认值函数参数不同类型的调用方式&#xff1a;传值、指针、数组、常量引用、引用等 2 主要知识点&#xff1a; 函数是什么&#xff1f; …...

android studio打开flutter项目报红

一、android studio打开flutter项目报红&#xff0c;如下图&#xff1a; 二、解决方法&#xff1a; 2.1 在这个build.gradle添加以下代码&#xff0c;如图&#xff1a; 2.2 在build.gradle最顶部添加如下代码&#xff1a; def localProperties new Properties() def localPr…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...

数据库——redis

一、Redis 介绍 1. 概述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、高性能的内存键值数据库系统&#xff0c;具有以下核心特点&#xff1a; 内存存储架构&#xff1a;数据主要存储在内存中&#xff0c;提供微秒级的读写响应 多数据结构支持&…...