资料介绍
描述
技术如何帮助我们改善生活?
这是我在考虑要实现的新项目时问自己的问题。
每天我花很多时间在电脑前工作,我希望科技能“照顾”我,试着了解我的心情,找到让我放松和快乐的方法。
我的电脑如何解读我的表情并让我感觉良好?
答案很明确……使用Microsoft 认知服务和我最喜欢的小工具(Raspberry 和 Arduino)。
说说我的项目吧,走吧!
理念
在色光疗法中,每种颜色都与个人特定的心理和精神特征相关,支持者认为同样会对身体机能产生特殊影响。
没有临床或科学证据证明这些未经证实的断言的优点。
然后,每种颜色都与特定属性相关联,通常基于简单的心理类比。
我创建了一个系统,能够看到我的表情,了解我是否快乐,并决定房间的最佳颜色是什么,以改变我的心情。
我认为它非常酷!!!
硬件设置
我的硬件如下图
软件
阿杜诺
第一步是在我的设备(Raspberry 和 Arduino)之间建立通信。为此,我决定使用SoftwareSerial Library。我受到David Jones Project和Jiong Shi主持的项目的启发。
下一步是更改我的蓝牙设备的默认名称。模块的默认名称是HC-05 ,这并不酷!
要更改蓝牙模块的名称,我们应该学习和使用 AT 命令。有关 AT 命令以及如何使用 Arduino 和蓝牙模块使用它们的更多信息,请参阅此链接。
正如我所说,Raspberry 和 Anrduino 之间的通信是由蓝牙连接组成的。我决定在 UWP 应用程序中实现一种方法,将包含 3 个字符(相当于 3 个字节)的字符串发送到 Arduino,Arduino 接收并解码输入数据。
仅供参考,一段Arduino解码代码如下所示(完整源码见下方代码部分):
if (BTSerial.available())
{
// Read string from Raspberry
delay(10);
ch1 = BTSerial.read();
delay(10);
ch2 = BTSerial.read();
delay(10);
ch3 = BTSerial.read();
delay(10);
if (ch1 == '1')
digitalWrite(GREEN, HIGH);
else
digitalWrite(GREEN, LOW);
if (ch2 == '1')
digitalWrite(BLUE, HIGH);
else
digitalWrite(BLUE, LOW);
if (ch3 == '1')
digitalWrite(RED, HIGH);
else
digitalWrite(RED, LOW);
...
...
...
}
现在是时候创建一个新的解决方案并实现我们的代码了!
通用 Windows 平台应用程序
我决定探索 Microsoft 的Emotion API (有关 SDK 的更多详细信息,请参阅链接)。
如果您从头开始创建 UWP 项目,则必须安装“Oxford”包,在 Visual Studio 中打开“NuGet 包管理器控制台”并键入Install-Package Microsoft.ProjectOxford.Emotion
确保您已通过 Azure 生成了情感服务密钥。为此,转到此并单击“在 Azure 上购买”
然后,您将被重定向到您的 Azure 帐户,现在您必须编译一些字段,如下所示,我使用了“免费定价层”,每月允许您进行 30000 次图像交易。(如果您没有免费的 Azure 帐户,请访问此链接)
现在探索您在 Azure 中的认知服务帐户并转到密钥部分。
有 2 个键,选择一个并在以下字符串中“复制并粘贴” MainPage.xaml.cs中的值:
string subscriptionKey = "xxxxxxxxxxxxxxxxxxx";
UWP 必备
要访问蓝牙和其他各种功能,如网络摄像头、图片等,我们需要在“ Package.appmanifest ”文件中提及它们。
为此,请按照提到的步骤操作:
代码片段:
<Capabilities>
<Capability Name="internetClient" />
<uap:Capability Name="picturesLibrary" />
<uap:Capability Name="removableStorage" />
<DeviceCapability Name="bluetooth.rfcomm">
<Device Id="any">
<Function Type="name:serialPort"/>
Device>
DeviceCapability>
<DeviceCapability Name="webcam" />
<DeviceCapability Name="microphone" />
Capabilities>
基本理念(图像捕捉、UWP 应用程序)
我们需要将捕获的图像转换为 MemoryStream。为此:
var reader= new Datareader(photoStream.GetInputStreamAt(0);
var bytes = new byte[photoStream.Size];
await reader.LoadAsync((uint)photoStream.Size);
reader.ReadBytes(bytes);
var stream = new MemoryStream(bytes);
所以现在,使用一次调用,您可以从 Azure 检索情绪结果:
Emotion[] emotionResult;
emotionResult = await emotionServiceClient.RecognizeAsync(stream);
硬件
UWP应用程序
在第一张图片中,您可以看到应用程序启动屏幕。在左侧,它显示从网络摄像头捕获的图片。在中间的情绪状态和右侧,您可以配置与 Arduino 的蓝牙连接。
每次获取图像时,系统都会评估打开灯光的最佳颜色,并通过蓝牙将其发送到 Arduino。(正如您从后面的代码中看到的那样,我创建了一个每 10 秒捕获一次图片的计时器。)
目前UWP应用程序在我的PC上运行,因为它很容易截图,但它是一个UWP应用程序,所以在Raspberry上部署应用程序不是问题。
目前,系统管理以下 3 种颜色,但创建逻辑非常容易,您会更喜欢:
if (emotionResult[0].Scores.Happiness >= 0.85)
{
Send("111");
}
else if (emotionResult[0].Scores.Happiness >= 0.50 && emotionResult[0].Scores.Happiness < 0.85)
{
Send("001");
}
else if (emotionResult[0].Scores.Happiness > 0.25 && emotionResult[0].Scores.Happiness < 0.50)
{
Send("100");
}
else
{
Send("110");
}
我假设颜色组合为:
000 = Cyan
001 = Light green // Mild Happy
010 = Violet
011 = Red
100 = Light blue // Neutral
101 = Green
110 = Blue
111 = OFF // Happy
如您所见,如果您快乐,则不需要点亮 :)
让我们看看实际效果
未来发展
- Emotion Api 能够确定图像帧中每个人的状态分数。所以你将能够确定幸福的平均值 :) 并决定打开你房间的最佳颜色
- 为硬件创建一个漂亮的包装器
- 在这个项目中,我只评估“幸福”,但您可以尝试开发一种算法,考虑 API 中可用的所有状态……这非常简单!
- 激光疗法助力牙齿再生新革命 0次下载
- 覆盆子网络电台开源项目 0次下载
- 简单的8继电器板可容纳覆盆子板 0次下载
- RS485/RS422/RS232覆盆子帽开源项目 4次下载
- 树莓派的Adafruit扬声器阀盖 0次下载
- 覆盆子pi Wedgie开源项目 0次下载
- Arduino Uno国内改版电路原理图下载 0次下载
- Arduino Uno Rev.3开发板意大利原版电路图 0次下载
- 杰力科创多功能触控红外光疗机DLT8T10S 14次下载
- 直流电及直流电药物离子导入疗法 5次下载
- 采用USB接口的核心电路板Arduino Mega2560 0次下载
- 在Arduino IED中安装TimeOne库文件 1次下载
- Arduino编程基础(一)——Arduino语言资料下载 53次下载
- 单色光立方4源程序 0次下载
- Arduino教程_Arduino图形化编程教程_ArduBlock 0次下载
- 如何使用Python和PinPong库控制Arduino 378次阅读
- STM32和Arduino对比,谁更厉害? 3115次阅读
- Arduino I/O函数详解 1998次阅读
- DIY一个简单的Arduino板子 4730次阅读
- 如何从网页控制arduino? 3422次阅读
- 普渡大学的研究人员发现蓝光可以削弱一种特别令人讨厌的“超级细菌” 2857次阅读
- 类器官和iPS技术结合打通细胞疗法的关键途径 3672次阅读
- arduino如何控制舵机及详细步骤 16.1w次阅读
- arduino连接显示屏方法详解 4.6w次阅读
- Arduino如何安装驱动_Arduino安装驱动步骤 5.8w次阅读
- 浅谈Arduino和树莓派的区别 2w次阅读
- 低能量光疗法的介绍、原理与应用详解 4686次阅读
- arduino用什么语言编程 6.7w次阅读
- arduino是什么以及arduino能干什么 4.3w次阅读
- arduino开发板有什么用 2w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多