文/張景虎
自行車也稱為腳踏車,最早出現于18世紀末的歐洲,是一項改變人類出行方式的偉大發明,純人力機械結構,具有環保、運動健身等諸多優點。隨著人們生活水平和健康意識的提高,自行車已成為世界各國喜愛的交通和健身工具。隨著科技的進步,自行車正從傳統的交通代步工具逐步向運動化、休閑娛樂化和智能化方向發展。為了實時監測自行車騎行狀態和記錄騎行相關信息,人們發明了自行車碼表。市場上流行的碼表通常只能顯示自行車速度、里程、日期時間等簡單信息,缺少對騎行者腳踏頻率的測量。在騎行過程中合理控制腳踏頻率對科學健康騎行運動非常重要,所以實現碼表對腳踏頻率的測量十分必要。本設計是在傳統碼表的基礎上增加了腳踏頻率的測量,并給出科學合理的踏頻范圍給用戶提供健身指導。
本設計以MSP430單片機為主控芯片,包括車速傳感器、踏頻傳感器、溫濕度傳感器、時鐘模塊、顯示報警模塊和按鍵控制組成,其整體結構如圖1所示。
本系統由電池供電,故對系統功耗大小要求較高。美國TI公司生產的MSP430系列單片機專門為低功耗應用場景設計,具有超低功耗,最小電流達微安級,具有處理能力強、運算速度快、超低功耗、片內資源豐富和開發環境靈活等諸多優點。考慮到成本因素,本設計采用MSP430F5529芯片。

