作者部落格主頁:
https://blog.csdn.net/weixin_44578655
該檔案及相關資料系博主參加2020年TI杯大學生電子設計大賽的作品,關聯部落格:
https://blog.csdn.net/weixin_44578655/article/details/109020022
資料連結(百度網路硬碟):
連結:https://pan.baidu.com/s/1WnXZ1bDB-cs1LRwfiP6rYg
提取碼:iqek
目錄:
PCB是使用立創EDA繪製的,資料夾中的AD檔案是從立創EDA匯出的
匯出後邊框和字元可能會有點問題。
推薦使用立創EDA!
由於編輯檔案時,立創EDA的工程還未釋出:
可以過段時間檢視我的LCEDA開源首頁:
https://oshwhub.com/doee
板子三部分通過跳線帽連線作為一體使用,也可以掰開單獨使用.
微控制器的晶振使用的是8M有源晶振,另外晶振可以不用焊,程式預設使用的是內部晶振。
把LMT70的焊盤擴大了,好焊一些,但不知道測溫手觸控到焊盤會不會有影響。
為了元器件佈局緊湊些,沒有留元件字元標號。
伺服器端編譯環境為VS2019,語言為C#
如果是初次接觸上位機編寫,給大家推薦一個基礎入門的上位機設計教學:
https://www.cnblogs.com/liaocheng/p/9144317.html
伺服器端工程的壓縮包包含多個工程:
最終使用的是上圖箭頭指向的版本。
在上圖的目錄下,有工程生成的exe檔案,可以直接執行
由於時間關係,該版本不完善,切換wifi和藍芽模式時,需要關掉重新開啟再切換。
藍芽對映出的串列埠預設波特率為115200
windows下如何更改藍芽虛擬串列埠的引數,詳見:
https://blog.csdn.net/px_528/article/details/70782059
TCP模式下的IP地址需要在原始碼中更改,所以如果不打算參考原始碼的話,這個伺服器端的軟體是沒法直接使用的(比賽時間緊張,很多細節無法完善)
裝置端的原始碼我儘量註釋,程式碼結構儘量弄清晰一些,也就比賽完這段時間有心情去整理了。
裝置端原始碼檔案結構
這是在報告裡寫的,為了高大上一點,就稱作「任務」了,不要被誤導,並不是多工!
系統所有模組均執行在main函數的大回圈中,通過軟體定時,實現各個模組的定時迴圈執行。
軟體定時方法,以按鍵掃描舉例:
if(sys_tick - key_tick >= 10)
{
key_tick = sys_tick;
//按鍵掃描、處理等等
}
其中sys_tick是全域性變數,每1ms會自增1(通過1ms的定時器中斷精確計數),用於系統執行計時(一般稱為系統時基),有了它可以方便實現軟體定時。
上述程式碼實現的效果是,每10ms,if判斷就成立一次,放在大回圈裡就可以實現10ms的定時,每10ms掃描一次,可以免去按鍵消抖,同時降低系統執行開銷。
每個模組的工作基本都採用這種方式實現軟體定時執行,方便設定定時週期。
連線線序
VIN—3.3V~5V
3V3—3.3V
GND—GND
DRDY—PA8
CS—PB12
CLK—PB13
DOUT—PB14
SDIN—PB15
其中「3V3」引腳專門為ADS1292模組的數位部分供電,減少對模擬部分的干擾。
提供兩種選擇:
使用外部的3.3V,也就是3V3引腳要接外部的3.3V,同時按圖示使用跳線帽將兩框選引腳短接。
使用系統內部穩壓出來的3.3V,這時候3V3引腳可以不接,需要按下圖接跳線帽。
心電電極貼片的位置
購買下圖這種導聯線的話:
根據顏色,按下圖方式連線,測出的心電波形才是正確的。
陀螺儀模組部分我使用的是一個冷門的模組,這個應用只用到pitch軸,因此使用普通的MPU6050就可以。
陀螺儀模組綁在腿上,實現步數測量,詳細內容參見設計報告。
藍芽模組使用HC05
由於系統最初是使用藍芽上位機的,因此工程中保留了藍芽資料傳送部分。
配套的藍芽偵錯上位機為:
相當好用的一款上位機,在應用市場可以搜尋到,介面控制元件可以二次開發,這次電賽有好多做A題的組別都是直接使用的這款上位機,可以說這個APP作者拯救了一大波參加電賽的。
LMT70可以通過IO口供電,這是手冊推薦的。
使用stm32自帶的12位元ADC,加入均值濾波後資料挺穩的。
模組的具體型號為esp8266-01s,初始化部分主要為AT指令設定wifi和伺服器等。
esp8266是後期改的,由於板子上原來沒有留介面,就只能用藍芽的介面了,兩個模組的供電電壓不太一樣(藍芽:3.6-6,esp8266:3.3V),因此加了一塊洞洞轉接板,板上有穩壓模組(不能用AMS1117,由於系統供電是鋰電池3.7-4.2V,而1117要求壓差比較大,必須使用低壓差LDO才可以正常輸出3.3V,這裡使用的是TPS73233DBVR)
連結:
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-22419023648.11.103e497cFxRZgy&id=526022333035
選「老款不帶片選CS」
這種SPI驅動的LCD重新整理速度還可以,至少心電波形的實時顯示還是可以滿足的。
店家提供stm32部分的原始碼,設計PCB的時候也是按照螢幕例程中的引腳定義來的(使用硬體SPI)。
外殼使用solidworks繪製,材質:亞克力、銅柱,裝置:雕刻機、手。
最後一天時間比較急,手殘把螢幕的安裝孔畫錯了,也能湊合裝。
設計報告我們抽出整整一天來寫的,真實反映了作品內容,報告上的相關方案也是實際採用的方案。
word版本的設計報告包含了Fir濾波器理論計算部分(pdf版本是最終提交的版本不含這部分)。隊友這塊的理論分析寫的超認真,但由於最後超頁數了,提交之前被我一刀砍了。
ADS1292R:30rmb左右一片
stm32f103c8t6: 10rmb
LMT70:10(不好焊) (自己做就別用這個玩意兒啦,換成NTC也可以)
其他元件<30rmb
螢幕:加郵費46
鋰電池+充電模組等:< 15rmb (3.7V小電池就行)
藍芽/WIFI模組:<15rmb
陀螺儀模組:如果使用MPU6050的話,5rmb就可以買到
導聯線:加郵費30
心電電極:20
總共200rmb左右,相比電賽期間某寶動輒300+的單獨心電模組真是智者見智了。