資料介紹
描述
技術如何幫助我們改善生活?
這是我在考慮要實現的新項目時問自己的問題。
每天我花很多時間在電腦前工作,我希望科技能“照顧”我,試著了解我的心情,找到讓我放松和快樂的方法。
我的電腦如何解讀我的表情并讓我感覺良好?
答案很明確……使用Microsoft 認知服務和我最喜歡的小工具(Raspberry 和 Arduino)。
說說我的項目吧,走吧!
理念
在色光療法中,每種顏色都與個人特定的心理和精神特征相關,支持者認為同樣會對身體機能產生特殊影響。
沒有臨床或科學證據證明這些未經證實的斷言的優點。
然后,每種顏色都與特定屬性相關聯,通?;诤唵蔚男睦眍惐?。
我創建了一個系統,能夠看到我的表情,了解我是否快樂,并決定房間的最佳顏色是什么,以改變我的心情。
我認為它非???/font>?。?!
硬件設置
我的硬件如下圖

軟件
阿杜諾
第一步是在我的設備(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 中可用的所有狀態……這非常簡單!
- 激光療法助力牙齒再生新革命
- 覆盆子網絡電臺開源項目
- 簡單的8繼電器板可容納覆盆子板
- RS485/RS422/RS232覆盆子帽開源項目
- 樹莓派的Adafruit揚聲器閥蓋
- 覆盆子pi Wedgie開源項目
- Arduino Uno國內改版電路原理圖下載 0次下載
- Arduino Uno Rev.3開發板意大利原版電路圖 0次下載
- 杰力科創多功能觸控紅外光療機DLT8T10S 14次下載
- 直流電及直流電藥物離子導入療法
- 采用USB接口的核心電路板Arduino Mega2560 0次下載
- Arduino編程基礎(一)——Arduino語言資料下載
- Arduino開發機器人經典書籍推薦Arduino開發實戰指南:機器人卷
- 單色光立方4源程序 0次下載
- Arduino教程_Arduino圖形化編程教程_ArduBlock 0次下載
- 如何使用Python和PinPong庫控制Arduino 1033次閱讀
- 基于Arduino的機器學習開發 1.9w次閱讀
- Arduino I/O函數詳解 2587次閱讀
- 如何從網頁控制arduino? 4186次閱讀
- 普渡大學的研究人員發現藍光可以削弱一種特別令人討厭的“超級細菌” 3031次閱讀
- 類器官和iPS技術結合打通細胞療法的關鍵途徑 3975次閱讀
- arduino如何控制舵機及詳細步驟 16.5w次閱讀
- arduino連接顯示屏方法詳解 4.7w次閱讀
- Arduino如何安裝驅動_Arduino安裝驅動步驟 5.9w次閱讀
- 淺談Arduino和樹莓派的區別 2.1w次閱讀
- 低能量光療法的介紹、原理與應用詳解 5136次閱讀
- arduino用什么語言編程 6.9w次閱讀
- arduino是什么以及arduino能干什么 4.5w次閱讀
- arduino開發板有什么用 2.1w次閱讀
- arduino ide編譯過程 3404次閱讀
下載排行
本周
- 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次下載 | 免費
評論