資料介紹
描述
什么想法?
我的女兒喜歡甜食。她非常愛他們,以至于她愿意做任何事情來得到他們:不吃飯,從秘密藏身處偷他們,只要她得到她的糖劑量,她甚至愿意在這樣做時被抓到受到懲罰。
糖會激活大腦的獎賞系統(tǒng)。該系統(tǒng)的激活會導致強烈的獎賞感,從而導致渴望和上癮。所以藥物和糖都會激活大腦中相同的獎勵系統(tǒng),導致多巴胺的釋放。
我們?nèi)叶际褂?Fitbit 健身追蹤器,但她的步伐不是那么好。但是,如果我們將她對甜食的渴望與她的實際日常活動同步起來呢?如果我可以讓她增加體力活動以獲得這些獎勵怎么辦?我想那沒關(guān)系,因為一般來說我對甜食沒有問題,但我在沙發(fā)上發(fā)胖的同時吃甜食有問題。:)
因此,檢查了他們的 API,發(fā)現(xiàn)他們公開了日常活動指標,例如步數(shù)、攀爬的樓層數(shù)、距離、卡路里等。唯一要做的就是糖果分配器能夠根據(jù)她的活動水平給她糖果。為了讓事情變得更有趣,我決定讓整個家庭都參加這次比賽,并讓這個分配器具有多用戶功能。這打開了一些有趣的家庭挑戰(zhàn)的大門,其中涉及含糖獎勵。
項目一覽
該項目相當簡單。如果您熟悉基本概念,那么棘手的部分不是電子設備,而是機械部分。
- 糖果垂直排列在塔狀盒子內(nèi)
- 微控制器 ESP8266 NodeMCU 設置一個 HTTP 服務器監(jiān)聽 LAN 上的連接。
- 可以托管在互聯(lián)網(wǎng)上的配套網(wǎng)絡應用程序,發(fā)送和接收 HTTP 消息以分發(fā)糖果或獲取狀態(tài)信息。
- 配套應用程序可以有任何邏輯,但我的版本會根據(jù)您使用 Fitbit 進行的健身活動為您提供糖果。您可以輕松編寫不同的邏輯,因為分配器本身可以使用 Restful API 進行控制。當你在 Facebook 上收到點贊時,比如給你糖果 :) 瘋了!
- 如果通過 API 請求糖果,微控制器會指示伺服電機移動,進而使托盤滑動,最終將糖果推出
- 該設備非常基本。附加功能包括燈光和最后播放帶有蜂鳴器的愚蠢旋律。
點膠機構(gòu)
- 因為機器是點膠機,所以只有一個主命令點膠
- 當微控制器接收到點膠指令時,它會利用360度連續(xù)伺服來完成這項工作。
- 伺服正在向前推動托盤并可以通過推拉桿將其拉回,
- 托盤在軌道上滑動。您可以輕松地用兩根堅硬的金屬棒制作軌道。潤滑桿以改善滑動并最大程度地減少令人不快的噪音。托盤可以由木頭、塑料甚至金屬制成。我建議你把托盤做得盡可能薄,但能把糖果移出來,把托盤安裝得盡可能靠近地面,最好不要接觸地面。由于糖果下落的角度較小,這將有助于防止卡紙。
- 托盤最初位于塔內(nèi)最底部,所有糖果都在頂部。
- 首先,伺服電機拉回托盤,為下一顆糖果騰出空間,下一顆糖果落在外殼底部,同時托盤縮回,然后托盤向前推動,進而將糖果推??到外面。
- 有兩個金屬傳感器,一個在前面,一個在后面,可以判斷托盤何時到達最終或初始位置。它們的作用類似于按鈕,并使用中斷進行處理,以提高安全性和響應能力。
- 如果托盤沒有在預期的時間范圍內(nèi)到達目的地(設置為 1 秒),則實施軟件卡紙保護以防止損壞
- 對于維護,有前后移動托盤的命令,但如果托盤卡住,您可以用手移動托盤 :)。
筆記:
使用不同類型的電機也可以。我有一個連續(xù)伺服,但我想位置伺服甚至步進電機或普通直流電機都可以工作。如果您依靠它們的固定定位精度,您甚至可以放棄初始/最終位置傳感器。移除這些的一個問題可能是位置校準和軸位置的手動更改。
你需要把伺服喇叭做得更長;為此,您可以像我一樣用螺絲連接 7-8 厘米的膠合板延伸件。控制桿通常在與喇叭連接的一端有一個 Z 形彎頭(彎成字母 Z 的形狀),另一端有一個 90 度彎頭,帶有彈簧固定器。我的 Z 彎不太好,因為我使用了非常堅硬的電線并且沒有合適的工具,所以我實際上使用了 U 彎,效果很好。這個想法是桿不應該從喇叭中脫出。這是一個很好的補充,可以確保桿移動的孔不會磨損(特別是如果喇叭材料像木頭或塑料一樣柔軟),所以我插入了一個橡膠墊圈。要制作彈簧固定器,您可以使用一些彈性線和一根熱縮管。
不要忘記用提供的螺絲將喇叭固定到伺服器上。您可能需要在木質(zhì)延伸件上鉆一個孔,以便將螺絲實際連接到塑料喇叭上。
通電
所有基于 ESP8266 的開發(fā)板都有一個內(nèi)置穩(wěn)壓器,因此您只需連接一根 USB 數(shù)據(jù)線,它將提供 5V 電壓,內(nèi)置穩(wěn)壓器將為芯片提供 3.3V 電壓。請注意,舵機連接到 5V 輸入,因為它需要更多功率。所以基本上輸入電壓為 5 伏,設備在點膠時需要高達 1.5A 的電流。不分配時,WiFi 芯片通常消耗 50 - 300 毫安,每個 LED 消耗 30 毫安。我沒有實現(xiàn)省電模式,但在待機狀態(tài)下,它不應超過 120 毫安。
燈光
任何涼爽的分配器都有一個透明面板,供您檢查里面的食物,并配有照明。
我沒有在照明方面走得太遠,即使你對彩色 LED 發(fā)瘋了。我只是在前面板使用了兩個白色 LED,由一個 NPN 晶體管激活。前面板燈也可用作狀態(tài)和錯誤指示器。
當設備連接到 WiFi 時,燈會慢慢淡入和熄滅,直到建立連接,然后燈會亮到更高的強度。我只是使用 PWM 引腳來控制光的強度。
該電路是一個標準的低側(cè) NPN 開關(guān)。
如果您是初學者,請繼續(xù)閱讀
它被稱為低側(cè)開關(guān),因為晶體管正在切換接地路徑。負載的 VCC 輸入直接連接到電源正輸出,而負載的地通過連接到集電極引腳的晶體管連接。如果足夠的電壓和電流施加到晶體管的基極,晶體管就會飽和并從集電極傳導到發(fā)射極。負載由我們的兩個白色 LED 組成,正極(陽極)通過串聯(lián)電阻連接,以限制電流.為了激活“開關(guān)”,我們通過串聯(lián)電阻向晶體管的基極發(fā)送邏輯 1。基極沒有電阻的三極管就像沒有限流電阻的LED. 電阻器的值及其兩端的電壓將設置電流。電阻器需要足夠大以有效地限制電流,但又要足夠小以便為基極提供足夠的電流。您可以根據(jù)您的晶體管和負載計算該值。例如,我的 NPN3904 的 hFE=100 與 5k 電阻器配合使用可以很好地切換 60mA,因此我使用了一個 4.7K 的電阻器,它應該在 3.3V 和 3.3V 的正向 LED 電壓下處理 70mA。我使用了一個非常小的 1.8 歐姆電阻來限制 LED 電流,因為 LED 的正向電壓應該相同,并且電壓是穩(wěn)定的。您可以使用此計算器計算基極電阻。而這個用于 LED 電阻器。
安全和糖果防盜保護
為了防止未經(jīng)授權(quán)訪問糖果(基本上是為了防止我的女兒偷糖果 :))我使用了一把普通的舊鎖。如果你想避免作弊,我認為這個問題不能被忽視 :)
音效
分配過程完成后,我正在使用無源蜂鳴器播放旋律。由于播放旋律通常有延遲,我創(chuàng)建了一個safeDelay
函數(shù)以較小的增量(100 毫秒)延遲,讓內(nèi)部 ESP8266 進程更頻繁地運行,延遲被認為是一種不好的做法,但旋律是在最后播放的分配過程,所以它不應該影響響應有用命令的能力。
外殼
外殼是用膠合板建造的。前門有一個透明的塑料面板,可以看到里面的食物。
最重要的方面是確定糖果塔的尺寸。我建造了一個巨型 Tic-Tac 盒尺寸的塔。這個方便的塑料盒有一個小活動鉸鏈蓋,可以裝 M&Ms、Smarties 或類似的小糖果,完全取下蓋子后,您可以放入巧克力塊,如 Kinder 巧克力棒或任何適合的東西。糖果塔應該與 Tic-Tac 盒子緊密貼合,各個方向的間距只有幾毫米。如果空間太多或太少,Tic-tacs 就會卡住,
在外殼上加一個蓋子或門是非常有用的,這樣你就可以進行維護。維護可以包括潤滑導軌。在我的版本中,無法通過打開蓋子取出糖果,因此沒有必要固定它。
一個很好的補充也是一個電源開關(guān)。您可以剪斷 USB 電纜并將一個小開關(guān)連接到正極。
網(wǎng)絡應用
配套網(wǎng)絡應用程序是用 PHP/Javascript 編寫的。實際上,我將此功能集成到一個更復雜的應用程序中,我正在使用該應用程序?qū)⑹澄镉涗浀?Fitbit 中,并連接到我的 DIY Healtzuilla 體重秤。
作為高級概述,該應用程序使用通過 HTTP 分配的 LAN IP 與分配器通信。如果完成定義的挑戰(zhàn),它使用status
和dispense
端點提供糖果。為了檢查挑戰(zhàn)是否完成以及如何完成,它使用 OAuth2 身份驗證連接到 Fitbit Web API 并檢索每日統(tǒng)計數(shù)據(jù)。它會跟蹤已經(jīng)分配(吃掉)的糖果,如果您贏得了新糖果,它會為您提供新糖果。它為不同的用戶保留單獨的統(tǒng)計信息。
從這個更大的代碼庫中提取與 Dulciurilla 相關(guān)的 PHP 源代碼會有點困難,但如果有足夠的請求,我可以做一些努力。
使用 jquery 的分配器的 ES6 Javascript 類示例:
class DispenserApi {
constructor(baseUrl) {
this.baseUrl = baseUrl;
}
executeCall(endpoint, method = 'GET', body = null) {
return $.ajax({
type: method,
url: this.baseUrl + endpoint,
dataType: 'json',
data: body
}).fail(function (jqXHR, textStatus, errorThrown) {
console.log('Request failed: ' + jqXHR.status);
});
}
getStatus() {
return this.executeCall('dispenser/status');
}
dispense() {
return this.executeCall('dispenser/dispense', 'POST');
}
}
它可以像這樣實例化和使用:
// replace with your dispenser IP
var dispenser = new DispenserApi('http://192.168.0.152/api/');
dispenser.dispense().done(function (dispenseData) {
console.log("Success");
}).fail(function (jqXHR, textStatus, errorThrown) {
console.log("Failed");
});
寧靜 API 參考
RESTful HTTP API 可在 獲得http:///api/
。所有響應都是 json 格式。
成功的 POST/PATCH 操作返回 HTTP 狀態(tài)代碼 200 和如下所示的 JSON:
{"success": true}
失敗的請求返回一個非 200 的 HTTP 狀態(tài)代碼和一個帶有兩個鍵的 JSON 對象:
- 錯誤:bool (始終為真)
- 消息:字符串(可選)
例子:
{"error": "true", "message": "Something went wrong"}
以下所有路徑均與秤 IP 地址相關(guān)。
分配器API
要求分發(fā)糖果
POST /api/dispenser/dispense
獲取設備狀態(tài)
GET /api/dispenser/status
設備可能處于以下狀態(tài)之一:
- 正在初始化(代碼 0)-尚未準備好命令
- 空閑(代碼 1)-準備好執(zhí)行命令
- 點膠(代碼 2)-在點膠過程中,此時無法處理新命令
- 錯誤(代碼 3)- 如果托盤卡住,WiFi 未連接。無法處理任何命令。
示例響應:
{"statusCode": 2, "statusText": "Dispensing"}
維護API
向前移動托盤
POST /api/dispenser/maintenance/tray/move-forward
向后移動托盤
POST /api/dispenser/maintenance/tray/move-backwards
獲取托盤狀態(tài)
GET /api/dispenser/maintenance/tray/status
托盤可以處于以下狀態(tài)之一:
- 已停止(代碼 0)
- 向后移動(代碼 1)
- 前進(代碼 2)
示例響應:
{"status": 1, "statusText": "向后移動", "operationTime": 360}
- 自動洗手分配器開源設計
- 智能洗衣液分配器開源分享
- RFID藥丸分配器開源
- 自動酒精分配器開源分享
- 自動洗手分配器開源分享
- arduino廉價肥皂分配器
- 點心分配器開源分享
- PocketBeagle藥物分配器開源分享
- 多功能步進電動機環(huán)形分配器 10次下載
- OmateHDDVI高清視頻分配器 0次下載
- 使用tcl文件分配器件與管腳 0次下載
- 五路色差視音頻放大分配器
- 可調(diào)諧光功率分配器應用及技術(shù)
- 微帶功率分配器設計方法
- 譯碼器 數(shù)據(jù)分配器
- 液壓分配器起什么作用的 417次閱讀
- Linux內(nèi)核內(nèi)存管理之slab分配器 903次閱讀
- Linux內(nèi)核內(nèi)存管理之ZONE內(nèi)存分配器 736次閱讀
- 如何制作低成本但全自動的洗手液分配器電路 1348次閱讀
- 功率分配器的作用及技術(shù)指標 1377次閱讀
- Linux內(nèi)核之塊分配器 1469次閱讀
- Linux內(nèi)核之伙伴分配器 1599次閱讀
- bootmem分配器使用的數(shù)據(jù)結(jié)構(gòu) 1340次閱讀
- 自制一個洗手液分配器 1685次閱讀
- 深入剖析SLUB分配器和SLAB分配器的區(qū)別 1008次閱讀
- linux內(nèi)存管理中的SLAB分配器詳解 2086次閱讀
- 分配器點涂技術(shù)的特點及方法介紹 4667次閱讀
- 功率分配器或合成器選擇的關(guān)鍵性能參數(shù)研究 2174次閱讀
- 基于DMA控制器的軟件環(huán)形脈沖分配器設計 4319次閱讀
- 功分器、分支器和分配器的區(qū)別 1.8w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 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開發(fā)指南
- 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開關(guān)電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 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次下載 | 免費
評論
查看更多