所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

【看见未来】隔空控物

kylinpoet kylinpoet 2020-07-31 21:51:54
步骤1 步骤1
项目介绍:

《少数派报告》中汤姆·克鲁斯隔空拖曳屏幕的场景历历在目,以及众多科幻电影的隔空孔物频有出现,让我甚是向往,借着这次机会,也来感受下这种感觉。

PS:好像这个场景很受大家喜欢,论坛上有多篇文章介绍类似的效果。不过本人准备换种方式,不用手势传感器,直接用二哈的物品分类功能,自动识别不同手势效果。


projectImage
步骤2 步骤2
功能介绍:

为了方便演示,这里主要采用二哈识别不同方向的手势来进行PPT上下翻页的效果。因为PPT的演示是最常见和最实用的功能,因此用它来作POC是很合适的。当然因为时间关系,简化了很多功能只加入两种手势。

步骤3 步骤3
作品演示:
步骤4 步骤4
制作过程:

装备比较简单,主要是以下几个,


材料清单 材料清单
1x
Gravity: 二哈识图(HuskyLens)AI 视觉传感器
1x
掌控板2.0编程入门学习主控板 含microUSB转TypeC两用线
1x
micro:bit掌控I/O扩展板
1x
安装了python的电脑

刷入掌控板的代码:

projectImage

为了能控制电脑的键盘操作,这里用了python代码,通过串口进行通讯。原理很简单,利用python的串口库读取掌控板发送的串口信息,再利用python的自动化库进行键盘操作。有代码,有真相:

projectImage
步骤5 步骤5
总结:

没想到暑假比平时还忙,时间有点赶,暂时先做个简单的概念模型。实际上,本项目也可以用mind+的人体识别来进行,还可以进行很多的操作。如不同手型、手部的不同位置,来进行不同操作的判断。当然这是后话了。

不过,有了本地化的python,等同于有了操作电脑的root权限,后面的创意就看读者自行天马行空了。

projectImage
代码 代码
	                    					/*!
 * MindPlus
 * mpython
 *
 */
#include <MPython.h>
#include <DFRobot_HuskyLens.h>
// 创建对象
DFRobot_HuskyLens huskylens;


// 主程序开始
void setup() {
	mPython.begin();
	Serial.begin(9600);
	huskylens.beginI2CUntilSuccess();
	huskylens.writeAlgorithm(ALGORITHM_OBJECT_CLASSIFICATION);
}
void loop() {
	huskylens.request();
	if (huskylens.isAppear(2,HUSKYLENSResultBlock)) {
		display.setCursorLine(1);
		display.printLine("id2");
		Serial.println("pgup");
		delay(2000);
		display.fillInLine(1, 0);
	}
	if (huskylens.isAppear(3,HUSKYLENSResultBlock)) {
		display.setCursorLine(2);
		display.printLine("id3");
		Serial.println("pgdn");
		delay(2000);
		display.fillInLine(2, 0);
	}
}

	                    				
代码 代码
	                    					import serial
import pyautogui

pass
ser = serial.Serial(
    port='COM8',
    baudrate=9600,
    parity=serial.PARITY_ODD,
    stopbits=serial.STOPBITS_TWO,
    bytesize=serial.SEVENBITS
)
while True:
    data = ser.readline().decode().replace('\r\n', '')
    print(data)
    if data == 'pgdn':
        pyautogui.press('pgdn')
    elif data == 'pgup':
        pyautogui.press('pgup')
	                    				
projectImage
Makelog作者原创文章,未经授权禁止转载。
0
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]