物聯(lián)網(wǎng)
- 首頁 >> 新聞資訊 >> 博客文章 >> 物聯(lián)網(wǎng)
藍牙遙控器PCBA設(shè)計開發(fā)
在近年來,藍牙遙控器伴隨著智能手機迅速地崛起,極大地該改變我們生活方式。手機,不再是像以往那樣只為單純打電話、發(fā)短信,我們更多注重的是休閑娛樂功能,使得大多數(shù)人都離不開手機。其中Android手機更是成為智能手機中的香餑餑,市場占比達到7成以上,Google將其開源了,為眾多的廠商和開發(fā)者提供一個很好的發(fā)展空間。對電腦來說,鼠標看起來是必不可少的搭檔,但是,在許多場合,比如出差、旅游等場合,直接攜帶和使用鼠標并不是十分便捷。本文設(shè)計一種手機藍牙控制器,通過這種橋梁使電腦和Android手機相連,可以直接通過手機來實現(xiàn)鼠標的基本功能。
一、藍牙遙控器整體設(shè)計
要實現(xiàn)的功能主要有:1)帶有藍牙功能的手機:一般來說,現(xiàn)在的手機基本都帶有藍牙功能。這個也就是通常所說的客戶端,在上面設(shè)計一個APP,用來獲取想要電腦動作的數(shù)據(jù),然后將這些數(shù)據(jù)通過藍牙發(fā)送出去給服務(wù)端。2)帶有藍牙接收功能的硬件部分:必須要有一個從端,用來直接和手機對接的藍牙部分,直接接收手機發(fā)送過來的數(shù)據(jù);再將這些數(shù)據(jù)轉(zhuǎn)發(fā)給控制器,用控制器來解析數(shù)據(jù)。3)控制器部分:用來解析由藍牙模塊傳送過來的數(shù)據(jù),并且這部分還必須和電腦端相連,通過USB通信協(xié)議將這些數(shù)據(jù)發(fā)送到電腦端,實時與電腦端直接通信,達到我們的控制目的。4)個人電腦:這個就是我們想要控制部分。整個結(jié)構(gòu)如圖1所示。
二、藍牙遙控器系統(tǒng)硬件設(shè)計
如果直接用無線鼠標的藍牙適配器,這樣在硬件部分最為直接和簡便,完全就是將手機替換了無線鼠標了。但是實現(xiàn)起來很不容易,一般每一個無線鼠標為了排出其他藍牙設(shè)備的干擾都有一個特定的藍牙適配器,也就是說,他們是一對一的關(guān)系,需要知道藍牙適配器和特定鼠標的通信協(xié)議。
如果是直接用一個通用的USB適配器,再來與電腦通信,電腦USB端已經(jīng)實現(xiàn)了L2CAP、SDP、RFCOMM通信協(xié)議,但是在這種協(xié)議之下,要有自己的電腦客戶端驅(qū)動程序。本設(shè)計采用軟硬結(jié)合,用藍牙模塊+控制器實現(xiàn)無線鼠標適配器功能,使功能實現(xiàn)起來更為簡單和可靠。
2.1藍牙模塊設(shè)計
藍牙模塊作為一個從設(shè)備和手機相連,并且擁有串口將數(shù)據(jù)傳回給控制器。本次設(shè)計要用到的藍牙模塊沒有要求很嚴格,速率上說,設(shè)置波特率115200之后,對于傳輸小量的數(shù)據(jù)已經(jīng)完全夠用了。功率也不會像可穿戴設(shè)備那樣要求很苛刻。有效距離20米之內(nèi)。所以在性能和價格對比之下,選擇了擁有主從模式的HC-05,功能夠全、價格便宜。PIO8管腳的LED燈會顯示出當前藍牙所處的狀態(tài),一閃一閃就是正常未連接狀態(tài),閃兩次就是藍牙已經(jīng)成功被連接上了。
微控制器作為一個數(shù)據(jù)的中轉(zhuǎn)站,最簡單的是采用51單片機來處理,但是,單片機里面資源不過多,處理數(shù)據(jù)速度不夠快。所以選用嵌入式芯片:STM32F103RCT6作為控制器芯片。包括,從串口中斷一幀一幀讀出HC-05串口傳回的數(shù)據(jù),然后取出里面的位置、按鍵等信息,在和電腦建立USB通信之后,將數(shù)據(jù)發(fā)送出去,完成控制過程。該芯片的作用是利用串口中斷1接收來自藍牙串口的數(shù)據(jù),并將數(shù)據(jù)通過USB發(fā)送給電腦,USB接口D-、D+分別接上該芯片的PA11、PA12管腳,右邊接上電腦的USB輸出接口;藍牙串口輸出RXD、TXD分別接上該芯片的PA9、PA10。
三、藍牙遙控器軟件設(shè)計
Android軟件設(shè)計平臺目前來說有好幾種,Google官方推出的開發(fā)平臺有Eclipse、Android studio。這里使用的Android軟件平臺是:Eclipse。手機客戶端是關(guān)鍵的一環(huán),首先要和藍牙模塊建立數(shù)據(jù)通路,相互之間可以無阻地傳輸數(shù)據(jù),然后,實時獲取手指在手機屏幕移動的距離和各個按鍵的狀態(tài),并發(fā)給藍牙模塊。
界面設(shè)計思路是:首先要有幾個頁面可以切換,在連接藍牙模塊之后,我們隨時可以切換到鼠標控制或是PPT翻頁界面,故在設(shè)計界面上要做到切換界面的同時,完全不改變藍牙的連接狀態(tài)。為了使界面更美觀,選用Fragment+Tab來做主界面。Tab作用是定位并切換Activity,就像微信下面的切換一樣。整個主界面上用了3個界面,分別是mou semov.xml(鼠標滑動布局)、pptlayout.xml(PPT翻頁滑動布局)、settinglayout.xml(設(shè)置頁面布局)。
功能性設(shè)計:切換到設(shè)置界面,立即獲取Android系統(tǒng)的藍牙實例,再接著調(diào)用藍牙適配器里面的連接其他藍牙設(shè)備的方法,利用這種方法連接上目標設(shè)備之后,獲取到目標藍牙地址,用該地址建立socket通路,socket的通信方式是直接用數(shù)據(jù)流來讀和寫數(shù)據(jù)的,當建立好socket通路之后,直接就可以把數(shù)據(jù)轉(zhuǎn)為Byte[]字節(jié)數(shù)組的形式,再發(fā)送給藍牙模塊。
藍牙建立連接:藍牙建立連接,必須要先調(diào)取系統(tǒng)的藍牙服務(wù),在Android中,如果要調(diào)取有關(guān)安全的服務(wù),都要在AndroidManifest.xml文件中,申請系統(tǒng)的權(quán)限,獲得權(quán)限之后才能操作。
鼠標程序:鼠標移動的程序一是獲取當前手指在屏幕移動的距離以及鼠標左右中按鍵狀態(tài),二是將數(shù)據(jù)打包發(fā)送出去,三是界面美化。
四、STM32程序設(shè)計
STM32程序的作用是獲取從手機傳過來的數(shù)據(jù),并解析出來,之后通過USB通信協(xié)議將數(shù)據(jù)發(fā)送到電腦端,電腦就會根據(jù)你給的數(shù)據(jù)做出相應(yīng)的動作。
首先是收取數(shù)據(jù),STM32和單片機一樣都是用串口中斷來收取外部數(shù)據(jù),這樣既不會耗費太多資源,又能實時響應(yīng)。要想開啟串口中斷,必須得對STM32內(nèi)部資源做一系列的配置和初始化,首先是系統(tǒng)時鐘的設(shè)置,直接可以調(diào)用工程里面SYSTEM>sys.c文件下的Stm32_Clock_Init()方法。初始化完成后一有數(shù)據(jù)過來直接就接收并存入uart的數(shù)據(jù)緩沖區(qū),讀出緩沖區(qū)的數(shù)據(jù)就能獲取到手機數(shù)據(jù)了。將數(shù)據(jù)發(fā)給電腦端的過程為:首先重置USB接口,然后配置USB中斷處理方式以及中斷優(yōu)先級、使能USB時鐘、初始化所用通信所需驅(qū)動;完成所有這些步驟之后就能在串口中斷程序中發(fā)送來自藍牙模塊的數(shù)據(jù)到電腦上。
總結(jié)
在市面上,比較多人用的TeamViewer,這款軟件比較多用于遠程控制電腦,手機遠程控制電腦也行;其實里面的原理大都是網(wǎng)絡(luò)通信方面的知識,在各自連上互聯(lián)網(wǎng)的兩端建立數(shù)據(jù)通路之后,將被控制電腦端的圖像畫面?zhèn)骰氐娇刂贫?,控制端動作則通過數(shù)據(jù)幀打包之后發(fā)給被控制端,控制端解析之后就實現(xiàn)相應(yīng)的動作。還有其他軟件如獵豹WIFI,可以通過局域網(wǎng)來控制電腦,這個原理和TeamViewer一樣。大多都是純軟件的實現(xiàn),不同于本文的設(shè)計實現(xiàn)原理??梢赃M一步考慮用手機端實現(xiàn)鍵盤的某些功能,比如Enter鍵、上下左右按鍵、Esc按鍵等。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的藍牙遙控器控制板開發(fā)示例。如果您有藍牙遙控器PCBA開發(fā)需求,可以放心交給我們。我們代理多種單片機、語音芯片、雙模藍牙IC、wifi芯片。品牌有松翰單片機、應(yīng)廣單片機、杰理藍牙、安凱藍牙、全志、瑞昱(realtek)。我們的技術(shù)服務(wù)范圍有:PCB設(shè)計、單片機開發(fā)、藍牙方案、軟硬件定制開發(fā)、APP開發(fā)、小程序開發(fā)、微信公眾號開發(fā)等。還可以承接智能電子產(chǎn)品方案設(shè)計、生活電器開發(fā)、美容儀器研發(fā)、物聯(lián)網(wǎng)平臺應(yīng)用、智能家居控制系統(tǒng)、TWS耳機、藍牙耳機音箱開發(fā)、兒童益智玩具方案開發(fā)、電子教育產(chǎn)品方案設(shè)計等。
精選方案推薦
- 返回頂部