圖1:系統框圖
常用的車速傳感器包括磁電式交流傳感器、光電式數字信號傳感器和霍爾式數字信號傳感器。磁電式交流傳感器是一個交流信號發生器,由于其結構復雜、成本較高,通常用在電控汽車等領域。光電式傳感器是利用半導體材料的光電效應產生數字信號,對工作環境潔凈度要求較高,不適合自行車等戶外運動。
將一通電導體置于一個與導體表面垂直的磁場中時,在導體上與電流流向垂直的兩端會產生微弱電動勢,此為霍爾效應,此效應是物理學家愛德文·霍爾在1879年研究載流導體在磁場中受力性質時發現的一種電磁現象。霍爾器件是一種基于霍爾效應的傳感器,是由霍爾效應材料與相關電路集成在一個芯片上面制成的敏感器件,具有體積小、結構牢固、低功耗、頻帶響應寬、非接觸、可靠性高等特點,故廣泛應用于非電量測量、自動控制和信息處理等方面。霍爾器件按輸出信號性質分為線性霍爾和開關霍爾。線性霍爾輸出模擬量,由一個簡單的霍爾片組成,需要將獲得的微弱霍爾電壓進行放大才能使用。開關霍爾輸出開關量,由霍爾元件和數字信號處理電路組成,不需要外加電路即可輸出數字開關量。按應用類型可分為直接應用和間接應用,直接應用就是檢測對象為磁場或表現磁特性,間接應用為需要檢測的信息裝載于磁場上面,可用于檢測非電磁物理量,如角度、位置、流量、速度、壓力、計數等,再將這些物理量轉化為電壓信號輸入系統進行處理。本設計采用的霍爾傳感器為開關霍爾,其引腳如圖2所示。當磁場靠近和遠離時會產生高低信號電平,由于產生的信號為數字信號,為后續單片機處理提供較大方便。通常將霍爾傳感器安裝在自行車前車輪輪叉處,在前輪輪條上固定一小磁塊,車輪每轉動一圈就感應一次,從而產生一個數字脈沖,將數字脈沖送給單片機進行處理。
腳踏頻率測量是本設計所增加的功能,一般的碼表都不帶該功能。踏頻傳感器的作用是測量自行車腳踏板的旋轉頻率,和車速傳感器工作原理完全一樣,也采用霍爾傳感器。將傳感器固定在腳踏輪軸附近的車架上,在腳踏板內側安裝一小磁塊,當旋轉腳踏板時確保能引起霍爾傳感器的磁感應產生一個數字脈沖,將信號送給單片機進行處理。在自行車運動中對踏頻的控制十分重要,低踏頻高速度會使騎行者腿部肌肉和膝關節受力非常大,長時間或經常性低踏頻高速度騎行容易引起大腿肌肉發達變粗,影響體型外觀,而且容易導致膝關節內半月板受傷,嚴重的可致殘。運動科學證明,在非專業的騎行運動中,為了保護腿部肌肉和膝關節不受損傷,一般正常巡航車速在20~30公里/小時的腳踏頻率控制在90轉/分鐘左右,專業運動員可達120轉/分鐘以上,在上坡路時應提前降檔,適當提高踏頻。
溫濕度傳感器用來測量當前騎行環境的溫度和濕度,以提醒騎行者判斷天氣狀況是否適合戶外騎行。本設計采用DHT11數字溫濕度傳感器,該傳感器是一款測量溫度和濕度相復合的傳感器,帶內部數據校準功能,具有接口簡單、體積小、超低功耗、成本低、性能穩定等特性。DHT11與單片機接口電路如圖3所示。
時鐘模塊采用DS1302時鐘芯片,它是由美國DALLAS公司推出的具有涓流充電能力的低功耗、高精度實時時鐘芯片,24小時誤差不超過2秒,采用串行數據傳輸,使用時需要外接一個32.768KHz的晶體振蕩器為其提供時鐘脈沖信號,其日期和時間的運行完全獨立于單片機,通過串行接口能直接設置和讀出秒、分、時、日、星期、月、年等數據信息。具有功耗低、精度高、成本低、接口簡單、完全獨立性等優點。
按鍵控制模塊設置三個按鍵,其中一個實現功能切換,包括:設置自行車前車輪周長、設置日期和時間、設置超速和踏頻報警閾值、顯示瞬時速度和瞬時踏頻、顯示單次平均車速和平均踏頻、顯示單次騎行里程和騎行時間、顯示當前溫度濕度和總里程。第二個按鍵和第三個按鍵為設置功能時的數值增加和減少控制鍵。
顯示模塊使用低功耗串行數據接口的字符型LCD1602液晶屏,能顯示速度、踏頻、里程、溫濕度、日期和時間等信息。為了騎行安全,當騎行瞬時速度和瞬時踏頻超過設置閾值時蜂鳴器發出提示報警聲音。
由于霍爾傳感器安裝在自行車前車輪輪叉上,車輪帶動小磁塊每旋轉一圈霍爾傳感器就會輸出一個脈沖,單片機只要測量出脈沖信號的頻率即可計算出當前車速。測量脈沖頻率通常有兩種方法:測頻法和測周法。
測頻法為在限定的時間內(如1秒)檢測脈沖的個數。設1秒內脈沖個數為N,前輪周長為L,當前車速為v,則:v=N×L(米/秒),再換算成公里/小時。
測周法是測量一個脈沖的周期。設脈沖周期為T,則當前車速v=L/T。為了提高測量精度,可測量連續多個脈沖周期時間之和再取平均的方法,本設計采用測周法,霍爾傳感器輸出的脈沖作為單片機的外部中斷觸發,在中斷服務程序中打開定時器計時,下一個脈沖到來后停止計時,定時時間即為脈沖周期。踏頻測量原理與測速原理相同。
系統上電后首先對所有模塊進行初始化,然后計算當前車速,當車速為零時為靜止狀態,轉入低功耗模式并統計靜止狀態持續的時間T,當T達到1小時后則判斷為一次騎行結束,當車速由零變為非零時,判斷為一次騎行開始,然后計算當前踏頻、讀取日期時間、溫濕度等相關信息,最后根據按鍵所設置的功能選擇顯示不同信息。整體流程圖如圖4所示。
所有功能都是通過按鍵K1進行切換,程序中設一計數變量key,每按一次按鍵K1,key變量加1,功能切換如下(所有功能均顯示當前日期和時間):
當key=0時為默認狀態,顯示當前瞬時車速和瞬時踏頻,判斷車速和踏頻是否超過閾值,一旦超過即報警提示。
當key=1時顯示平均車速和平均踏頻。
當key=2時顯示單次行駛里程和總里程。
當key=3時顯示當前溫度和濕度,并給出是否適合騎行的建議。
當key=4時設置日期和時間。
當key=5時設置車速和踏頻報警閾值。
當key=6時設置前輪周長值。
本文在傳統自行車碼表的基礎上增加了對騎行者腳踏頻率的測量和預警,能有效保護騎行者腿部肌肉和膝關節免受傷害,提高騎行安全性。為了節省電池電量,當車速為零(停車)時,將系統置入低功耗模式。實驗證明本文自行車碼表具有功能強、功耗低、成本低、工作穩定等特點,符合絕大多數騎行者的要求。

圖2:霍爾傳感器

圖3:DHT11與單片機接口電路

圖4:整體流程圖