IOIO在A(yíng)ndroid手機中的應用與研究
摘要:IOIO是一個(gè)面向Android手機的軟硬件開(kāi)發(fā)平臺,通過(guò)USB接口實(shí)現Android手機與外界物理設備的互動(dòng)。本文介紹了IOIO的硬件特性與開(kāi)發(fā)環(huán)境,給出了如何用IOIO來(lái)實(shí)現對LED控制的實(shí)例。實(shí)驗結果表明,采用IOIO開(kāi)發(fā)Android手機具有簡(jiǎn)單易用的特點(diǎn)。
關(guān)鍵詞:Android手機;USB;IOIO
引言
Android本意指“機器人”,是Google公司于2007年11月5日宣布的基于Linux平臺的開(kāi)源手機操作系統,是當今三大智能手機操作系統之一。它包括操作系統、用戶(hù)界面、中間件和應用程序,擁有移動(dòng)電話(huà)T作所需的全部軟件,同時(shí),其開(kāi)放性保證該平臺不存在任何阻礙移動(dòng)產(chǎn)
業(yè)創(chuàng )新的專(zhuān)有權障礙。因此,其市場(chǎng)份額增長(cháng)迅速,軟件生態(tài)系統日漸成熟,大量軟件開(kāi)發(fā)人員投身到Android應用程序開(kāi)發(fā)中來(lái)。
當前Android手機主要集成了WiFi、藍牙通信接口,它們具有傳輸速率高、通用性好等優(yōu)點(diǎn)。但是在普適計算、物聯(lián)網(wǎng)領(lǐng)域中,大量傳感器、控制設備往往采用傳統的串行通信、I/O控制等技術(shù)。目前,Android手機往往缺乏這些接口,雖然可以采用藍牙轉RS232等技術(shù)來(lái)實(shí)現Android手機與外部物理設備的通信與控制,但是藍牙技術(shù)有通信距離短、不可靠、功耗高等缺點(diǎn)。特別是在低功耗物聯(lián)網(wǎng)環(huán)境中,我們很難采用藍牙、WiFi通信技術(shù)。因此這在某種程度上制約了Android手機在以上領(lǐng)域的應用。
IOIO是SparkFun公司出品的一款專(zhuān)門(mén)為Android1.5版本以上系統設計的通用型開(kāi)源控制模塊,它給開(kāi)發(fā)者提供了免費的系統電路圖及系統主板MCU的Firmware,同時(shí)也提供了豐富的Java API接口。IOIO通過(guò)USB接口與Android手機相連,高度集成了數字I/O端口、PWM、模擬輸入端口、I2C總線(xiàn)、SPI,以及UART控制器等功能組件,只需通過(guò)簡(jiǎn)單、直觀(guān)的Java API驅動(dòng)程序即可直接操作外部硬件I/O端口,既無(wú)需嵌入式編程,又不用外部編程器,使用方便靈活。因此,通過(guò)IOIO模塊,Android手機可以方便地整合3G通信網(wǎng)絡(luò )、藍牙通信、觸摸屏交互技術(shù)、各類(lèi)傳感器與外圍物理設備相連,從而增強了手機與物理世界的信息交互能力,為Android手機的創(chuàng )新應用打下了良好基礎。目前,許多國際著(zhù)名品牌的Android手機和平板電腦都兼容支持IOIO模塊,例如Google、Samsung、HTC、LG、Motorola等。
1 IOIO硬件結構
IOIO主要采用了低功耗PIC單片機作為系統控制器,IOIO模塊實(shí)物圖如圖1所示。IOIO硬件電路板上集成了模擬輸入、I2C總線(xiàn)、SPI、UART、GPIO等多個(gè)功能接口部件。主要引腳功能分類(lèi)如表1所列。
2 IOIO開(kāi)發(fā)環(huán)境
2.1 Android應用程序開(kāi)發(fā)簡(jiǎn)介
Android操作系統自上向下分成應用層、應用框架層、組件庫層、虛擬機和Linux內核層。其構架如圖2所示。
應用層(Application layer)。Android操作系統和一系列核心應用模塊一起發(fā)布,其核心應用模塊主要包括電話(huà)短信功能、網(wǎng)頁(yè)瀏覽器、聯(lián)系簿等。
評論