基于AVR單片機(jī)的智能跑步機(jī)控制器設(shè)計(jì)
1 引言
電動跑步機(jī)是目前健身器材中的主流產(chǎn)品,它是通過電機(jī)帶動跑步帶使人以不同的速度被動地跑或走,在人體用力方面,比在地面上跑、走省去了一個(gè)蹬伸動作,可使人比在地面運(yùn)動消耗更多能量。但由于其功能比較單一,缺乏娛樂性和交互性,長時(shí)間鍛煉會使人感到枯燥乏味。在全社會崇尚健身就是生活質(zhì)量的今天,傳統(tǒng)電動跑步機(jī)這種單調(diào)重復(fù)運(yùn)動已難以滿足人們對健身品質(zhì)的要求,而具有虛擬現(xiàn)實(shí)功能的智能跑步機(jī),以計(jì)算機(jī)虛擬的模擬環(huán)境代替現(xiàn)實(shí)世界的真實(shí)環(huán)境,給人身臨其境的沉浸感,增加了健身的樂趣,已成為目前的研究熱點(diǎn)。本文將傳統(tǒng)電動跑步機(jī)與虛擬現(xiàn)實(shí)技術(shù)相結(jié)合,研究并設(shè)計(jì)了具備傳統(tǒng)電動跑步機(jī)各種健身模式且具有虛擬場景漫游功能的智能電動跑步機(jī)控制系統(tǒng)。系統(tǒng)通過上下位機(jī)的串行通信進(jìn)行各種參數(shù)的實(shí)時(shí)傳遞,TFT液晶顯示器顯示友好的操作界面以及實(shí)時(shí)變化的運(yùn)動和體能參數(shù),采用觸摸屏與薄膜按鍵結(jié)合的操作方式增加操作的靈活性,是虛擬現(xiàn)實(shí)、人機(jī)交互在健身器材方面應(yīng)用的一個(gè)典型例子。
采用ATMEL公司的ATmega128作為跑步機(jī)的主控芯片,它具有先進(jìn)的RISC架構(gòu),內(nèi)部集成較大容量存儲器,有豐富的管腳資源,驅(qū)動能力強(qiáng),具有在系統(tǒng)編程功能,給控制系統(tǒng)的設(shè)計(jì)及程序的升級和維護(hù)提供了極大方便。
2 跑步機(jī)控制系統(tǒng)的結(jié)構(gòu)及功能
2.1 系統(tǒng)結(jié)構(gòu)
控制系統(tǒng)由上位機(jī)和下位機(jī)兩大部分組成。上位機(jī)采用普通計(jì)算機(jī),主要負(fù)責(zé)觸摸屏控制、操作界面顯示、多媒體播放和虛擬場景漫游。下位機(jī)以ATmega128為核心控制器,配合相應(yīng)的外圍電路,通過采集鍵盤輸入、電機(jī)反饋、接收上位機(jī)信息等對跑步機(jī)進(jìn)行直接控制。上下位機(jī)通過串行通信總線RS232進(jìn)行通信。跑步機(jī)控制系統(tǒng)總體設(shè)計(jì)框圖如圖1所示,虛線框內(nèi)是下位機(jī)控制器設(shè)計(jì)。
圖1 跑步機(jī)控制系統(tǒng)框圖
2.2 系統(tǒng)功能
下位機(jī)控制器通過變頻器控制電機(jī),增大了速度調(diào)節(jié)范圍并且實(shí)現(xiàn)無級變速,速度調(diào)節(jié)范圍為1.0~20.0km/h,坡度調(diào)節(jié)范圍為-5%~15%。配有心率信號接收器,可以通過佩戴胸帶或者手握跑步機(jī)兩側(cè)的手柄測試心率。有多種健身方式可供選擇,包括普通健身、程序健身、模式健身、虛擬健身,并且具備多媒體播放功能。液晶顯示器顯示各種功能按鍵以及數(shù)字鍵盤,并配有功能提示,用戶可以在觸摸屏上操作,也可以直接操作跑步機(jī)面板上的薄膜按鍵。各種運(yùn)動參數(shù)在液晶屏上實(shí)時(shí)顯示。在虛擬現(xiàn)實(shí)健身模式下,跑步機(jī)運(yùn)轉(zhuǎn)速度驅(qū)動虛擬場景的變換和信息的更新,場景路面坡度變化控制跑步機(jī)升降,實(shí)現(xiàn)跑步臺與虛擬場景路面狀況同步。系統(tǒng)配有緊急停止開關(guān),跑步機(jī)可迅速停止運(yùn)轉(zhuǎn)已確保安全。
3 跑步機(jī)控制器硬件設(shè)計(jì)
3.1 控制芯片
控制芯片采用ATMEL公司ATmega128單片機(jī),它是基于AVR內(nèi)核的低功耗CMOS8位單片機(jī),單時(shí)鐘周期指令,可達(dá)到接近1MIPS/MHz的性能,具有128KB在系統(tǒng)編程/應(yīng)用程序(ISP/IAP)Flash程序存儲器、4KB E2PROM、4KB SRAM、32個(gè)統(tǒng)一工作寄存器、53個(gè)通用I/O口、4個(gè)帶有比較模式靈活的定時(shí)器/計(jì)數(shù)器、2個(gè)可編程的USART接口、可編程帶內(nèi)部振蕩器的看門狗定時(shí)器等。利用它在系統(tǒng)編程功能可以方便的進(jìn)行程序的修改調(diào)試,參數(shù)可保存在內(nèi)置E2PROM中,定時(shí)器/計(jì)數(shù)器的相位頻率可調(diào)PWM功能尤其適用于馬達(dá)控制,內(nèi)置看門狗定時(shí)器可以在程序異常時(shí)及時(shí)復(fù)位。
3.2 電壓轉(zhuǎn)換及掉電預(yù)檢測電路
控制器電路板供電電壓為12V,經(jīng)MC7805轉(zhuǎn)換為5V供單片機(jī)使用。電壓轉(zhuǎn)換及掉電預(yù)檢測電路掉電預(yù)檢測電路原理圖如圖2所示。
圖2 電壓轉(zhuǎn)換及掉電檢測電路
在系統(tǒng)意外斷電時(shí)記錄跑步臺的坡度,保證再次上電時(shí)處于水平位置。采用ATmega128內(nèi)部的模擬比較器,注意選擇合適的電容和參考電壓,以保證足夠的參數(shù)寫入時(shí)間。當(dāng)模擬輸入端AIN1的電壓低于AIN0的電壓2.5V時(shí),即輸入電壓降到7.5V以下時(shí),模擬比較器輸出ACO置1,觸發(fā)中斷,此時(shí)跑步臺的坡度值被寫入單片機(jī)內(nèi)部的E2PROM中。
3.3 PWM輸出電路
利用ATmega128內(nèi)部16位定時(shí)器/計(jì)數(shù)器應(yīng)用中的相位頻率可調(diào)PWM模式,產(chǎn)生50Hz的PWM波形,經(jīng)過濾波和電平轉(zhuǎn)換后輸出到變頻器。改變比較寄存器的數(shù)值可以得到不同的脈寬,實(shí)現(xiàn)對跑步機(jī)速度的控制。
3.4 開關(guān)量輸入/輸出電路
三路帶光電隔離的開關(guān)量輸入電路采集健身者在跑步臺上的位置信號,并以電平形式輸入單片機(jī),據(jù)此判斷健身者離控制臺的遠(yuǎn)近實(shí)現(xiàn)自動調(diào)速。六路開關(guān)量輸出電路中,四路通過繼電器控制電機(jī)的升降來改變坡度,兩路控制橫流風(fēng)扇的風(fēng)量大小。
3.5 編碼器信號輸入電路
將轉(zhuǎn)速傳感器、心率接收裝置輸出的編碼器脈沖信號經(jīng)過電容濾波、74HC14整形,輸入到單片機(jī)外部中斷接口。
3.6 串口通信電路
單片機(jī)與PC機(jī)的通信采用RS-232C標(biāo)準(zhǔn),此標(biāo)準(zhǔn)與單片機(jī)的TTL電平不兼容,采用MAXIM公司的MAX202進(jìn)行電平轉(zhuǎn)換,外部接0.1uF電容。單片機(jī)串行口的TXD、RXD 和GND經(jīng)電平轉(zhuǎn)換分別與計(jì)算機(jī)的RXD、TXD和SG相連,進(jìn)行全雙工通信。
3.7 矩陣式鍵盤電路
要實(shí)現(xiàn)開始、停止、暫停、速度加減、坡度加減、風(fēng)扇控制、速度和坡度直選等功能需要大量按鍵,因此采用4×8矩陣式鍵盤。由于跑步過程中的摩擦?xí)a(chǎn)生大量靜電,健身者操作鍵盤時(shí)靜電可能對電路造成破壞,除了在觸摸鍵上加防護(hù)措施以外,在電路中加入TVS (瞬態(tài)電壓抑制器) 二極管,由于TVS二極管的結(jié)面積較大,使得它具有泄放瞬態(tài)大電流的優(yōu)點(diǎn),具有理想的保護(hù)作用。將TVS二極管正極接地,當(dāng)瞬態(tài)電壓超過電路的正常工作電壓時(shí),二極管發(fā)生雪崩,為瞬態(tài)電流提供通路,使內(nèi)部電路免遭超額電壓擊穿或超額電流過熱燒毀。
4 控制器軟件設(shè)計(jì)
考慮到系統(tǒng)可移植性及便于維護(hù)和擴(kuò)充,系統(tǒng)軟件采用C語言編寫。ImageCraft 的ICCAVR是一種使用符合ANSI標(biāo)準(zhǔn)的C語言來開發(fā)微控制器(MCU)程序的工具,它是一個(gè)綜合了編輯器和工程管理器的集成開發(fā)環(huán)境(IDE)。跑步機(jī)控制程序的編輯、編譯均在ICCAVR中完成。
控制系統(tǒng)軟件采用模塊化設(shè)計(jì)思想,主要包括主程序、鍵盤處理程序、中斷服務(wù)程序和通信程序。主程序邏輯為:控制器上電后首先讀取E2PROM中保存的速度系數(shù)和坡度參數(shù),實(shí)現(xiàn)開機(jī)復(fù)位和參數(shù)的初始化,然后進(jìn)入主循環(huán)。
鍵盤處理程序采用定時(shí)掃描方法,每隔300ms使四行輸出均為低電平,判斷是否有鍵按下,若有,再將四行依次輸出為低電平,同時(shí)讀入列值保存到一數(shù)組中,用switch-case語句進(jìn)行按鍵處理。速度和坡度加、減鍵若被檢測到持續(xù)按下,則處理多次,實(shí)現(xiàn)速度和坡度的連續(xù)加減。有些功能鍵只處理一次就被鎖定,例如開始鍵被檢測到按下后置一個(gè)標(biāo)志,直到該標(biāo)志被清除再次按下才有效。將幾個(gè)按鍵組合在一起可以實(shí)現(xiàn)特殊功能,例如速度和坡度的自動校正。
中斷服務(wù)程序包括內(nèi)部定時(shí)器中斷、模擬比較器中斷和外部中斷。內(nèi)部定時(shí)器中斷服務(wù)程序主要負(fù)責(zé)健身時(shí)間計(jì)算、倒數(shù)計(jì)時(shí)、鍵盤的定時(shí)掃描、通信數(shù)據(jù)的定時(shí)發(fā)送等。模擬比較器觸發(fā)中斷后,關(guān)閉所有其它中斷,將重要參數(shù)寫入E2PROM中。外部中斷服務(wù)程序主要負(fù)責(zé)脈沖信號計(jì)數(shù)和緊急停止。緊急停止接到最高優(yōu)先級的外中斷上,中斷觸發(fā)后迅速切斷PWM輸出。
實(shí)時(shí)顯示的運(yùn)動參數(shù)、來自計(jì)算機(jī)的命令等都是依靠全雙工串口通信傳遞。通信協(xié)議制定也采用模塊化的思想,不同的功能模塊有各自的標(biāo)志符號。通信協(xié)議定義如表1所示。按下電源鍵后下位機(jī)向上位機(jī)發(fā)出握手信息,上位機(jī)檢驗(yàn)這一信息符合協(xié)議則向下位機(jī)反饋一條信息,建立通信。上位機(jī)通過串口獲得跑步機(jī)的各種數(shù)據(jù),用以更新虛擬場景畫面與操作界面的信息和參數(shù)顯示,并根據(jù)場景路面坡度變化通過串口通信控制跑步機(jī)的升降。主程序和通信程序流程圖如圖3、圖4所示。
圖3 主程序流程圖
圖4 通信子程序流程圖
表1 通信協(xié)議定義
起始符 | 字節(jié)數(shù) | 標(biāo)志符 | 數(shù)據(jù) | 校驗(yàn)碼 | 結(jié)束符 |
@ | 1個(gè)字節(jié) | 1個(gè)字節(jié) | 若干字節(jié) | 1個(gè)字節(jié) | 1個(gè)字節(jié) |
5 結(jié)論
本文介紹了采用ATmgega128單片機(jī)作為主控芯片的智能電動跑步機(jī)控制器設(shè)計(jì),在實(shí)現(xiàn)跑步機(jī)各種功能的基礎(chǔ)上很好地保證了運(yùn)行的穩(wěn)定性。針對采用上下位機(jī)控制的特點(diǎn)制定了其專用串行通信協(xié)議,確??刂频膶?shí)時(shí)有效性。通過串行通信控制下位機(jī)實(shí)現(xiàn)了虛擬現(xiàn)實(shí)健身模式,避免了室內(nèi)運(yùn)動的單調(diào)乏味,增加了健身的樂趣,如配置立體顯示設(shè)備更能增強(qiáng)沉浸感。在此基礎(chǔ)上,可研究將上下位機(jī)整合,采用SOPC技術(shù)自行設(shè)計(jì)整個(gè)控制系統(tǒng)的板卡,這將大大降低成本并且使整機(jī)的穩(wěn)定性有進(jìn)一步的提高。
本文作者創(chuàng)新點(diǎn):通過制定專用串行通信協(xié)議進(jìn)行上下位機(jī)互動,實(shí)現(xiàn)了虛擬現(xiàn)實(shí)健身模式,增強(qiáng)了室內(nèi)健身的樂趣。
參考文獻(xiàn)
[1] Atmel Corporation. ATmega128 Datasheet[EB/OL]. http://www.atmel.com
[2] 馬 潮. 高檔8位單片機(jī)ATmega128原理與開發(fā)應(yīng)用指南(上) [M]. 北京:北京航空航天大學(xué)出版社,2004
[3] 譚浩強(qiáng). C程序設(shè)計(jì)(第二版)[M]. 北京:清華大學(xué)出版社,2000
[4] 潘新民,王燕芳. 微型計(jì)算器控制技術(shù)[M]. 北京:電子工業(yè)出版社,2004
[5] 洪家平. WINDOWS環(huán)境下PC機(jī)與單片機(jī)的通信[J]. 微計(jì)算機(jī)信息,2004年第3期,143-145.
pwm相關(guān)文章:pwm是什么
評論