參考正點(diǎn)原子戰(zhàn)艦開發(fā)板上的鼠標(biāo)例程,我也做了一個(gè)空中鼠標(biāo),其實(shí)只是將他的有線鼠標(biāo)改造成無(wú)線的。
鼠標(biāo)由發(fā)射板和接收板組成,發(fā)射板主要包括stm32,MPU6050,NRF24l01,相信我不用說(shuō)明大家都知道他們分別是干什么的了吧。
接收板主要包括stm32和NRF24l01,接收板通過(guò)USB接口和電腦連接,USB驅(qū)動(dòng)是STM32的官方例程。另外,cpu使用的是stm32f103c8t6
這個(gè)芯片有兩個(gè)優(yōu)點(diǎn),一個(gè)是小,另外一個(gè)是便宜,統(tǒng)計(jì)下來(lái)做一個(gè)鼠標(biāo)刨去PCB的成本,大概60元左右。
這個(gè)空中飛鼠的原理大概講一下,就是讀取MPU6050中X和Z軸上的角速度值,然后通過(guò)NRF24l01發(fā)送給接收板,接收板通過(guò)NRF24l01接收到數(shù)據(jù)后,通過(guò)stm32內(nèi)部自帶的USB模塊將數(shù)據(jù)發(fā)送給電腦,而USB部分的東西基本不用去深入研究,使用的時(shí)候只要知道那個(gè)鼠標(biāo)數(shù)據(jù)的接口函數(shù)就可以了。
https://v.youku.com/v_show/id_XNzc1MzQ1ODg0.html
視頻中只有發(fā)射板,我將發(fā)射板做成跟18650電池大小差不多,這樣就直接可以放到移動(dòng)電源里了,這樣移動(dòng)電源就不僅可以充電,還可以
當(dāng)鼠標(biāo)使用。怎么樣實(shí)際的使用效果還可以吧?
下面是空中鼠標(biāo)的圖片細(xì)節(jié)。
這是發(fā)射板的PCB,MPU6050和NRF24l01都是直接使用的現(xiàn)成模塊,方便了焊接并且提高了制作成功率。
這是裝好后的實(shí)物圖,也許你會(huì)奇怪后面為什么要用那么長(zhǎng)的兩個(gè)按鍵?這是因?yàn)槲乙寻遄臃诺揭苿?dòng)電源的電池倉(cāng)內(nèi),所以需要很長(zhǎng)的按鍵,
我也懶得再去研究怎么裝按鍵會(huì)更好看,所以就用了這種懶辦法。
這是接收板的PCB板和實(shí)物圖,電路其實(shí)很簡(jiǎn)單,我做了兩點(diǎn)優(yōu)化,一個(gè)是雙USB接口,這樣不僅可以直接插到電腦上,而且可以在調(diào)試程序的時(shí)候
使用USB線來(lái)連接,另一個(gè)是將IO口全部引出,這樣接收板還可以當(dāng)做開發(fā)板使用,對(duì)于我這種電子愛好屌絲來(lái)說(shuō)無(wú)疑是一個(gè)很省成本的方案。
上圖是發(fā)射板放在移動(dòng)電源中,移動(dòng)電源最好選用內(nèi)部是18650的,這樣方便改造。只要將線連接好,將板子固定住,在蓋子上打好洞就行,
我用的LDO是一個(gè)低壓差的,座椅無(wú)論你使用移動(dòng)電源出來(lái)的5V或者直接連接18650都是可以正常工作的。
最后,附上原理圖和程序,沒(méi)有太多注釋,因?yàn)槌绦蛭易约簩懙牟糠趾芎?jiǎn)單,其他部分都是官方或者戰(zhàn)艦開發(fā)板上現(xiàn)成的例程,現(xiàn)在我的程序,
除了控制方向,鼠標(biāo)左右鍵外,還增加了兩個(gè)按鍵同時(shí)按下開啟滾輪功能,期望有人能在我的基礎(chǔ)上繼續(xù)優(yōu)化程序,因?yàn)槲覍?duì)算法這邊實(shí)在了
解的不多。