电容屏物体识别手工制作

电容屏识别物体效果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

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

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

相关文章

STM32的hex文件格式的分析

前言 最近研究Bootloader,通过串口实现STM32程序的更新。需要学习了解STM32的Hex文件格式。在这进行一下总结。 HEX文件格式 我们通过文本形式打开hex文件,可以看到: 这一行就是一条指令数据,这里对数据帧格式进行说明&#xff…

elementui select组件下拉框底部增加自定义按钮

elementui select组件下拉框底部增加自定义按钮 el-select组件的visible-change 事件&#xff08;下拉框出现/隐藏时触发&#xff09; <el-selectref"select":value"value"placeholder"请选择"visible-change"visibleChange">&…

Kotlin笔记(六):泛型的高级特性

前面学习了Kotlin中的泛型的基本用法,跟Java中的泛型大致相同&#xff0c;Kotlin在泛型方面还提供了不少特有的功能&#xff0c;掌握了这些功能&#xff0c;你将可以更好玩转Kotlin&#xff0c;同时还能实现一些不可思议的语法特性&#xff0c;那么我们自然不能错过这部分内容了…

2023-10-19 LeetCode每日一题(同积元组)

2023-10-19每日一题 一、题目编号 1726. 同积元组二、题目链接 点击跳转到题目位置 三、题目描述 给你一个由 不同 正整数组成的数组 nums &#xff0c;请你返回满足 a * b c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素&#xff0c;且 a ! b…

LiveGBS流媒体平台GB/T28181常见问题-安全控制HTTP接口鉴权勾选流地址鉴权后401Unauthorized如何播放调用接口

LiveGBS流媒体平台GB/T28181常见问题-安全控制HTTP接口鉴权勾选流地址鉴权后401 Unauthorized如何播放调用接口&#xff1f; 1、安全控制1.1、HTTP接口鉴权1.2、流地址鉴权 2、401 Unauthorized2.1、携带token调用接口2.1.1、获取鉴权token2.1.2、调用其它接口2.1.2.1、携带 Co…

DNS压测工具-dnsperf的安装和使用(centos)

系统调优 系统调优脚本&#xff0c;保存为sh文件&#xff0c;chmod提权后执行即可 #!/bin/sh #系统全局允许分配的最大文件句柄数&#xff1a; sysctl -w fs.file-max2097152 sysctl -w fs.nr_open2097152 echo 2097152 > /proc/sys/fs/nr_open #允许当前会话 / 进程打开文…

【论文笔记】Far3D: Expanding the Horizon for Surround-view 3D Object Detection

原文链接&#xff1a;https://arxiv.org/pdf/2308.09616.pdf 1. 引言 目前的环视图图像3D目标检测方法分为基于密集BEV的方法和基于稀疏查询的方法。前者需要较高的计算量&#xff0c;难以扩展到长距离检测。后者全局固定的查询不能适应动态场景&#xff0c;通常会丢失远距离…

竞赛选题 深度学习YOLO抽烟行为检测 - python opencv

文章目录 1 前言1 课题背景2 实现效果3 Yolov5算法3.1 简介3.2 相关技术 4 数据集处理及实验5 部分核心代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习YOLO抽烟行为检测 该项目较为新颖&#xff0c;适合作为竞赛课…

LeetCode13——罗马数字转整数

解题思想&#xff1a; 前后指针 左边比右边小 做减法 左边比右边大 做加法 最后一个数字直接加。 package keepcoding.leetcode.leetcode13;public class Result02 {public static void main(String[] args) {int result romanToInt("XIV");System.out.println(re…

最近又火了!吴恩达《生成式 AI》重磅发布!

吴恩达教授可能是许多人接触 AI 的启蒙课导师吧&#xff0c;在过去的十多年中&#xff0c;他的《Machine Learning》课程已经对数百万的学习者产生了积极影响。 而随着 ChatGPT 的推出&#xff0c;大模型和各类生成式人工智能&#xff08;GenAI&#xff09;技术在行业内外备受…

数据结构:排序

