資料介紹
描述
什么想法?
我的女兒喜歡甜食。她非常愛他們,以至于她愿意做任何事情來得到他們:不吃飯,從秘密藏身處偷他們,只要她得到她的糖劑量,她甚至愿意在這樣做時(shí)被抓到受到懲罰。
糖會(huì)激活大腦的獎(jiǎng)賞系統(tǒng)。該系統(tǒng)的激活會(huì)導(dǎo)致強(qiáng)烈的獎(jiǎng)賞感,從而導(dǎo)致渴望和上癮。所以藥物和糖都會(huì)激活大腦中相同的獎(jiǎng)勵(lì)系統(tǒng),導(dǎo)致多巴胺的釋放。
我們?nèi)叶际褂?Fitbit 健身追蹤器,但她的步伐不是那么好。但是,如果我們將她對(duì)甜食的渴望與她的實(shí)際日?;顒?dòng)同步起來呢?如果我可以讓她增加體力活動(dòng)以獲得這些獎(jiǎng)勵(lì)怎么辦?我想那沒關(guān)系,因?yàn)橐话銇碚f我對(duì)甜食沒有問題,但我在沙發(fā)上發(fā)胖的同時(shí)吃甜食有問題。:)
因此,檢查了他們的 API,發(fā)現(xiàn)他們公開了日?;顒?dòng)指標(biāo),例如步數(shù)、攀爬的樓層數(shù)、距離、卡路里等。唯一要做的就是糖果分配器能夠根據(jù)她的活動(dòng)水平給她糖果。為了讓事情變得更有趣,我決定讓整個(gè)家庭都參加這次比賽,并讓這個(gè)分配器具有多用戶功能。這打開了一些有趣的家庭挑戰(zhàn)的大門,其中涉及含糖獎(jiǎng)勵(lì)。
![20191106_084657_5S6at2j4PU.jpg?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1041053/20191106_084657_5S6at2j4PU.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
項(xiàng)目一覽
該項(xiàng)目相當(dāng)簡(jiǎn)單。如果您熟悉基本概念,那么棘手的部分不是電子設(shè)備,而是機(jī)械部分。
- 糖果垂直排列在塔狀盒子內(nèi)
- 微控制器 ESP8266 NodeMCU 設(shè)置一個(gè) HTTP 服務(wù)器監(jiān)聽 LAN 上的連接。
- 可以托管在互聯(lián)網(wǎng)上的配套網(wǎng)絡(luò)應(yīng)用程序,發(fā)送和接收 HTTP 消息以分發(fā)糖果或獲取狀態(tài)信息。
- 配套應(yīng)用程序可以有任何邏輯,但我的版本會(huì)根據(jù)您使用 Fitbit 進(jìn)行的健身活動(dòng)為您提供糖果。您可以輕松編寫不同的邏輯,因?yàn)榉峙淦鞅旧砜梢允褂?Restful API 進(jìn)行控制。當(dāng)你在 Facebook 上收到點(diǎn)贊時(shí),比如給你糖果 :) 瘋了!
- 如果通過 API 請(qǐng)求糖果,微控制器會(huì)指示伺服電機(jī)移動(dòng),進(jìn)而使托盤滑動(dòng),最終將糖果推出
- 該設(shè)備非?;?。附加功能包括燈光和最后播放帶有蜂鳴器的愚蠢旋律。
點(diǎn)膠機(jī)構(gòu)
![20191106_084338_AMjEjv10z4.jpg?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1037734/20191106_084338_AMjEjv10z4.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
- 因?yàn)闄C(jī)器是點(diǎn)膠機(jī),所以只有一個(gè)主命令點(diǎn)膠
- 當(dāng)微控制器接收到點(diǎn)膠指令時(shí),它會(huì)利用360度連續(xù)伺服來完成這項(xiàng)工作。
- 伺服正在向前推動(dòng)托盤并可以通過推拉桿將其拉回,
- 托盤在軌道上滑動(dòng)。您可以輕松地用兩根堅(jiān)硬的金屬棒制作軌道。潤(rùn)滑桿以改善滑動(dòng)并最大程度地減少令人不快的噪音。托盤可以由木頭、塑料甚至金屬制成。我建議你把托盤做得盡可能薄,但能把糖果移出來,把托盤安裝得盡可能靠近地面,最好不要接觸地面。由于糖果下落的角度較小,這將有助于防止卡紙。
- 托盤最初位于塔內(nèi)最底部,所有糖果都在頂部。
- 首先,伺服電機(jī)拉回托盤,為下一顆糖果騰出空間,下一顆糖果落在外殼底部,同時(shí)托盤縮回,然后托盤向前推動(dòng),進(jìn)而將糖果推??到外面。
- 有兩個(gè)金屬傳感器,一個(gè)在前面,一個(gè)在后面,可以判斷托盤何時(shí)到達(dá)最終或初始位置。它們的作用類似于按鈕,并使用中斷進(jìn)行處理,以提高安全性和響應(yīng)能力。
- 如果托盤沒有在預(yù)期的時(shí)間范圍內(nèi)到達(dá)目的地(設(shè)置為 1 秒),則實(shí)施軟件卡紙保護(hù)以防止損壞
- 對(duì)于維護(hù),有前后移動(dòng)托盤的命令,但如果托盤卡住,您可以用手移動(dòng)托盤 :)。
筆記:
使用不同類型的電機(jī)也可以。我有一個(gè)連續(xù)伺服,但我想位置伺服甚至步進(jìn)電機(jī)或普通直流電機(jī)都可以工作。如果您依靠它們的固定定位精度,您甚至可以放棄初始/最終位置傳感器。移除這些的一個(gè)問題可能是位置校準(zhǔn)和軸位置的手動(dòng)更改。
你需要把伺服喇叭做得更長(zhǎng);為此,您可以像我一樣用螺絲連接 7-8 厘米的膠合板延伸件。控制桿通常在與喇叭連接的一端有一個(gè) Z 形彎頭(彎成字母 Z 的形狀),另一端有一個(gè) 90 度彎頭,帶有彈簧固定器。我的 Z 彎不太好,因?yàn)槲沂褂昧朔浅?jiān)硬的電線并且沒有合適的工具,所以我實(shí)際上使用了 U 彎,效果很好。這個(gè)想法是桿不應(yīng)該從喇叭中脫出。這是一個(gè)很好的補(bǔ)充,可以確保桿移動(dòng)的孔不會(huì)磨損(特別是如果喇叭材料像木頭或塑料一樣柔軟),所以我插入了一個(gè)橡膠墊圈。要制作彈簧固定器,您可以使用一些彈性線和一根熱縮管。
![20191006_152915_blTmJdzlwn.jpg?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1037738/20191006_152915_blTmJdzlwn.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
不要忘記用提供的螺絲將喇叭固定到伺服器上。您可能需要在木質(zhì)延伸件上鉆一個(gè)孔,以便將螺絲實(shí)際連接到塑料喇叭上。
![20191027_104653_JWVf6ghmG6.jpg?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1037736/20191027_104653_JWVf6ghmG6.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
通電
所有基于 ESP8266 的開發(fā)板都有一個(gè)內(nèi)置穩(wěn)壓器,因此您只需連接一根 USB 數(shù)據(jù)線,它將提供 5V 電壓,內(nèi)置穩(wěn)壓器將為芯片提供 3.3V 電壓。請(qǐng)注意,舵機(jī)連接到 5V 輸入,因?yàn)樗枰喙β省?/font>所以基本上輸入電壓為 5 伏,設(shè)備在點(diǎn)膠時(shí)需要高達(dá) 1.5A 的電流。不分配時(shí),WiFi 芯片通常消耗 50 - 300 毫安,每個(gè) LED 消耗 30 毫安。我沒有實(shí)現(xiàn)省電模式,但在待機(jī)狀態(tài)下,它不應(yīng)超過 120 毫安。
燈光
任何涼爽的分配器都有一個(gè)透明面板,供您檢查里面的食物,并配有照明。
我沒有在照明方面走得太遠(yuǎn),即使你對(duì)彩色 LED 發(fā)瘋了。我只是在前面板使用了兩個(gè)白色 LED,由一個(gè) NPN 晶體管激活。前面板燈也可用作狀態(tài)和錯(cuò)誤指示器。
當(dāng)設(shè)備連接到 WiFi 時(shí),燈會(huì)慢慢淡入和熄滅,直到建立連接,然后燈會(huì)亮到更高的強(qiáng)度。我只是使用 PWM 引腳來控制光的強(qiáng)度。
![led-connection-board_bb_E0Q5C6vtKi.png?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1035381/led-connection-board_bb_E0Q5C6vtKi.png?auto=compress%2Cformat&w=740&h=555&fit=max)
該電路是一個(gè)標(biāo)準(zhǔn)的低側(cè) NPN 開關(guān)。
如果您是初學(xué)者,請(qǐng)繼續(xù)閱讀
它被稱為低側(cè)開關(guān),因?yàn)榫w管正在切換接地路徑。負(fù)載的 VCC 輸入直接連接到電源正輸出,而負(fù)載的地通過連接到集電極引腳的晶體管連接。如果足夠的電壓和電流施加到晶體管的基極,晶體管就會(huì)飽和并從集電極傳導(dǎo)到發(fā)射極。負(fù)載由我們的兩個(gè)白色 LED 組成,正極(陽極)通過串聯(lián)電阻連接,以限制電流.為了激活“開關(guān)”,我們通過串聯(lián)電阻向晶體管的基極發(fā)送邏輯 1。基極沒有電阻的三極管就像沒有限流電阻的LED. 電阻器的值及其兩端的電壓將設(shè)置電流。電阻器需要足夠大以有效地限制電流,但又要足夠小以便為基極提供足夠的電流。您可以根據(jù)您的晶體管和負(fù)載計(jì)算該值。例如,我的 NPN3904 的 hFE=100 與 5k 電阻器配合使用可以很好地切換 60mA,因此我使用了一個(gè) 4.7K 的電阻器,它應(yīng)該在 3.3V 和 3.3V 的正向 LED 電壓下處理 70mA。我使用了一個(gè)非常小的 1.8 歐姆電阻來限制 LED 電流,因?yàn)?LED 的正向電壓應(yīng)該相同,并且電壓是穩(wěn)定的。您可以使用此計(jì)算器計(jì)算基極電阻。而這個(gè)用于 LED 電阻器。
安全和糖果防盜保護(hù)
為了防止未經(jīng)授權(quán)訪問糖果(基本上是為了防止我的女兒偷糖果 :))我使用了一把普通的舊鎖。如果你想避免作弊,我認(rèn)為這個(gè)問題不能被忽視 :)
音效
分配過程完成后,我正在使用無源蜂鳴器播放旋律。由于播放旋律通常有延遲,我創(chuàng)建了一個(gè)safeDelay
函數(shù)以較小的增量(100 毫秒)延遲,讓內(nèi)部 ESP8266 進(jìn)程更頻繁地運(yùn)行,延遲被認(rèn)為是一種不好的做法,但旋律是在最后播放的分配過程,所以它不應(yīng)該影響響應(yīng)有用命令的能力。
外殼
外殼是用膠合板建造的。前門有一個(gè)透明的塑料面板,可以看到里面的食物。
![enclosure-front_MDhsTUoavQ.jpg?auto=compress%2Cformat&w=740&h=555&fit=max](https://hackster.imgix.net/uploads/attachments/1041640/enclosure-front_MDhsTUoavQ.jpg?auto=compress%2Cformat&w=740&h=555&fit=max)
最重要的方面是確定糖果塔的尺寸。我建造了一個(gè)巨型 Tic-Tac 盒尺寸的塔。這個(gè)方便的塑料盒有一個(gè)小活動(dòng)鉸鏈蓋,可以裝 M&Ms、Smarties 或類似的小糖果,完全取下蓋子后,您可以放入巧克力塊,如 Kinder 巧克力棒或任何適合的東西。糖果塔應(yīng)該與 Tic-Tac 盒子緊密貼合,各個(gè)方向的間距只有幾毫米。如果空間太多或太少,Tic-tacs 就會(huì)卡住,
在外殼上加一個(gè)蓋子或門是非常有用的,這樣你就可以進(jìn)行維護(hù)。維護(hù)可以包括潤(rùn)滑導(dǎo)軌。在我的版本中,無法通過打開蓋子取出糖果,因此沒有必要固定它。
一個(gè)很好的補(bǔ)充也是一個(gè)電源開關(guān)。您可以剪斷 USB 電纜并將一個(gè)小開關(guān)連接到正極。
網(wǎng)絡(luò)應(yīng)用
配套網(wǎng)絡(luò)應(yīng)用程序是用 PHP/Javascript 編寫的。實(shí)際上,我將此功能集成到一個(gè)更復(fù)雜的應(yīng)用程序中,我正在使用該應(yīng)用程序?qū)⑹澄镉涗浀?Fitbit 中,并連接到我的 DIY Healtzuilla 體重秤。
作為高級(jí)概述,該應(yīng)用程序使用通過 HTTP 分配的 LAN IP 與分配器通信。如果完成定義的挑戰(zhàn),它使用status
和dispense
端點(diǎn)提供糖果。為了檢查挑戰(zhàn)是否完成以及如何完成,它使用 OAuth2 身份驗(yàn)證連接到 Fitbit Web API 并檢索每日統(tǒng)計(jì)數(shù)據(jù)。它會(huì)跟蹤已經(jīng)分配(吃掉)的糖果,如果您贏得了新糖果,它會(huì)為您提供新糖果。它為不同的用戶保留單獨(dú)的統(tǒng)計(jì)信息。
從這個(gè)更大的代碼庫中提取與 Dulciurilla 相關(guān)的 PHP 源代碼會(huì)有點(diǎn)困難,但如果有足夠的請(qǐng)求,我可以做一些努力。
使用 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');
}
}
它可以像這樣實(shí)例化和使用:
// 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/
。所有響應(yīng)都是 json 格式。
成功的 POST/PATCH 操作返回 HTTP 狀態(tài)代碼 200 和如下所示的 JSON:
{"success": true}
失敗的請(qǐng)求返回一個(gè)非 200 的 HTTP 狀態(tài)代碼和一個(gè)帶有兩個(gè)鍵的 JSON 對(duì)象:
- 錯(cuò)誤:bool (始終為真)
- 消息:字符串(可選)
例子:
{"error": "true", "message": "Something went wrong"}
以下所有路徑均與秤 IP 地址相關(guān)。
分配器API
要求分發(fā)糖果
POST /api/dispenser/dispense
獲取設(shè)備狀態(tài)
GET /api/dispenser/status
設(shè)備可能處于以下狀態(tài)之一:
- 正在初始化(代碼 0)-尚未準(zhǔn)備好命令
- 空閑(代碼 1)-準(zhǔn)備好執(zhí)行命令
- 點(diǎn)膠(代碼 2)-在點(diǎn)膠過程中,此時(shí)無法處理新命令
- 錯(cuò)誤(代碼 3)- 如果托盤卡住,WiFi 未連接。無法處理任何命令。
示例響應(yīng):
{"statusCode": 2, "statusText": "Dispensing"}
維護(hù)API
向前移動(dòng)托盤
POST /api/dispenser/maintenance/tray/move-forward
向后移動(dòng)托盤
POST /api/dispenser/maintenance/tray/move-backwards
獲取托盤狀態(tài)
GET /api/dispenser/maintenance/tray/status
托盤可以處于以下狀態(tài)之一:
- 已停止(代碼 0)
- 向后移動(dòng)(代碼 1)
- 前進(jìn)(代碼 2)
示例響應(yīng):
{"status": 1, "statusText": "向后移動(dòng)", "operationTime": 360}
- 自動(dòng)洗手分配器開源設(shè)計(jì)
- 智能洗衣液分配器開源分享
- RFID藥丸分配器開源
- 自動(dòng)酒精分配器開源分享
- 自動(dòng)洗手分配器開源分享
- arduino廉價(jià)肥皂分配器
- 點(diǎn)心分配器開源分享
- PocketBeagle藥物分配器開源分享
- 多功能步進(jìn)電動(dòng)機(jī)環(huán)形分配器 10次下載
- OmateHDDVI高清視頻分配器 0次下載
- 使用tcl文件分配器件與管腳 0次下載
- 五路色差視音頻放大分配器
- 可調(diào)諧光功率分配器應(yīng)用及技術(shù)
- 微帶功率分配器設(shè)計(jì)方法
- 譯碼器 數(shù)據(jù)分配器
- 液壓分配器起什么作用的 1066次閱讀
- Linux內(nèi)核內(nèi)存管理之slab分配器 1307次閱讀
- Linux內(nèi)核內(nèi)存管理之ZONE內(nèi)存分配器 932次閱讀
- 如何制作低成本但全自動(dòng)的洗手液分配器電路 1693次閱讀
- 功率分配器的作用及技術(shù)指標(biāo) 1731次閱讀
- Linux內(nèi)核之塊分配器 1693次閱讀
- Linux內(nèi)核之伙伴分配器 1877次閱讀
- bootmem分配器使用的數(shù)據(jù)結(jié)構(gòu) 1471次閱讀
- 自制一個(gè)洗手液分配器 1835次閱讀
- 深入剖析SLUB分配器和SLAB分配器的區(qū)別 1119次閱讀
- linux內(nèi)存管理中的SLAB分配器詳解 2217次閱讀
- 分配器點(diǎn)涂技術(shù)的特點(diǎn)及方法介紹 4850次閱讀
- 功率分配器或合成器選擇的關(guān)鍵性能參數(shù)研究 2422次閱讀
- 基于DMA控制器的軟件環(huán)形脈沖分配器設(shè)計(jì) 4596次閱讀
- 功分器、分支器和分配器的區(qū)別 1.9w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論