構(gòu)建番茄鐘計(jì)時(shí)器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
我一直很推崇深度專注的工作方式,并努力踐行這一理念。但我也需要時(shí)不時(shí)地休息一下,這時(shí)我就需要用到番茄鐘計(jì)時(shí)器。市面上有很多適用于手機(jī)的應(yīng)用程序,但我更希望完全與手機(jī)斷開連接。我身邊有兩塊閑置的 M5 StickC Plus 設(shè)備,考慮到其尺寸和內(nèi)置電池,這似乎是一個(gè)不錯(cuò)的開始選擇。自從我開始去健身房鍛煉以保持健康以來,已經(jīng)有幾個(gè)月的時(shí)間了,而這個(gè)計(jì)時(shí)器在這里也會(huì)非常有用。
M5 StickC Plus2
M5StickC Plus2 是一系列小巧的 ESP32 設(shè)備中的一款,其實(shí)際用途遠(yuǎn)超其外觀所呈現(xiàn)的那樣。它體積小巧,便于攜帶,還配備了漂亮的顯示屏、按鈕、蜂鳴器以及各種傳感器,非常適合將其改造成番茄鐘計(jì)時(shí)器。非常適合快速原型制作,并在將其開發(fā)成更復(fù)雜的產(chǎn)品之前進(jìn)行功能驗(yàn)證。
要求/規(guī)定
?它應(yīng)該具備多種不同的計(jì)時(shí)程序(深度專注模式、短時(shí)間專注模式、平板支撐模式、高強(qiáng)度間歇訓(xùn)練模式……)(等等)
?每個(gè)程序都可以包含步驟,而每個(gè)步驟則由步驟名稱和以秒為單位的時(shí)間來定義,此外整個(gè)程序還可以設(shè)置正數(shù)的循環(huán)次數(shù)或者無限循環(huán)。
?在滾動(dòng)瀏覽可用步驟的過程中,我應(yīng)該能夠看到菜單屏幕上的前兩步內(nèi)容。
?計(jì)時(shí)器應(yīng)顯示倒計(jì)時(shí)、展示接下來的步驟以及循環(huán)次數(shù)。
?我應(yīng)該能夠以直觀的方式實(shí)現(xiàn)暫停、開始、跳過步驟以及退出操作。
?步驟完成的音頻反饋。
?節(jié)能及基于慣性測(cè)量單元的功能方面的內(nèi)容,我將在后續(xù)的項(xiàng)目中進(jìn)行探討。
按鈕命名與使用方法
我將采用 M5 便攜式設(shè)備的官方命名規(guī)則
按鈕控制:
?菜單模式:A=切換至下一個(gè)節(jié)目,A Long=選擇,B=切換至上一個(gè)節(jié)目
?計(jì)時(shí)器運(yùn)行狀態(tài):A 代表暫停,A Long 代表跳過步驟,B Long 代表退出對(duì)話框。
?計(jì)時(shí)器暫停:A=繼續(xù),A(長(zhǎng)按)=跳過步驟,B(長(zhǎng)按)=退出對(duì)話框
?退出對(duì)話框:A=確認(rèn)退出,B=取消
編程
通常我更傾向于使用 Platform IO,但由于 M5Stick 的電路板定義尚未公布,所以我不得不使用 Arduino IDE。
我確保了編程方式能夠方便且直觀地添加更多的定時(shí)程序。還為屏幕的顯示設(shè)計(jì)了獨(dú)立的功能。經(jīng)過幾個(gè)小時(shí)的調(diào)試,我終于完成了一個(gè)能正常運(yùn)行的版本。但隨后我發(fā)現(xiàn),每當(dāng)定時(shí)器發(fā)生變化(每秒一次)時(shí),整個(gè)屏幕都會(huì)閃爍。這非常令人分心。疲憊不堪且急于完成這個(gè)項(xiàng)目,我要求進(jìn)行修復(fù)并重新優(yōu)化代碼。最終效果還不錯(cuò),克勞德甚至還對(duì)用戶界面做了些許改進(jìn),但我還是需要做一些手動(dòng)調(diào)整以確保其正常使用。
屏幕
菜單界面 - 展示了前兩步內(nèi)容,包括程序總耗時(shí)以及循環(huán)次數(shù)。
計(jì)時(shí)器屏幕會(huì)顯示當(dāng)前步驟、暫停/運(yùn)行狀態(tài)、倒計(jì)時(shí)時(shí)間、進(jìn)度條、下一步操作、當(dāng)前循環(huán)次數(shù)以及總循環(huán)次數(shù)。
退出畫面
總結(jié)性思考
我已經(jīng)使用了這個(gè)產(chǎn)品三天了,它很好地滿足了我的需求,盡管考慮到這是一款老舊設(shè)備,電池續(xù)航能力并不理想,因?yàn)闆]有編寫節(jié)能代碼,而且更重要的是它使用的是 ESP32 單元。但這是我對(duì)將其投入實(shí)際使用的一次初步驗(yàn)證,并且我還計(jì)劃在此基礎(chǔ)上進(jìn)行一些改進(jìn),比如實(shí)現(xiàn)節(jié)能功能以及基于慣性測(cè)量單元的控制。
本文編譯自hackster.io





