自制安卓手机触控投影

介于小朋友爱玩手机,但手机伤眼。故想利用身边的物件整个墙面的手机触控投影。

一、准备材料

  1. 两个摄像头(一个要求广角120度以上,至于像素要求不高。笔者用一个720p的。另一个尽量对捕获的色彩饱和度越高越好,笔者用了个1080p的高清直播摄像头。尽量先利用身边的材料即可,后续可自行对代码进行调整)
  2. 带手机同屏的投影仪(也可以配个HDMI的投屏器,便宜。(∩_∩))
  3. 安卓手机一台(笔者用高通骁龙652,3G内存。现在估计这种二手机就二、三百元)
  4. PC一台(I3即可)
  5. 红色LED发光件(可以淘宝看看 儿童玩具发光戒指 等,笔者是把发光耳勺的头部换成红色LED再套个红色塑料壳。下文表述为发光笔)

    二、原理描述

    两个摄像头各自分管,协同配合。顶部的判断发光笔触摸到墙面否,主摄像头识别发光笔在投影中正面的点击位置。
    投影仪通过同屏方法连接手机屏幕。
    PC上实现将摄像头识别的点击信息传递给手机,控制其进行相应的点击、滑动操作。

三、实现代码
代码用python完成。具体已上传至github(https://github.com/chenfengyan/Touch-projector
代码中需要根据自己的实际信息修改相应配置。
const.py 中 填写 手机的device id (可用adb devices查看)
phone_operator.py 中 填写 ‘phone_location_in_capture‘ (按序是 竖屏时左上点、右下点 横屏时左上点、右下点 坐标 以及 手机屏幕高度的分辨率)
最后,调用K12_touch_projector.py 的main函数可以开始执行。笔者连接两个摄像头到PC上后,cv2.VideoCapture(0)是Top_camera, cv2.VideoCapture(1)是Main_camera.需按情况自行调整

四、实现情况和待改进点

原文地址:https://blog.51cto.com/cfy10/2465688

时间: 2024-11-09 09:50:52

自制安卓手机触控投影的相关文章

舌尖上的安卓(android触控事件机制学习笔记录)

对于一个"我们从来不生产代码,我们只是大自然代码的搬运工"的码农来说.对android的触控机制一直是模棱两可的状态,特别是当要求一些自定义的控件和androide的自带控件(比如ViewPager,ListView,ScrollView)高度嵌套在一起使用时. 花了点时间梳理了下,做个笔记.对于一个触控的事件从用户输入到传递到Actigvity到最外层的Viewgroup在到子View,中间过程还可能穿插多个Viewgroup,android在ViewGroup提供了3个方法来控制流

小手滑大手机 触控指来帮忙

手机走入大屏幕时代,小手滑不到大手机?贴心的日本人帮手小的使用者想到了,新产品「触控指」让人手指加长,让小手的人也可单手操控手机. 苹果新一代iPhone手机据传将推出较大屏幕,确立手机进入大屏幕时代. 伦敦「每日邮报」(Daily Mail)报导,这个假手指可帮小手的人一个大忙,新产品刚在日本上市,要价1480日圆(约新台币440元),可让人手指延展15公厘. 这个硅胶制品在末端有个触控点,长49公厘,颜色如一般人体肌肤,目前只在日本销售. 本文来自于:吉林延吉医院肝病治疗http://www

同是压力触控技术 安卓比苹果到底强在哪?

今年年中以来,ForceTouch也就是压力触控技术成为手机行业又一万众瞩目的技术焦点.所谓的Force Touch也就是设备可以感知轻压以及重压的力度,并调出不同的对应功能. 随着中兴.华为等安卓阵营厂商推出带有ForceTouch功能的手机之后,今年9月苹果在新旗舰iPhone6s身上也搭载了3D Touch,也就是压力触控技术.ForceTouch也随着iPhone6s的热卖成为了旗舰机必须要有的"标配". 不同于当初的Touch ID技术苹果大幅领先安卓手机,今年的安卓阵营的F

进阶篇-安卓系统:2.多点触控的交互处理

1.android 触摸事件侦听 安卓的用户交互方式包括两种,一种是点击交互,一种是触摸交互.点击交互就是手指按下抬起一个动作组.而触摸交互分为按下(down),移动(move),抬起(up). 触摸事件侦听代码:输出触摸事件的三个动作: 我们用一个framlayout布局进行操作 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent;

adb软件国产安卓手机对系统的把控

国产安卓手机对系统的把控,现在想搞机的方法是愈来愈麻烦,华为最先的申请解锁码,到现在直接系统锁死不给解.让我等搞机小伙伴是望机兴叹.安卓手机的通病随着系统升级,手机就越来越卡.本想通过卸载系统自带应用,缓解手机内存不足的尴尬,也越麻烦.跟大家分享个卸载华为自带顽固APP的程序.小弟自测是华为Mate20  Pro,傻瓜式操作,无需解锁系统,打开USB调试即可(不会的自行百度)      使用后的好处:1.系统整洁,都是你想用的.2.省电.3.运行流畅        基于EMUI10内部应用为基础

unity3D 实现手机的双指触控和Input类touch详解

多点触控时,下标是从0开始的,两个触控点下标就是0,1. 代码如下: nt touchCount = 2; // 触摸帧的数量 if(touchCount == Input.touchCount()){ vector2 touchPosition1 = Input.GetTouch(0).position; vector2 touchPosition2 = Input.GetTouch(1).position; } 1.Input.touchCount 触摸随之增长,一秒50次增量. 2.Inp

查询安卓手机的内部信息,几串代码即可实现

要想查询你安卓手机的内部信息,几串代码即可实现,记住这些代码,可以帮你很多忙哦~ *#*#4636#*#*显示手机信息.电池信息.电池记录.使用统计数据.WiFi 信息 *#*#7780#*#*重设为原厂设定,不会删除预设程序,及 SD 卡档案. *2767*3855#重设为原厂设定,会删除 SD 卡所有档案. *#*#34971539#*#* 显示相机相机韧体版本,或更新相机韧体 *#*#7594#*#*当长按关机按钮时,会出现一个切换手机模式的窗口,包括: 静音模式.飞航模式及关机,你可以用

微信小程序之触控事件(四)

>>>什么是事件 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. 事件对象可以携带额外信息,如id, dataset, touches. >>>事件分类 touchstart 手指触摸 touchmove 手指触摸后移动 touchcancel 手指触摸动作被打断,如弹窗和来电提醒 touchend 手指触摸动作结束 tap 手指触摸后离开 longtap 手指触摸

【转】Unity 之 移动设备的触控操作

http://blog.csdn.net/anyuanlzh/article/details/18367941 这篇博文将简单的记录,如何用unity处理在移动设备上的触控操作.    iOS和Android设备能够支持多点触控.在unity中你可以通过Input.touches属性集合访问在最近一帧中触摸在屏幕上的每一根手指的状态数据.简单的触控响应实现起很简单,不过一些复杂的触控响应或触控手势什么的,还是使用一些第三方的插件吧,当然你也可以自己封装.不管什么情况,了解决unity原生api还