文章目录 1. 预备知识2. 插入排序2.1 直接插入排序2.2 折半插入排序 3. 希尔排序4. 交换排序4.1 冒泡排序4.2 快速排序4.2.1 选取基准值4.2.2 分割策略4.2.3 小数组4.2.4 基于Hoare版本 最后优化 递归版本 快速排序4.2.5 快速排序的非递归版本4.2.6 快速排序的分析 5. 选择排序…

[云原生1.]Docker数据管理与Cgroups资源控制管理

文章目录 1. Docker的数据管理1.1 数据卷1.1.1 示例 1.2 数据卷容器 2. 容器互联3. Cgroups资源控制管理3.1 简介3.2 cgroups的主要功能3.3 cpu时间片的简单介绍3.4 对CPU使用的限制3.4.1 对CPU使用的限制&#xff08;基于单个容器&#xff09;3.4.2 对CPU使用的限制&#xff0…

Linux CentOS 8(网卡的配置与管理)

Linux CentOS 8&#xff08;网卡的配置与管理&#xff09; 目录 一、项目介绍二、命令行三、配置文件四、图形画界面的网卡IP配置4.1 方法一4.2 方法二 一、项目介绍 Linux服务器的网络配置是Linux系统管理的底层建筑&#xff0c;没有网络配置&#xff0c;服务器之间就不能相互…

个微多账号聚合聊天管理如何实现?

在日常工作中&#xff0c;我经常遇到以下问题&#xff1a; 1. 微信号众多&#xff0c;需要频繁切换设备和账号&#xff0c;导致工作效率低下。 2. 无法及时回复客户消息&#xff0c;客户体验不尽如人意。 3. 难以随时掌握员工与客户的沟通情况&#xff0c;导致员工沟通质量难…

利用Python计算彭于晏的BMI

1 问题 彭于晏是众多男生女生心中的男神&#xff0c;那么他的BMI为多少&#xff0c;身体状况如何呢&#xff1f; 2 方法 运用python中数据类型转换&#xff0c;while 循环语句&#xff0c;if/elif/else 条件语句等方法计算彭于晏的BMI&#xff0c;判断他的身体状况。 计算公式…

烘焙蛋糕外卖小程序商城的作用是什么

随着经营成本上升及电商业态的冲击&#xff0c;传统烘焙蛋糕门店商家经营止步不前&#xff0c;加之口罩原因更是雪上加霜&#xff0c;引流拓客、经营转化复购大幅度降低&#xff0c;而线上又因外卖平台间的激烈竞争&#xff0c;导致中小烘焙蛋糕商家进退两难。 烘焙蛋糕店经营…

学习git博客

git新建分支并且提交代码过程 1. git pull <codeBaseAddress> [分支名(默认是master)] 2. cd <projectName> 3. git branch <newBranchName> // 创建分支 4. git checkout <newBranchName> // 切换到新分支 // 开始写你的新代码 5. git add . //…

动手学深度学习—使用块的网络VGG(代码详解)

目录 1. VGG块2. VGG网络3. 训练模型 1. VGG块 经典卷积神经网络的基本组成部分是下面的这个序列&#xff1a; 1.带填充以保持分辨率的卷积层&#xff1b; 2.非线性激活函数&#xff0c;如ReLU&#xff1b; 3.汇聚层&#xff0c;如最大汇聚层。 定义网络块&#xff0c;便于我…

底层驱动day2作业

控制三盏灯亮灭 代码&#xff1a; //head.h#ifndef __HEAD_H__ #define __HEAD_H__ #define PHY_RCC 0x50000A28 #define PHY_GPIOE_MODER 0x50006000 #define PHY_GPIOF_MODER 0x50007000 #define PHY_GPIOE_ODR 0x50006014 #define PHY_GPIOF_ODR 0x50007014#endif //demo…

vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx

项目开发使用vue-pdf,单页情况预览正常&#xff0c;多页vue-pdf预览异常&#xff0c;第一次预览时&#xff0c;会先弹出异常模态窗口&#xff0c;关闭模态窗口&#xff0c;pdf又是正常显示&#xff0c;报错信息及异常截图如下&#xff1a; 报错信息 Rendering cancelled, page…