社區事跡:
個人簡介
張潞(論壇號:zhanglu1012),嵌入式工程師, 擅長嵌入式開發。
大賽作品賞析
1. RT-Thread創新應用設計大賽
基于CH32V103的多功能推桿
項目簡介:
“創意源于生活,工具始于懶惰。” 在參加RTT大賽前,老婆在用電腦時和我抱怨開機鍵太遠了,每次都要站起來才能夠得到放在顯示器后面的主機上的開關,十分的不方便。確實,如果主機箱放在桌子底下或者顯示器后面,要開機的話要么得彎腰要么得站起來才能夠到,所以為了讓老婆可以坐著就把機器打開,我開始著手設計了這個多功能推桿。 整體造型外觀參考了最近比較火的夫妻游戲《雙人成行》第一關里面那個吸塵器的推桿開關,結構中采用阻尼器/滾珠軸承等器件,使其非常具有質感和手感。功能上我構思不能只有電腦開關這么簡單地一個功能,于是內部采用CH32V103、霍爾編碼器,振動馬達驅動等外設構建了一個具有開關/線性控制,力感反饋推桿,通過自定義USB TYPE-C接口和HID協議,實現了對電腦的開關機、音量控制、鼠標/鍵盤/搖桿模擬、甚至可以針對不同應用實現快捷鍵等功能。
硬件說明
我認為一個想法要有完整的設計,不能只停留在開發板上,所以在前期我使用開發板完成了軟件功能的實現,后面又設計并打樣了PCB和機械結構,把開發板上僅有的一枚CH32V103焊到了自制的PCB板上,安裝到3D打印的DEMO模型中,所以比較晚才完成提交項目。接下來我將從硬件和機械兩部分進行介紹。
首先是硬件部分,整體的硬件架構如下圖所示:
作為一個推桿,編碼器是必須的,為了結構簡單而不失分辨率性能,我選擇了12bit分辨率的AD5600線性旋轉霍爾傳感器,通過IIC與主控CH32V103相連接。
為了絲滑推感同時增加可玩性,我增加了DRV2605和線性馬達作為力反饋,DRV2605內置多種震感波形,結合線性馬達可以提供多種力反饋特性,也通過IIC與主控相連接。
在推桿一端,我設計了一個DRV2605帶燈的微觸開關,微觸開關的開關量,結合搖桿的線性控制量可以實現很多功能。在推桿本體中設計了兩個并聯的LED作為裝飾燈光,通過定時器可以實現呼吸燈效果。
在對推桿如何連接電腦這塊,我思考了很久,為了讓推桿能夠實現電腦開關機功能,最簡單的方式就是將一個開關輸出量與主機開關鍵并聯,直接控制短接就能開機了。但這也就意味著要有兩根線直接與主機相連。為了讓推桿和電腦還能走USB協議,那么也就還要至少接上DM DP GND三根線,再想獲得下電腦當前開機狀態,那就還得再接兩根線到主機的POWER LED上(可能你會說,為啥不用USB連接狀態判斷?因為剛開機那會兒還沒建立USB連接,這個狀態不可靠啊),算下來這就七根線了,另外推桿模塊也需要供電,要么外接電池,要么再接一個VCC到電腦上,那就需要8個線了,其中4跟可以用USB micro接口,但另外四根就很難受了。
可能你會說,為啥不用USB來啟動呢?我也想到了,但是查了不少資料,都說現再新的電腦都不支持USB遠程喚醒關機了的電腦,想想也是,系統都關了,USB通訊也建立不起來啊,(當然也是有部分電腦可以通過BIOS加載USB設備來啟動,但我的電腦不支持。。)
所以在簡潔美觀性的追求下,我的目光聚焦到了USBType-C接口,標準Type-C接口有24P,其中包含兩組USB3.x的差分數據線,但那個線間距是真的小啊,而且半插半帖的連接器也不好焊,所以我選擇了12P的剪裁版Type-C接口,其中包括一組USB2.0的接線,一組CC控制引腳和SBU控制引腳,后面這兩組引腳一般用于正反差識別、快充協議上,而我這里用不到這些功能,就正好替代成主機開關鍵和開關機狀態讀取功能,這樣一個Type-C接口就搞定了8根線的需求。為了也能正反插,在中間用二極管搭了個換向處理結構,這部分電路如下圖所示:
整個硬件原理圖如下圖所示:
電子發燒友論壇榮譽
2021年RT-Thread創新應用設計大賽二等獎
優秀工程師評語
張潞參與社區設計比賽取得優異成績,創建個人專欄分享文章,電子發燒友社區特此制作社區工程師專題,以資鼓勵。
-
嵌入式
+關注
關注
5046文章
18823瀏覽量
298699 -
RTThread
+關注
關注
7文章
132瀏覽量
40684
發布評論請先 登錄
相關推薦
評論