資料介紹
描述
項目概況
人們每周花大約 5 個小時在鏡子里看著自己。對于我們大多數人來說,這是我們與自己相處的時間:回顧一天中發生的事情,準備好出門或只是欣賞我們的反思。但對其他人來說,這并不容易。
研究表明,五分之二的人在照鏡子時總是對自己不滿意。這些人會不惜一切代價避開鏡子,并且不喜歡我們其他人所做的“我的時間”。同一項研究還指出,在 40% 的人中,大多數人都是女性。
我敢肯定,在某些時候,我們都為符合他人的期望并融入我們的社會群體而感到不安。不斷地照鏡子并質疑我們的外表是有壓力的。有時我們走出家門,認為自己看起來很糟糕。
更年期的女性在照鏡子時很容易感到失望。研究表明,女性在圍絕經期體重會增加 1 到 2 公斤(盡管很多人會增加更多)。這與情緒不穩定的潛在增加一起可能導致女性鄙視自己,不惜一切代價避免反思。
更令人擔憂的是,每 8 名成年人中就有 1 人因身體形象而產生過自殺念頭。照鏡子對這些人來說是可怕的,但如果我們讓他們相信生活超越了他們的外表,不管你的頭發看起來如何,每個人都以自己的方式美麗。
這是微笑鏡。我決定簡化解決這個問題的方法,并考慮人們在照鏡子時想聽到什么。也許是“你可以做到”或“繼續前進”。我想這就像你在 Duolingo 上學習時一樣,每次你連續得到 5 或 10 個答案時,Duo 就會彈出并祝賀你。雖然我知道 Duo 是一只活潑的鳥,但當我受到稱贊時,我確實為自己感到自豪。
如果我們能把這種積極的反饋帶到鏡子上呢?這就是 SmileMirror 的目標。該應用程序包括一個放置在鏡子上的人工智能驅動的智能相機,提供邊緣面部識別。當這個人花時間在鏡子前時,設備會檢測到這一點,并在他們的手機上向他們發送一條帶有鼓舞人心的消息的通知,讓他們度過一天。
雖然簡單,但這個應用程序可以真正提升一個人對自己的印象,并讓他們感到被欣賞。讓每個人都能愉快地照鏡子!
什么是微笑鏡?
SmileMirror 由安裝在用戶鏡子上的人工智能智能相機組成。該相機在邊緣有一個面部識別模塊,這意味著沒有圖像數據被發送到相機之外。相機與 Arduino 微控制器配對,用于檢查相機是否檢測到人臉。
如果在 2 分鐘內檢測到人臉,設備將選擇本地存儲的勵志消息,并通過由 Blynk 后端提供支持的移動通知發送給用戶。然后,設備將等到該人不再在鏡子中,然后再次開始循環。
一次恭維,SmileMirror 可以使用戶受益。
更進一步,會是什么?
我覺得可以對該產品進行有希望的發展,以進一步取得成功并使其大規模生產。以下是我在開發產品時想到的一些改進。這些改進可以在項目的第二個版本中實施。
- 在設備邊緣添加面部表情識別功能,使其能夠在用戶出現情緒低落時定位其消息。
- 使用工業組件降低產品的整體成本(例如,用更便宜的替代品替換 Arduino Yun)
了解細節
我喜歡將我的項目視為具有前端和后端:前端是物聯網設備,后端是發生在云中的應用程序和流程。在詳細介紹此應用程序時,我將其分為這兩個部分。
前端
該項目的前端由 Arduino 微控制器和 Huskylens 相機模塊組成。攝像頭模塊一直處于開啟狀態,由云驅動。相機已經經過訓練,可以檢測和注冊人臉,這就是它在開機時所做的事情。如果檢測到已知人臉,相機模塊將告訴微控制器識別出已知人臉。
如果單片機連續2分鐘接收到這個數據,就會意識到有人在照鏡子(這樣做是為了防止有人經過鏡子時發送消息)。然后,微控制器將向 Blynk 發送一個數據包,其中包含設備上隨機生成的鼓舞人心的消息。
我選擇使用 Arduino Yun 是因為它非常易于使用。由于它的板載 WiFi 和連接選項,這讓我能夠在幾個小時內開發一個應用程序。Huskylens 是 DF Robot 開發的智能攝像系統。該設備于今年早些時候(或去年,我不記得)在 Kickstarted 上首次亮相。當我聽說這臺相機時,我急忙去拿它。
老實說,這是一個不錯的設備,面部識別工作非常順利(考慮到它是在邊緣完成的)。它可以使用串行或 I2C 連接到任何微控制器。可以輕松訓練相機識別人臉、物體或顏色。這實際上是通過按下按鈕來完成的。
這兩種設備都非常昂貴,但請記住,這是一個原型,我選擇使用這些設備是因為它使我能夠更快地生成應用程序。如果大規模生產,可以考慮使用更便宜的替代品。
后端
該項目的后端僅由 Blynk 的基礎設施組成,該基礎設施將消息從 IoT 設備中繼到移動應用程序。Arduino Yun 向 Blynk 發送一個包含鼓舞人心的信息的字符串。然后將該消息中繼到應用程序,該應用程序將其作為通知發送給用戶。該應用程序可以輕松創建,然后部署在 iOS 和 Android 上。
市場調查
已經簡要進行了市場調查,以確定競爭并確定產品的 USP。以下是所進行的市場調查的摘要。
競爭產品和類似產品
市面上有好幾種類似的產品,在谷歌上搜索“智能鏡子”可以找到。這些產品的問題在于它們非常專注于一個復雜的系統,其中溫度和天氣預報等數據顯示在鏡子上。
與這些產品相反,SmileMirror 旨在擁有一個簡單的功能,如果他們照鏡子,它會簡單地向用戶發送一個鼓舞人心的信息。這種簡單性在這些旨在在用戶的鏡子上顯示大量信息的設計中是獨一無二的。
獨特的賣點
該應用程序的 USP 是一種將人放在首位的方法,并開發了一個系統,當人們照鏡子時,他們可以得到提升,從而提高他們對自己的尊重和自我價值。
用戶角色
典型人物的角色是40到50歲的女性。雖然這個設備是針對女性的,但大多數人都可以從中受益。用戶最好有中等收入并且在他們的身體形象方面遇到問題。
項目實施
我在下面總結了創建這個項目所需的所有步驟。
讓我們準備好東西吧!
首先,我們需要獲取項目所需的組件。這些組件在下面列出。
- Arduino Yun Rev2
- DF Robot Huskylens
- 移動電源
- 電線
- 面包板
或者,您可以使用 Arduino Uno 和 ESP8266 模塊。如果您需要任何幫助,請在這種情況下修改代碼或給我發送消息。
設置相機
我們需要做的第一件事是設置相機模塊。我們希望對其進行設置,以便在我們看它時它能夠識別我們的臉。
此鏈接位于 DF Robot 提供的文檔中,并解釋了如何在設備上注冊人臉。請按照上述文檔中提供的步驟,并在繼續下一步之前用相機記住一張臉。
硬件方面
現在我們已經設置了相機,我們可以移動到 Arduino Yun 上。如果您的 Arduino Yun 開箱即用,您需要對其進行設置并將其連接到 WiFi。Arduino 發布的這個頁面可以指導您完成設置。
在您的 Arduino Yun 啟動并運行后,接下來要做的就是連接電路。下圖顯示了相機應連接到 Arduino Yun 的方式。對于這個項目,我們將使用 Serial 與相機進行通信。
請原諒上面的示意圖中包含 Arduino Uno,不幸的是,DF Robot 沒有可用于其 Huskylens 模塊的fritzing 部件,因此我不得不使用他們網站上發布的接線圖。
讓我們看一下代碼
所以現在我們的電路已經啟動并運行了,讓我們看一下這個項目所需的代碼。我使用下面代碼部分中鏈接的 Arduino IDE 編譯了一個程序。在這一部分中,我將引導您了解代碼中的主要功能,并解釋它們的作用并將它們放在上下文中。
// CHANGE: Insert your Blynk token here
char auth[] = ""; // insert project token
// define messages
int numberOfMessages = 4; // set manually to reduce use of memory
String inspirationalMessages[] = // you can change the messages just be aware of the memory on the device
{
"Keep Going!",
"You can do this!",
"You’re doing great!",
"Show them what you've got!"
};
這段代碼可以在程序的開頭找到。第一個變量需要由用戶編輯以允許設備連接到自定義 Blynk 應用程序。然后設備會將幾條鼓舞人心的信息存儲為一個數組。您可以更改這些消息,但要注意 Arduino Yun 上的存儲使用情況,因為如果不擴展,它會非常有限。
// globals
float waitTime = 120; // time to wait until sending message (seconds)
bool counting = false; // are we counting time?
time_t currentTime;
time_t startTime;
int errorNr = 0;
int errorAdmital = 25; // quit on 25 (cannot be bigger than waitTime)
更多變量,這些非常重要,盡管用戶可以更改所有變量,但了解每個變量控制的內容至關重要。
- waitTime以秒為單位的時間量,如果一直存在人臉,則向用戶發送通知
- 計數存儲 2 分鐘是否計數。看到人臉時開始計數
- currentTime UNIX 中的當前時間。來自 Blynk RTC
- startTime在 UNIX 中開始計數的時間。
- errorNr相機未檢測到人臉的讀取次數
- errorAdmital在設備放棄計數之前允許的未檢測到面部的讀取次數。
// get the data from the camera module
void processCamera()
{
if(huskylens.request())
{
if(huskylens.available())
{
while(huskylens.available())
{
HUSKYLENSResult result = huskylens.read();
processResult(result);
}
}
else
{
errorNr++;
if(errorNr > errorAdmital) // if face not detected for a while, stop counting
{
startTime = 0;
counting = false;
}
if(errorNr > 1000) // reset value to prevent overspill
{
errorNr = 0;
}
}
}
}
這是微控制器不斷運行的循環。循環讀取攝像頭模塊輸出的數據。設備檢查模塊是否連接,是否正在上報數據。這個循環還負責錯誤計數;如果相機沒有檢測到人臉,錯誤的數量將增加。
// process the data coming from the Huskylens module
bool processResult(HUSKYLENSResult result) // only runs if block detected
{
if(result.command == COMMAND_RETURN_BLOCK) // if block returned
{
if((currentTime - startTime) > waitTime) // check if the waiting time is over
{
if(counting) // if so, send the phone notification
{
Serial.println("");
Serial.println("[loop] Face Identified for " + String(waitTime) + " seconds");
Blynk.notify(getMessage()); // send the inspirational message
delay(30 * 60 * 1000); // Set to 30 minutes. If device does not resume running the code, consider using an alarm from time library
errorNr = 0;
counting = false;
}
}
if(result.ID == 0) // if face not recognised
{
Serial.println("Face Not Recognised ID: " + String(result.ID));
if(counting)
{
errorNr = 0;
}
}
else // if face is recognised
{
Serial.println("Face Recognised ID: " + String(result.ID));
if(!counting) // if the face was just noticed, start counting
{
startTime = now();
Serial.println("face set at" + String(startTime));
}
counting = true;
errorNr = 0;
}
}
return true;
}
現在這個循環看起來有點混亂,但它的功能很簡單;檢查 2 分鐘是否結束并發送通知。除此之外,如果注意到一張臉,循環開始計算 2 分鐘并重置返回的錯誤數。
編譯代碼
接下來要做的是在 Arduino 中打開代碼,將 Arduino Yun 插入并將應用程序上傳到設備上。取消注釋 void loop() 中的最后幾行很重要,因為這會將所有變量轉儲到串行監視器。
調試時,嘗試將waitTime設置為 5 秒,并在這段時間內將您的臉放在框架中。保持串行監視器打開,如果你得到一個打印說數據正在發送到 Blynk,你就完成了!
如果您沒有成功,請不要擔心。Huskylens 模塊背面有一個 RGB LED,如果它檢測到一個記憶的臉,它會變成綠色,如果它檢測到一個它不熟悉的臉,它會變成藍色。如果它是藍色的,請確保您的面部已注冊。如果它關閉,請確保相機處于面部識別模式,方法是旋轉滾輪(在相機頂部,在您的左側),直到出現面部識別。如果沒有任何效果,而您根本不知道該怎么做,請隨時給我發消息。
讓后端排序
現在讓我們在Blynk方面工作。您可以獲得適用于Android和iOS 的應用程序。安裝應用程序后,請按照以下步驟開始。創建一個帳戶并確保您已登錄,然后再繼續。
打開 Blynk 應用程序,您應該會看到如上圖所示的屏幕(可能沒有項目空間)。
接下來,向右滑動直到出現此屏幕,單擊“新建項目”按鈕以創建一個新項目。
現在為項目命名并從下拉菜單中選擇 Arduino Yun。按創建。
您現在將被引導到一個空白畫布,您可以在其中構建您的應用程序。單擊畫布或向左滑動以顯示可用的小部件。
從列表中,依次選擇通知和 RTC 小部件并將它們放置在畫布上。
你應該最終得到這樣的東西。現在您需要做的最后一件事是單擊屏幕頂部的齒輪圖標,然后按Copy All按鈕將身份驗證令牌復制到剪貼板(包含它的電子郵件也已發送給您)。現在將其粘貼到第 30 行變量 auth[] 的代碼中。
按屏幕右上角的開始按鈕開始運行應用程序。你準備好了!
把它放在一起!
最后,再次運行調試代碼,您應該會在手機上收到帶有啟發性消息的通知。尤里卡!現在注釋掉最后的調試并上傳最終代碼以在設備上分發。剩下要做的就是把它放在鏡子上。
讓我們安裝它
最后,需要很少努力的部分(希望如此)。我很幸運,在墻壁和鏡子背面之間有驚人的空間,讓我可以把所有的組件都扔到鏡子后面,只留下鏡子前面的相機。
這對您來說可能會有所不同。如果您真的很喜歡這個項目,請考慮為該設備添加一個 3d 外殼。如果要批量生產該設備,顯然需要所有設計的一致性,因此最好使用 3D 打印外殼。
反射
嗯,這是一個有趣的項目(對我來說)。我在臨近截止日期的時候參加了比賽,我正忙于學習,但后來冠狀病毒來了,再也沒有什么可學習的了。無論如何,我需要用家里的東西做一些東西。Huskylens 是我首先想到的,因為我之前沒有機會使用它。
所以,我想出了一個競賽的點子,它最好以心理健康為目標,并想出了一個智能鏡子設計。我最初想把鼓舞人心的信息寫在鏡子上,當有人看著它時點亮它,但由于時間限制,我不得不重新考慮并想出了向用戶發送信息通知的想法。
總體而言,該項目進行得相當順利,我認為它可以大規模生產,也許整個設備可以安裝到 PCB 上并以這種方式運輸。但無論如何,我決定針對更年期帶來的多種癥狀,而不是制造那個時期女性獨有的產品。SmileMirror,雖然是針對更年期女性的,但每個人都可以使用。
我必須承認,我在開發產品時面臨的最大挑戰是使用變量。我已經有一段時間沒有真正用 C++ 編寫代碼了,在玩過 JS 和 python 之后,很難回到變量類型。我花了大約一個小時尋找在 Yun 上存儲 UNIX 時間的方法(因為 Yun 以比其他微控制器更小的精度存儲所有數值變量)。但除此之外,這是一個令人愉快的項目。我希望你喜歡它!
?
- 開源硬件之保護花園免受貓的侵害
- 開源硬件之孩子們的拼寫挑戰
- 開源硬件-警燈
- 開源硬件之Gerber文件
- AirBits開源硬件
- 開源硬件之明星有多亮
- 音箱開源硬件分享
- 開源硬件之電流傳感器交流
- HBus開源硬件
- 開源硬件之篡改防護設備
- 開源硬件之向所有有禮貌的司機表示感謝
- 門鈴開源硬件
- 開源硬件之語音控制LED
- 開源硬件之ArduBand 拯救你的眼睛
- 主流的開源硬件有哪些詳細資料說明
- 偏振鏡和減光鏡的區別 3046次閱讀
- 安信可小安派-Knob旋轉編碼器驅動板簡介 600次閱讀
- 安派-Eyes-DU開發板的參數說明 646次閱讀
- 小安派-SCP-2.4 無線中控器參數概述 851次閱讀
- 用小安派開源硬件制作一個桌面天氣站 1007次閱讀
- 開源之夏總結runk:基于Rust的OCI runtime實現 3595次閱讀
- 使用開源硬件的烹飪過程 1500次閱讀
- 尋找開源硬件成功的觸發器 755次閱讀
- dfrobotDFRobot Bluno M3控制器簡介 1996次閱讀
- 源創通信BPI-M1+ 開源硬件開發板介紹 2811次閱讀
- 源創通信開源智能路由器 MTK 7623N 介紹 3078次閱讀
- 關于FPGA在開源方面的探索淺析 3864次閱讀
- 基于Altium Designer的OSHw開源項目 3738次閱讀
- 三大主流開源硬件對比:Arduino vs BeagleBone vs Raspberry Pi 6657次閱讀
- 開源硬件究竟有多“Open”?看完這個你就清楚了 7124次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多