羸彩彩票

深圳市組創微電子有限公司
銷售部:158 1687 4032采購部:0755-8299 4126行政部:0755-8299 4126
咨詢電話
0755-8299 4141

藍牙產品

客戶成功故事與項目成功案例

藍牙遙控器PCBA設計開發


在近年來,藍牙遙控器伴隨著智能手機迅速地崛起,極大地該改變我們生活方式。手機,不再是像以往那樣只為單純打電話、發短信,我們更多注重的是休閑娛樂功能,使得大多數人都離不開手機。其中Android手機更是成為智能手機中的香餑餑,市場占比達到7成以上,Google將其開源了,為眾多的廠商和開發者提供一個很好的發展空間。對電腦來說,鼠標看起來是必不可少的搭檔,但是,在許多場合,比如出差、旅游等場合,直接攜帶和使用鼠標并不是十分便捷。本文設計一種手機藍牙控制器,通過這種橋梁使電腦和Android手機相連,可以直接通過手機來實現鼠標的基本功能。

一、藍牙遙控器整體設計

要實現的功能主要有:1)帶有藍牙功能的手機:一般來說,現在的手機基本都帶有藍牙功能。這個也就是通常所說的客戶端,在上面設計一個APP,用來獲取想要電腦動作的數據,然后將這些數據通過藍牙發送出去給服務端。2)帶有藍牙接收功能的硬件部分:必須要有一個從端,用來直接和手機對接的藍牙部分,直接接收手機發送過來的數據;再將這些數據轉發給控制器,用控制器來解析數據。3)控制器部分:用來解析由藍牙模塊傳送過來的數據,并且這部分還必須和電腦端相連,通過USB通信協議將這些數據發送到電腦端,實時與電腦端直接通信,達到我們的控制目的。4)個人電腦:這個就是我們想要控制部分。整個結構如圖1所示。

圖 1 藍牙遙控器系統結構框圖

二、藍牙遙控器系統硬件設計

如果直接用無線鼠標的藍牙適配器,這樣在硬件部分最為直接和簡便,完全就是將手機替換了無線鼠標了。但是實現起來很不容易,一般每一個無線鼠標為了排出其他藍牙設備的干擾都有一個特定的藍牙適配器,也就是說,他們是一對一的關系,需要知道藍牙適配器和特定鼠標的通信協議。

如果是直接用一個通用的USB適配器,再來與電腦通信,電腦USB端已經實現了L2CAP、SDP、RFCOMM通信協議,但是在這種協議之下,要有自己的電腦客戶端驅動程序。本設計采用軟硬結合,用藍牙模塊+控制器實現無線鼠標適配器功能,使功能實現起來更為簡單和可靠。

2.1藍牙模塊設計

藍牙模塊作為一個從設備和手機相連,并且擁有串口將數據傳回給控制器。本次設計要用到的藍牙模塊沒有要求很嚴格,速率上說,設置波特率115200之后,對于傳輸小量的數據已經完全夠用了。功率也不會像可穿戴設備那樣要求很苛刻。有效距離20米之內。所以在性能和價格對比之下,選擇了擁有主從模式的HC-05,功能夠全、價格便宜。PIO8管腳的LED燈會顯示出當前藍牙所處的狀態,一閃一閃就是正常未連接狀態,閃兩次就是藍牙已經成功被連接上了。

微控制器作為一個數據的中轉站,最簡單的是采用51單片機來處理,但是,單片機里面資源不過多,處理數據速度不夠快。所以選用嵌入式芯片:STM32F103RCT6作為控制器芯片。包括,從串口中斷一幀一幀讀出HC-05串口傳回的數據,然后取出里面的位置、按鍵等信息,在和電腦建立USB通信之后,將數據發送出去,完成控制過程。該芯片的作用是利用串口中斷1接收來自藍牙串口的數據,并將數據通過USB發送給電腦,USB接口D-、D+分別接上該芯片的PA11、PA12管腳,右邊接上電腦的USB輸出接口;藍牙串口輸出RXD、TXD分別接上該芯片的PA9、PA10。

三、藍牙遙控器軟件設計

