999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

讓Arduino成為Android的“可穿戴設備”

2014-04-29 00:00:00謝作如
中國信息技術教育 2014年17期

Android手機雖然已經附帶了多種傳感器,如方向、重力、距離、加速度等。并且早在Android2.3(gingerbread)系統中,Google就提供了11種傳感器供應用層使用。但是,并非所有Android手機都把這些傳感器配齊了,如溫度、濕度、氣壓之類的傳感器就不常見。為了使Android手機能支持更多的應用,越來越多的手機外設就涌現出來,可穿戴設備開發在短時間內就成為了硬件開發方面的“時尚”。其實,可穿戴設備的開發門檻并不高,通過Arduino,我們也可以初步體驗Android的“可穿戴設備”的開發。

可穿戴設備指直接穿在身上,或是整合到用戶的衣服或配件的一種便攜式設備。手機可穿戴設備將會給我們的生活、感知帶來很大的轉變。但是,可穿戴設備中的傳感器未必一定是手機中所沒有的,如最近很流行的智能手環,其核心傳感器就是加速度傳感器和陀螺儀,都是智能手機標配的傳感器。我們選擇了溫度和濕度傳感器,通過Arduino將傳感器數值發送給Android手機,以期通過這一項目來體驗可穿戴設備和手機的信息互動。

● 項目描述

本項目設計了一個簡單的通訊協議,讓Arduino能通過藍牙將各種傳感器(以溫度和濕度傳感器為例)的信息傳輸到Android手機,并顯示出來。本項目的難度設計為中小學生都能完成,Arduino的程序我們選擇用ArduBlock編寫,而手機的程序由App Inventor編寫。這個項目的流程如圖1所示。

● 項目分析

1.協議設計

與本欄目上期文章《用Android控制Arduino小車》一樣,首先需要為Android和Arduino設計通訊協議。這個協議規定了數據的格式以及數據代表的意義。針對ArduBlock教育版和App Inventor的特點,我設計了一個簡單的通訊協議,各類數據的含義說明如表1。

因為App Inventor沒有二進制的數據處理能力,這個通訊協議只能使用字符形式傳送數值。雖然效率不高,但也通俗易懂。之所以采用6個字符,是因為Arduino的A/d的轉換分辨率為10位,即0~1023之間,需要留下4個字符,第一個字符是為了標識模擬傳感器的針腳。而第二個字符永遠是1,并沒有實際作用,僅僅是因為在ArduBlock教育版可以使用“10000+傳感器值”的簡單表達式來補足傳感器數值不足4位時需要補上的“0”。

另外,ArduBlock教育版的串口打印會自動加上回車(這也是教育版為了簡化積木模塊而犧牲其更多功能的無奈之舉),回車和換行剛好要占去2個字節,實際一次傳輸的是8個字符(字節)。

如果拋開這兩款軟件,我建議可以參照S4A的通訊協議,效率較高,2個字節就能完成一個傳感器數據的傳送。

2.設備選擇

雖然這是一個測試的項目,并非開發真正意義上的可穿戴設備產品,但我還是物色了一款體積較小的Arduino板子,做出“可穿戴”的感覺來。經過比較,DFRobot公司推出的Bluno Nano主控板成了我的選擇。Bluno Nano集成了低功耗的藍牙4.0芯片,而且只有拇指大小,非常適合用來開發做可穿戴設備的原型(如下頁圖2)。

除了Bluno Nano主控板外,只有硬幣般大小的Microduino的產品也很適合做可穿戴設備的原型(如圖3)。

當然,如果僅僅想測試Arduino和Android的連接,可以找任何一款藍牙模塊來實現,具體可以參考本欄目的上期文章。至于溫度和濕度傳感器,網上可以選擇的店鋪很多,價格從幾元到十幾元不等,不再一一說明。

● 編程實現

1.Arduino程序

我們使用ArduBlock教育版來寫Arduino的代碼。ArduBlock教育版是一款經過優化的版本,界面清爽、分類清晰且命名規范,適合在中小學的課堂上使用。其串口輸出功能很簡單,就一個“串口打印加回車”積木模塊,這一積木模塊和Arduino代碼的對應關系如表2。

因為表1設計的協議,我編寫了從串口輸出模擬端口A0和A1值的代碼,每隔300毫秒傳輸一次數據。其中用“10000+傳感器值”的簡單表達式,補足了傳感器數值不足4位時需要添加的“0”。這樣加上回車換行,傳輸一個傳感器的數值剛好需要8個字節(如圖4)。

轉成Arduino代碼后為:

int _ABVAR_1_A0 = 0 ;

int _ABVAR_2_A1 = 0 ;

void setup()

{

Serial.begin(9600);

}

void loop()

