找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3636|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)設(shè)計(jì)的智能防疲勞鼠標(biāo)設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
 摘要:隨著互聯(lián)網(wǎng)時(shí)代的發(fā)展, 人們對(duì)于電腦的依賴(lài)越來(lái)越強(qiáng), 電腦在造福我們?nèi)祟?lèi)的同時(shí)對(duì)我們?nèi)梭w的健康也造成了一定危害, 過(guò)度疲勞、猝死、電腦職業(yè)病等層出不窮, 基于此現(xiàn)狀我們研制了一款智能防疲勞鼠標(biāo), 旨在將心率傳感器安放在合適位置使得人在接觸鼠標(biāo)的同時(shí)也會(huì)將人的健康狀況反映在電腦上位機(jī), 使得電腦使用者對(duì)自己的健康狀況有所了解。
 
  
  1、智能防疲勞鼠標(biāo)工作原理
  
  我們基于STC12C5A60S2及STC89C52RC兩款單片機(jī)設(shè)計(jì)出可以監(jiān)測(cè)人體心率值并做出預(yù)警的防疲勞鼠標(biāo), 其中STC12C5A60S2單片機(jī)負(fù)責(zé)將pulse sensor心率傳感器采集到的數(shù)據(jù)處理后由NRF24L01模塊傳至電腦上位機(jī), STC89C52RC單片機(jī)用來(lái)實(shí)現(xiàn)鼠標(biāo)功能。此設(shè)計(jì)由pulse sensor心率傳感器實(shí)時(shí)監(jiān)測(cè)人體脈搏, 將監(jiān)測(cè)值交給STC12C5A60S2單片機(jī)分析, 并通過(guò)NRF24L01通信向電腦上位機(jī)傳遞心率值, 由電腦上位機(jī)軟件進(jìn)行數(shù)據(jù)處理, 以小窗口形式顯示, 如果脈搏值過(guò)高則通過(guò)軟件指示燈進(jìn)行提醒, 而STC89C52RC用來(lái)實(shí)現(xiàn)鼠標(biāo)的滾輪、左鍵、右鍵、光標(biāo)的移動(dòng)等功能。
  
  2、鼠標(biāo)模塊介紹
  
  2.1 主控制器
  
  考慮到成本以及裝置的運(yùn)行穩(wěn)定性, 我們采用我們采用STC89C52RC及STC12C5A60S2兩款控制芯片, 其中增強(qiáng)型STC12C5A60S2單片機(jī)擁有44個(gè)引腳。由于采用其增強(qiáng)型, 提高了運(yùn)算速度, 是高速、低功耗、抗干擾強(qiáng)的新一代8051單片機(jī), STC89C52RC擁有40個(gè)引腳, 使用經(jīng)典的MCS-51內(nèi)核, 但做了許多改進(jìn), 擁有靈巧的8位CPU和在系統(tǒng)可編程Flash, 相比普通的8051單片機(jī)其工作頻率顯著提高, 有利于鼠標(biāo)控制。
  
  2.2 pulse sensor脈搏傳感器
  
  pulse sensor是一款用于脈搏測(cè)量的光電反射式模擬傳感器, 傳感器接口一共有3個(gè), 分別為脈搏信號(hào)輸出, 5v或3.3v電源輸入以及接地。它是通過(guò)檢測(cè)透過(guò)手指的光強(qiáng)可以間接測(cè)量到人體的脈搏信號(hào)。其中STC12單片機(jī)的P1.0作為模擬輸入端口, 將采集到的心率值傳給單片機(jī)處理。
  
  2.3 PDIUSBD12芯片
  
  PDIUSBD12是一款性能較優(yōu)的USB器件, 它符合USB1.1協(xié)議規(guī)范, 與任何微控制器、微處理器有高達(dá)2MB/s的并行接口, 主端口有雙緩存配置, 增加吞吐量, 容易實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸, 芯片原理圖見(jiàn)下圖1.
  
  
  
  3、程序與上位機(jī)設(shè)計(jì)
  
  3.1 程序設(shè)計(jì)
  
  一個(gè)51單片機(jī)不能同時(shí)采集與處理心率傳感器數(shù)據(jù)并實(shí)現(xiàn)鼠標(biāo)功能, 會(huì)產(chǎn)生時(shí)序沖突, 所以用了STC12單片機(jī)來(lái)單獨(dú)采集處理心率數(shù)據(jù)并上傳給電腦, 即心率部分首先采樣, 主要通過(guò)ADC單元來(lái)采樣傳感器輸出的脈搏模擬信號(hào), 在這里調(diào)整采樣頻率, 即每2MS中斷一次, 讀取AD值;為了避免干擾, 在程序中每隔0.6個(gè)IBI (兩次心跳時(shí)間差) 值再跟蹤脈搏的上升, 之后根據(jù)相鄰兩個(gè)脈搏波的上升段中間值之差來(lái)確定IBI數(shù)值。
  
  STC89C52單片機(jī)控制的鼠標(biāo)部分則通過(guò)定義Buf[]數(shù)組存儲(chǔ)X軸、Y軸以及按鍵信息, 并將信息通過(guò)USB協(xié)議傳至電腦, 控制電腦光標(biāo)移動(dòng)。滾輪上連到單片機(jī)的P2.3口, 滾輪下連至單片機(jī)的P2.2口, 滾輪右連至單片機(jī)的P2.0口, 滾輪左連至單片機(jī)的P2.1口, 由單片機(jī)查詢(xún)按鍵情況, 微控制器的P0口連接USB接口芯片的數(shù)據(jù)引腳口D0至D7, 實(shí)現(xiàn)數(shù)據(jù)的在微控制器和USB接口芯片間的交換。微控制器的P3.5腳接USB接口芯片的A0腳, 實(shí)現(xiàn)對(duì)數(shù)據(jù)或地址寫(xiě)入, USB接口芯片的INT_N腳, 與微控制器的P2.7腳相接, 實(shí)現(xiàn)對(duì)中斷事件的捕捉。USB接口芯片的差分?jǐn)?shù)據(jù)線D+, D-通過(guò)標(biāo)準(zhǔn)的USB插頭與主機(jī)即PC機(jī)相連, 實(shí)現(xiàn)數(shù)據(jù)在主機(jī)和USB接口芯片間的傳遞。
  
  3.2 上位機(jī)設(shè)計(jì)
  
  我們用VB開(kāi)發(fā)出一款心率監(jiān)測(cè)上位機(jī)軟件, 窗體工具欄由串口號(hào)、運(yùn)行以及退出組成, 可供選擇的串口號(hào)從COM1~COM10, 設(shè)置上位機(jī)正常心率范圍從60到100次/分, 當(dāng)心率超出此范圍時(shí)上位機(jī)軟件指示燈由綠變紅。當(dāng)然, 實(shí)際中可根據(jù)需要調(diào)節(jié)心率正常值范圍! 
 
  4、結(jié)束語(yǔ)
  
  綜合考慮到成本以及產(chǎn)品性能質(zhì)量的要求, 我們將會(huì)進(jìn)一步采用一個(gè)32單片機(jī)取代兩個(gè)51單片機(jī), 這樣能使設(shè)計(jì)更加集成化、小型化, 除此之外, 在上位機(jī)的設(shè)計(jì)上我們還將更多的考慮設(shè)計(jì)人性化界面進(jìn)而達(dá)到鼠標(biāo)貼合用戶需要層面。
  

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表