Android軟件設計平臺目前來說有好幾種,Google官方推出的開發平臺有Eclipse、Android studio。這里使用的Android軟件平臺是:Eclipse。手機客戶端是關鍵的一環,首先要和藍牙模塊建立數據通路,相互之間可以無阻地傳輸數據,然后,實時獲取手指在手機屏幕移動的距離和各個按鍵的狀態,并發給藍牙模塊。

界面設計思路是:首先要有幾個頁面可以切換,在連接藍牙模塊之后,我們隨時可以切換到鼠標控制或是PPT翻頁界面,故在設計界面上要做到切換界面的同時,完全不改變藍牙的連接狀態。為了使界面更美觀,選用Fragment+Tab來做主界面。Tab作用是定位并切換Activity,就像微信下面的切換一樣。整個主界面上用了3個界面,分別是mou semov.xml(鼠標滑動布局)、pptlayout.xml(PPT翻頁滑動布局)、settinglayout.xml(設置頁面布局)。

功能性設計:切換到設置界面,立即獲取Android系統的藍牙實例,再接著調用藍牙適配器里面的連接其他藍牙設備的方法,利用這種方法連接上目標設備之后,獲取到目標藍牙地址,用該地址建立socket通路,socket的通信方式是直接用數據流來讀和寫數據的,當建立好socket通路之后,直接就可以把數據轉為Byte[]字節數組的形式,再發送給藍牙模塊。

藍牙建立連接:藍牙建立連接,必須要先調取系統的藍牙服務,在Android中,如果要調取有關安全的服務,都要在AndroidManifest.xml文件中,申請系統的權限,獲得權限之后才能操作。

鼠標程序:鼠標移動的程序一是獲取當前手指在屏幕移動的距離以及鼠標左右中按鍵狀態,二是將數據打包發送出去,三是界面美化。

四、STM32程序設計

STM32程序的作用是獲取從手機傳過來的數據,并解析出來,之后通過USB通信協議將數據發送到電腦端,電腦就會根據你給的數據做出相應的動作。

首先是收取數據,STM32和單片機一樣都是用串口中斷來收取外部數據,這樣既不會耗費太多資源,又能實時響應。要想開啟串口中斷,必須得對STM32內部資源做一系列的配置和初始化,首先是系統時鐘的設置,直接可以調用工程里面SYSTEM>sys.c文件下的Stm32_Clock_Init()方法。初始化完成后一有數據過來直接就接收并存入uart的數據緩沖區,讀出緩沖區的數據就能獲取到手機數據了。將數據發給電腦端的過程為:首先重置USB接口,然后配置USB中斷處理方式以及中斷優先級、使能USB時鐘、初始化所用通信所需驅動;完成所有這些步驟之后就能在串口中斷程序中發送來自藍牙模塊的數據到電腦上。

總結

在市面上,比較多人用的TeamViewer,這款軟件比較多用于遠程控制電腦,手機遠程控制電腦也行;其實里面的原理大都是網絡通信方面的知識,在各自連上互聯網的兩端建立數據通路之后,將被控制電腦端的圖像畫面傳回到控制端,控制端動作則通過數據幀打包之后發給被控制端,控制端解析之后就實現相應的動作。還有其他軟件如獵豹WIFI,可以通過局域網來控制電腦,這個原理和TeamViewer一樣。大多都是純軟件的實現,不同于本文的設計實現原理。可以進一步考慮用手機端實現鍵盤的某些功能,比如Enter鍵、上下左右按鍵、Esc按鍵等。

以上就是我們深圳市組創微電子有限公司為您介紹的藍牙遙控器控制板開發示例。如果您有藍牙遙控器PCBA開發需求,可以放心交給我們。我們代理多種單片機、語音芯片、雙模藍牙IC、wifi芯片。品牌有松翰單片機、應廣單片機、杰理藍牙、安凱藍牙、全志、瑞昱(realtek)。我們的技術服務范圍有:PCB設計、單片機開發、藍牙方案、軟硬件定制開發、APP開發、小程序開發、微信公眾號開發等。還可以承接智能電子產品方案設計、生活電器開發、美容儀器研發、物聯網平臺應用、智能家居控制系統、TWS耳機、藍牙耳機音箱開發、兒童益智玩具方案開發、電子教育產品方案設計等。