“復古手環”是開源Arduino可穿戴設備的第二版作品。以我來說,這不該稱為“智能手環”,這僅有簡單功能罷了。實際上,還不如稱之為活動跟蹤記錄儀……只是“智能手環”這個詞對我來說更親切些。智能手環的重要特征是他們能通過藍牙和移動設備相連,記錄用戶工作日程。
Arduino實現的復古手環只有單一功能,即通過加速計收集數據,然后發到移動設備上,移動設備根據數據計算用戶消耗熱量和走動步數。功能很簡單,也就意味著這個裝置結構上比之前的“復古手表”簡單,那么根據你的個人品味制作也就變得容易了。
安卓應用使用Arduino復古手環反饋信息計算行走步數,而應用的算法并不復雜。如果你對算法這一塊頗有心得,用你自己的算法替代亦可。手機應用儲存消耗熱量數據,所以你能得到每月/每日/每小時圖表報告。不過要提醒的是,Arduino復古手環的內存很小,不能在自身儲存信息,它只能在連接到移動設備上工作,也就是說你不能單靠Arduino復古手環收集數據。我認為,這個問題在Arduino改進后將得到很好解決。
第一步:工作機制
復古手環由Arduino部分和一個安卓應用組成。
Arduino部分分為4個主要部分——Arduino板、加速計(MPU-6050)、藍牙模塊(HC-06)、聚合物鋰電池(充電板可選)。
安卓應用也包括4個部分——安卓界面、藍牙管理、算法部分、后臺服務。
如果Arduino電源開啟,并和復古手環應用配對完畢,那么主板將每秒讀取加速計數據20次。接著,它將數據每秒發送一次到移動設備上。加速計測量x軸、y軸和z軸數據(20次x3軸),發送它們到移動設備上。安卓應用收到兩秒之間的數據進行比對,找出用戶在步伐加速上的周期。在用戶步伐加速時,就計算為用戶踏出了一步。接著,安卓應用根據用戶的體重和步數計算消耗的熱量,并按月、日和小時進行疊加。
第二步:準備工作
這里用了下列零件來制作: – Arduino Pro mini 3.3伏 – 加速計/陀螺儀傳感器(MPU-6050) – 藍牙模塊(HC-06) – USB異步收發機轉接器(FTDI)
手環部分(硬件)
Arduino
我用了“復古手表”上相同的Arduino板,Arduino Pro Mini 3.3伏(ATmega328)。選擇它的原因是它能在鋰聚合物電池3.7伏電壓下工作以及它的尺寸。如果你不介意模塊和電池的尺寸,而僅僅拿來測試,那用Arduino Nano板也未嘗不可(容易實現和測試)。Arduino Pro Mini以8兆赫頻率工作,在5伏時則是16兆赫,但8兆赫的頻率就足夠了。總的來說,你只需要準備Arduino Pro Mini 3.3伏板和USB異步收發機轉接器模塊。
藍牙
大部分你能入手的藍牙模塊都是HC-06模塊,而且有控制界面板。界面板上有重設按鈕、工作狀態LED,支持3.3伏或5伏工作電壓,就顯得比較方便,但尺寸就較大了。而LED不是必須的,而且還耗電。所以我直接就用HC-06模塊,忽略界面板。
加速計
使用的是MPU-6050加速/陀螺儀傳感器模塊。如果你有其他類似的加速計,也可以拿來替代。不過這么一來,源代碼就要做出改動了。
電池
在這里我使用了鋰聚合物電池。單芯鋰電輸出電壓為3.7伏,能讓Arduino Pro mini正常工作。當然市面上也有不同尺寸和容量大小的電池任君選擇。低于100毫安時的電池尺寸小,但不能保證持續供電,而且電量太低的話,啟動系統都是個問題。我建議使用帶有過充放保護的電池,如果由可拆卸插座的就更好了。
為了方便,你也可以加上鋰電池充電模組,帶有USB充電口,從引腳輸出電源到Arduino上。
其他材料
你需要導線、電烙鐵、開關、電池座。而這個組裝教程也對你有所幫助。
安卓部分
復古手環的安卓程序在安卓4.0環境下運行。如果你的安卓版本低于4.0,或者用的是iPhone的話,呵呵……
第三步:組裝
圖上顯示的是除了電池外每個模塊組裝后的結果。現在FTDI為整個模組供電,所以就不需要電池。
連接Arduino-藍牙模塊
如果想知道如何配對測試藍牙模塊,百度之!只要跟著教程對VCC、GND、TXD、RXD引腳接線即可。(VCC接3.3伏、GND接地、TX接D2、RX接D3)
連接Arduino-加速計(MPU-6050)
加速計模塊使用I2C界面。(VCC接3.3伏、GND接地、SDA接A4、SCL接A5)
連接Arduino-電池
供電是很簡單的事,只要將正極接入輸入端(RAW),負極接地(GND)即可。如果你想帶有充電功能,那么就使用鋰電池充電模塊吧。這是,你應將電池的B+、B-接到充電模塊的正負輸出上,將輸出的正負極分別連到Arduino板的RAW和GND上。
檢查連接
完成了所有過程后,就輪到下面步驟了。除了電池外,連接了每個部分,電源由FTDI模塊供給,在源代碼上載和完成測試前就不要連接電池了。當所有測試完成后,斷開FTDI模塊,將電池連上(或加上充電模塊)。
第四步:手環的Arduino源代碼
在GitHub上你能下載到手環的程序框架
上載Arduino源代碼
在代碼編譯完成后,你需要將其上載到Arduino板上。在上載之前,選擇主板型號“Arduino Pro mini 3.3伏(ATmega328)”,在上載前按下板上的重設按鈕。如果過程失敗,就會有下列信息反饋:
arvdud: stk500_getsync():not in sync: resp=0×00
顯示這段信息的原因通常是:
1.你在Arduino開發環境里選擇的主板類型和實際的不同。 2. TX、RX引腳連接錯誤。 3. 用作連接TX、RX引腳的串口引腳出錯。 4. 板上的啟動引導故障。 5. 用戶使用了不支持自動重設功能的USB模塊。
對于第一種情況,你需要在Arduino開發環境的[tools 》 board]中選擇正確的主板類型;第二種情況,檢查TX、RX引腳是否正確連接;改正后如果還是像第三種情況所說的那樣,將D0和D1引腳斷開連接;第五種情況,你只需按下重設按鈕。當你按下Arduino開發環境里的上載按鈕后,觀察出現的信息,有一個時刻上它會從“Compiling”(編譯中)轉為“Uploading”(上載中)。如果你看到USB模塊上TX/RXLED燈在閃爍,那么表示上載過程正常。比較罕見的是情況4的那種,那你就用一塊 UNO板對故障的啟動模塊進行重寫。
調試
你需要確定連接好了每個模塊,工作無誤。首先運行Arduino開發環境的串行監視器,看看加速計是否正常運行。(在完成上載程序代碼后,板上的 LED會亮,運行程序試驗。)因為下面的源代碼有段檢錯代碼,當連接正常時,它應當顯示Arduino板發回的數值。沒有的話,就證明加速計連接有問題。(在完成所有調試工作后,可以刪除檢錯代碼。)
// Print the raw acceleration values《br》 Serial.print(F(“accel x,y,z: ”)); Serial.print(accel_t_gyro.value.x_accel, DEC); Serial.print(F(“, ”)); Serial.print(accel_t_gyro.value.y_accel, DEC); Serial.print(F(“, ”)); Serial.print(accel_t_gyro.value.z_accel, DEC); Serial.print(F(“, at ”)); Serial.print(iAccelIndex); Serial.println(F(“”));
現在,輪到檢查藍牙模塊。準確連接VCC、GCN引腳后,移動設備掃描下模塊應該能被找到。如果在設備列表上看不到HC-06模塊,就檢查一下電源引腳。完成這步后,是時候檢查程序應用部分。
假設配對過程正常,但程序應用收不到數據,那么就是TX/RX引腳連接出了問題。換個說法,從Arduino到藍牙模塊的數據傳輸異常。
第五步:安裝運行應用
講解如何編譯及修改安卓源代碼會很長,所以這里就掠過了。不過你能在GitHub上下載整個復古手環安卓源代碼,并對其進行修改,任意傳播,只要保留版權信息即可。在[RetroBand_AndroidRetroBand]文件夾內可以找到安卓應用的源代碼。
我將應用放到了谷歌應用商店上了,只要在上面搜索“RetroBand”就能找到,然后安裝。它在安卓4.0系統以上運行。
安裝應用,運行程序,利用復古手環對移動設備程序進行校正,看應用能否成功收到信息。安卓應用有3個列表選單。
時間軸:這里每小時收集累計消耗熱量數據,你能查到每小時、每日、每月消耗熱量數據。
圖表:顯示加速計收到的數據,并將其繪制為圖表,你能看到3軸數據是如何變換的。
設置:這里配置程序設定,輸入自己體重。其他功能將陸續開放。
成功測試安卓應用的話,連接鋰電池,完成接下來的工作。
復古手環技術參數:
處理器:ATmega328-3.3v(8MHz),32KB閃存(2KB引導啟動共享),2KB內存,1KB EEPROM。
安卓4.0或以上的專用安卓應用。
基于步數計算的消耗熱量計算功能。
累計消耗熱量數據,將統計數據以每月、每日、每小時方式顯示出來。
實時監測加速計上3軸數據變化。
開源。
在下圖你能看到產品原型——Arduino、加速計、藍牙模塊、充電模塊、鋰電池、電源開關的組合體。我故意抹上了一些膠,讓它看起來臟兮兮的,但還是能正常工作的。
第六步:包裝
如果你有一臺3D打印機,那就試試看自己設計外殼。這里看到的外殼就是由一臺3D打印機打印的。
第七步:后記
復古手環是我的第二個作品,”自制智能手表(復古手表)“的后續作。我的智能手環比起其他活動跟蹤產品的功能太簡單了,但藍牙模塊和加速計是其他作品要用到的基本模塊。根據我的程序源代碼,你能做出不同的改型。
我希望本教程對你有所幫助。感謝以下諸位幫我完成這個作品。
Chang-Han Jeon、Il-Yong Park、Byung-Gyu Kim、KyungReol Ku、Sang-Won Lee、Kyung-Bu Jeong。
-
Arduino
+關注
關注
188文章
6469瀏覽量
187056 -
可穿戴設備
+關注
關注
55文章
3815瀏覽量
167036 -
智能手環
+關注
關注
47文章
795瀏覽量
72902
發布評論請先 登錄
相關推薦
評論