最新的藍牙4.2低功耗(BLE),也稱為藍牙智能,專為物聯網(IoT)而打造。每個主要操作系統對藍牙技術的原生支持使得移動應用程序的開發變得簡單。
使用PSoC Creator 3.2,Xcode 6和Swift應用程序開發環境,可以開發一款應用程序來處理簡單的遙控車使用iPhone,演示在嵌入式BLE系統開發中使用GATT配置文件和GAP外設。該車由兩臺電機和一臺帶正交編碼器的H橋和賽普拉斯半導體公司的PSoC4200 BLE器件構成。
圖1:PSoC4200來自賽普拉斯半導體可以使用藍牙低功耗4.2來控制機器人汽車。
該項目從簡單的LED和觸摸板控制開始,指示連接狀態。初始CAPSense滑塊用于控制紅色LED,當未連接電路板時,藍色LED用于藍色LED。
為PSoC4100 BLE創建新項目,可將組件添加到簡單原理圖中。 BLE組件添加到圖形設計工具并鏈接到CapSense組件。需要PWM來驅動LED,并且因為藍色LED為低電平有效,所以需要反轉PWM,因此庫中使用了非門。
PWM配置需要是單輸出,需要庫中的時鐘組件。對于閃爍的LED,時鐘配置為1 kHz。復位連接到邏輯低電平(因為它是高電平有效),更改PWM的名稱使其更容易連接。該項目增加了一個線性滑塊來處理評估板上的五個傳感器。
在原理圖中配置BLE組件需要自定義配置文件,并且該板充當帶有GAP(通用訪問配置文件)外圍設備的GATT服務器。 iPhone是GAP Central與電路板通信,作為GAP外設進行連接。
GATT服務器是BLE上的一個數據庫,用于存儲與iPhone作為GATT客戶端共享的信息。
自定義配置文件實質上是創建GATT數據庫,創建一個LED和CapSense的定制服務;這些都有UUID(通用唯一ID),以便iPhone可以找到這項服務。這使固件能夠與該服務通信。 1字節LED特性表示可以遠程寫入和讀取的LED狀態,因此需要激活讀取和寫入標志。 CapSense特性(無符號16個2字節格式)只能讀取,不能遠程寫入。為了在有變化時得到通知,激活通知標志。此時可以添加自定義的人類可讀通知。
每個特性都需要一個128位的UUID,而Creator工具為它提供了一個默認值,可以在最低有效位進行修改。
GAP設置包括設備名稱和廣告設置。在此示例中,它通過關閉超時來一直通告。在每隔20到30毫秒發送一次的廣告包中,有一些信息可以幫助識別設備,例如設備的名稱和可用的服務。
設置BLE,CapSense,PWM和LED后,需要設置引腳。第一個要設置的引腳是CapSense端口4的pin0調制電容。然后將CapSense滑塊連接到電路板上的P21至P25引腳。藍色LED連接到Port3 pin7,RED LED連接到port2,pin6。然后,該工具會自動為固件生成應用程序。
固件
使用Xcode在Github項目中實現固件,第一個變量是表示LED狀態的無符號全局變量,第二個變量是CapSense通知。
update_LED函數使用LED的當前狀態更新GATT數據庫。如果連接了BLE(來自GetState函數),則CYBLE_LEDCAPSENSE_LED_CHAR_HANDLE讀取引腳的值,并在LED為低電平時將其反轉。使用GATT WriteAttribute函數將1字節寫入數據庫。這可以在源代碼中的任何位置調用,以讀取LED的狀態。
下一個功能與CapSense相同。這將使用CYBLE_LEDCAPSENSE_CAPSESNE_CHAR_HANDLE和2字節值進入GATT數據庫。這也使用BLE中的notify函數,因此當CapSenseNotify變量發生更改時,會自動發送通知。
接下來是BLE事件處理程序。這將處理來自BLE的所有事件,例如堆棧打開或斷開連接。這使用藍色LED顯示連接正在發生或正在關閉,因此這些調用會觸發PWM并使用LED狀態和CapSense值更新GATT數據庫。這由堆棧固件自動處理。
下一個事件是寫事件,當遠程端想要寫入GATT數據庫時調用該事件。這里,堆棧給出了需要編寫的特性。
然后可以使用Xcode為設備編譯所有這些。
機器人
建造汽車本身相對簡單,因為兩個電機連接到H橋,該H橋映射到電路板上的連續引腳。設備上的開關顯示在應用程序中,每個電機的速度可以通過應用程序控制以引導汽車。
圖2:機器人車板結合了BLE芯片,兩個輪子和一個H橋。
有四個關鍵特性,左右電機的轉速計使用正交編碼器,兩個PWM驅動兩個電機。 iPhone上有兩個開關可以快速將特性切換為零。
原理圖與初始LED項目具有相似的元素。 PWM很簡單,周期為100,比較50,占空比為100,在iPhone上映射0到100比例。正交編碼器使用TCPWM,它可以在1X模式下解碼來自左右脈沖中的每一個的正交信號,從而計算脈沖而不是前沿和下降沿。
PSoC引腳足以直接為H橋供電,另一個引腳是軟件控制的開關,通過軟件控制電機的方向。最后一個是用于LED連接的PWM。
正交編碼器每轉計數64個脈沖,并且每187 ms觸發一次中斷以查找已發生的脈沖數并縮放以給出RPM編號。
自定義MOTOR_SERVICE配置文件具有四個特性,即8位整數,可寫和可讀,從-100到+100,速度左和速度右。這還包括人類可讀的表格和通知。這會更新GATT數據庫并發出通知。
BLE是具有機器人和電機服務UUID名稱的外圍設備。這簡化了連接過程。
從工具生成固件,包括通知標志,左右轉速計值以及左右速度。每次按下電路板按鈕關閉電機時都會觸發ISR,速度存儲在GATT數據庫中。
下一步是將固件鏈接到智能手機應用程序。
構建應用程序
在Swift中構建iOS應用程序有兩個視圖控制器,在賽普拉斯學院中有說明。第一個是表視圖控制器,它顯示手機可以看到的所有設備。當該類啟動時,它會中繼所有與其聽到的服務相匹配的設備。在這種情況下,只有一個遙控車,因此表中只有一件事,但這可用于控制許多外圍設備。
第二個視圖控制器本身就是遙控器。這對左右轉速計使用兩個標簽,在左右電機上使用兩個開關。對于左右電機,選擇器視圖從-100到+100。
該模型有三個類:
RCcar.swift,它跟蹤左右電機的連接和速度;
跟蹤設備的BT.neighborhood類。
BLE連接類處理連接,以便RC對象具有與之關聯的鄰域和連接。該類記錄了它對更改感興趣的事實,并將選擇器設置為兩個滑塊。
最后發生的事情是如果更新了轉速計,那么它會更新屏幕上的左右文本值。在視圖消失之前,您需要在按下后退按鈕時禁用設備和連接。這些都通過Swift中的應用程序編程接口(API)連接到固件。
結論
PSoC 4100設備中最新的藍牙低功耗4.2技術與簡單的H橋,電機和編碼器使得簡單的iPhone應用程序易于開發。使用最新版本的PSoC Creator,Xcode和Swift開發工具允許開發人員為機器人創建原理圖,固件和應用程序。
-
機器人
+關注
關注
211文章
28632瀏覽量
208177 -
藍牙
+關注
關注
114文章
5866瀏覽量
171052 -
遙控器
+關注
關注
18文章
840瀏覽量
66507
發布評論請先 登錄
相關推薦
評論