{

_ABVAR_1_A0 = ( analogRead(0) + 10000 ) ;

_ABVAR_2_A1 = ( analogRead(1) + 10000 ) ;

Serial.print(\"0\");

Serial.print(_ABVAR_1_A0);

Serial.println();

Serial.print(\"1\");

Serial.print(_ABVAR_2_A1);

Serial.println();

delay( 300 );

}

注意:如果出現下載失敗的情況,請參照本欄目上期文章進行相應處理。

2.App Inventor程序

Android端App程序的主要功能是接收Arduino發送的數據,然后顯示在屏幕上。代碼并不復雜,除了常見的Label、TextBox、Button外,還需要ListPicker、BluetoothClient這幾個必要的控件。因為要實時接收數據,我還加上了Clock這一時間控件。具體界面如圖5所示。

App中所涉及控件的作用簡要說明如表3。

接下來,我們可以開始編寫代碼了,其中給ListPicker1控件寫選擇藍牙設備的代碼。需要注意的是,這個控件僅能顯示手機已經配對過的藍牙設備(如圖6)。

給Button1控件編寫Click事件,為了使程序更加完善,我添加了針對各種意外情況,會顯示不同提示的代碼(如圖7)。

Clock1控件的TimerEnabled屬性默認值為1,當連接了藍牙設備,TimerEnabled就修改為true。Clock1控件Timer事件代碼如圖8所示。

因為代碼篇幅過長,影響了截圖,這里我僅僅寫了一個傳感器。為了便于觀察,我將獲取的字符顯示在Label4上。

3.運行測試

編譯為APK文件,然后安裝。App的運行效果如圖9所示。Bluno Nano主控板上的藍牙默認配對碼是1234,連接上后,就能看到傳送過來的數據了。

● 拓展應用

在本項目中,Android僅僅將接收到的傳感器數據顯示出來,并沒有做進一步的處理,也沒有根據傳感器信息,控制Arduino執行相應的動作。一般來說,手機還要對可穿戴設備的數據進行進一步處理,并存儲在云服務器上,以便更加深入地進行分析。例如,智能手環可以統計用戶每天的運動路徑、消耗卡路里和攝入熱量,也能根據事先的設定,通過振動馬達來提醒用戶應該運動或者休息了。結合本欄目上一期文章的內容,相信讓中小學生實現這樣的功能并不會很難。

● 總結

本項目還可以應用在某些特殊場合,如無線抄水電表,甚至也可以把Android作為Arduino的藍牙顯示屏來使用。藍牙4.0的功耗很低,應用范圍很廣,Android手機結合Arduino后,功能將大大提高。從本質上看,可穿戴設備和智能家居、物聯網并沒有太大的區別,App Inventor編程的價值就在于其和硬件結合緊密,讓學生們玩玩最新的技術吧。

主站蜘蛛池模板: 久久无码高潮喷水| 大香伊人久久| 在线观看免费黄色网址| 精品国产一区二区三区在线观看| 毛片视频网址| 成人噜噜噜视频在线观看| 精品久久久久久成人AV| 免费观看无遮挡www的小视频| 国产欧美视频一区二区三区| 青青操国产| 久久久久久久蜜桃| 无码人妻免费| 亚洲人成网18禁| 任我操在线视频| 夜夜拍夜夜爽| 国产精品永久免费嫩草研究院| 国产交换配偶在线视频| 欧美一区二区丝袜高跟鞋| 国产真实乱子伦视频播放| 2021精品国产自在现线看| 亚洲欧美精品日韩欧美| 亚洲国产91人成在线| 熟妇丰满人妻av无码区| 成年看免费观看视频拍拍| 91无码国产视频| 国产污视频在线观看| 99视频在线精品免费观看6| 欧美性天天| 欧美精品导航| 91久久国产成人免费观看| 国产情侣一区二区三区| 99久久精品视香蕉蕉| 亚洲天堂视频在线观看免费| 中文精品久久久久国产网址| 青青青国产视频手机| 伊人久久影视| 在线免费a视频| 久久综合结合久久狠狠狠97色| 国产SUV精品一区二区| 精品国产福利在线| 蜜臀AV在线播放| 欧洲熟妇精品视频| 在线观看视频一区二区| 亚洲欧美精品一中文字幕| 亚洲一级毛片免费观看| 国产在线视频自拍| 日韩精品一区二区三区中文无码| 一级毛片免费播放视频| 国产一级在线播放| 亚洲欧洲日韩综合色天使| 国产在线八区| 日韩av高清无码一区二区三区| 国产大片喷水在线在线视频| 日韩av无码DVD| 欧美一级高清片久久99| 国产欧美高清| 午夜福利网址| 亚洲精品另类| 视频在线观看一区二区| 亚洲视频免费播放| 午夜少妇精品视频小电影| 欧美一级夜夜爽www| 伊人网址在线| 国产免费自拍视频| 一区二区三区精品视频在线观看| 欧美日韩在线国产| 国产又黄又硬又粗| 亚洲国产精品一区二区高清无码久久| 黄片在线永久| 亚洲成人免费在线| 日本免费a视频| 久久精品人人做人人| 色亚洲成人| 亚洲最大情网站在线观看 | 国产成人亚洲毛片| 中文字幕在线看视频一区二区三区| 国产人成网线在线播放va| 欧美影院久久| 99久久人妻精品免费二区| 婷婷综合亚洲| 国产情侣一区二区三区| 国产欧美日韩综合在线第一|