資料介紹
描述
本教程是關(guān)于構(gòu)建基于 esp32 的 BLE 鼠標(biāo),與使用傳統(tǒng)方法使用光學(xué)傳感器構(gòu)建鼠標(biāo)不同,此鼠標(biāo)基于嵌入在定制 3D 打印鼠標(biāo)墊中的磁鐵工作。
請務(wù)必閱讀到本文末尾,以了解這款鼠標(biāo)是如何從頭開始構(gòu)建的,并了解如何僅使用單個磁極和一堆霍爾效應(yīng)傳感器來導(dǎo)航磁性表面!
補(bǔ)給品
這是可以幫助您輕松完成此項目的產(chǎn)品列表
(會員鏈接)
3d 打印機(jī):
打印機(jī)升級:
橙色燈絲
Esp32:
霍爾效應(yīng)傳感器:
磁鐵:
18650 電池座:
18650 單元:
按鈕:
按鈕:
cp2102:
Tp4056:
第 1 步:光學(xué)鼠標(biāo)如何工作?
首先,我們來談?wù)剛鹘y(tǒng)鼠標(biāo)的工作原理。
如果您看一下底部,您可能已經(jīng)注意到鼠標(biāo)發(fā)出華麗的紅光。這是鼠標(biāo)內(nèi)部的光學(xué)傳感器使用的光來確定運動。但它是如何工作的?
最初,當(dāng)我想到它時,我認(rèn)為它類似于線路跟隨器機(jī)器人中使用的 IR 傳感器,或者可能更復(fù)雜一些,例如 IC 中的 LED 和陣列以及光傳感器,最后可能是一些奇特的算法檢測運動。
但是當(dāng)我第一次聽到這項工作時,我被所使用的技術(shù)所震撼。所以,如果你還沒有聽說過,讓我破壞它。
第 2 步:在光學(xué)鼠標(biāo)內(nèi)部
如果你打開鼠標(biāo),你會看到一個底部有一個小凹口的 IC,這是相機(jī)的外殼,當(dāng)你將它與實際的相機(jī)進(jìn)行比較時,這種捕捉方式太少了細(xì)節(jié)。因為這不是為了拍攝人和貓的照片,所以它是用來拍攝鼠標(biāo)使用表面上的圖案和微小凹槽的照片。一旦拍照,它就會應(yīng)用一種稱為光流的算法,該算法通過比較它在連續(xù)運動中拍攝的圖像幀來確定鼠標(biāo)的方向。
這真的讓我很吃驚,因為光流算法要檢測相機(jī)移動的方向,兩個連續(xù)的幀必須非常接近。如果它們離得很遠(yuǎn),那么算法就不能很好地工作。由于這個原因,鼠標(biāo)光學(xué)傳感器必須每秒捕獲近 2000 到 6000 幀。這比智能手機(jī)相機(jī)快得多。所以,從現(xiàn)在開始,當(dāng)你是一只鼠標(biāo)的時候,你可以認(rèn)為自己是一個高速攝像機(jī)操作員。
第 3 步:更換光學(xué)傳感器 - 故障
所以,從項目開始。我最初的想法是永遠(yuǎn)不要使用磁鐵。
本來只想做一個BLE藍(lán)牙鼠標(biāo),但是在設(shè)計鼠標(biāo)的時候,很快就遇到了找不到光學(xué)傳感器的問題。它并不便宜,而且 Arduino 社區(qū)最熟悉的那個現(xiàn)在已經(jīng)過時了。
所以我的天才大腦認(rèn)為我可以使用 ESP32 CAM 構(gòu)建光學(xué)傳感器。即使我至少可以獲得一些不錯的幀速率,我也會非常高興,因此我可以更換 ESP32 CAM 的鏡頭并制作一款速度非常慢/響應(yīng)速度較慢的鼠標(biāo)。但是在玩了一段時間的 ESP32 CAM 之后,我認(rèn)為從 ESP32 CAM 開始是一個非常糟糕的主意。
放棄 ESP32 CAM 的主要原因:
- ESP32 CAM 在捕捉高幀率照片時不可靠,我可以推的最大值是 24,分辨率非常低。
- 第二個原因是光流算法不能很好地工作并且多次使 esp32 崩潰。
- 最后,大多數(shù) esp32 cam 的鏡頭都用強(qiáng)力膠固定在傳感器上。
第4步:磁鐵!!!
由于我沒有光學(xué)傳感器的選擇,這讓我陷入絕望的境地,無法找到檢測鼠標(biāo)運動的方法,因為電子設(shè)備的重置和編碼非常簡單。這只是添加一些按鈕和集成 BLE。
我絕對可以使用任何一種舊方法來構(gòu)建鼠標(biāo)。但無論如何,該項目不會像我一開始想要的那樣高度可用。所以我決定制作一個鼠標(biāo),它使用一些獨特的方式來檢測運動。
就個人而言,我最喜歡用磁鐵做實驗,而且非常令人滿意。此外,我在以前的項目中使用過帶有電子設(shè)備的磁鐵。
第 5 步:使磁鐵有用
為了使這個磁鐵有用,我必須將磁場轉(zhuǎn)換為電信號,為此我們需要使用霍爾效應(yīng)傳感器。確切地說,我將使用 49E 線性霍爾效應(yīng)傳感器。
該傳感器會將磁場強(qiáng)度轉(zhuǎn)換為模擬電壓,稍后我們可以使用微控制器讀取該電壓。
經(jīng)過幾次實驗并使用磁鐵和霍爾效應(yīng)傳感器后,我發(fā)現(xiàn) 2 個磁鐵之間的距離合適,當(dāng)我穿過它們時,霍爾效應(yīng)傳感器的值會不斷變化。這非常重要,因為如果沒有這種值的變化,檢測運動是完全不可能的。
在我的例子中,距離是 3 毫米,對您來說可能會有所不同,因為霍爾效應(yīng)傳感器的值取決于磁鐵的直徑、厚度和材料。
第 6 步:構(gòu)建磁性鼠標(biāo)墊
我在 Fusion 360 中設(shè)計了一個可以嵌入 49 個磁鐵的墊子,這給了我們 7 行和 7 列,每個磁鐵之間的距離是 3mm。49只是一個任意數(shù)字,可以增加磁鐵的數(shù)量來增加鼠標(biāo)墊的尺寸。
下一步是 3d 打印。并將磁鐵放置到位。只需確保將磁鐵放置在所有北極或南極都面向 u 的位置,這將確保我們有一個單極表面,這將使我們更容易檢測運動。
注意:對我來說,將磁鐵放置在正確的位置是一項艱巨的任務(wù),因為強(qiáng)磁場會使磁鐵相互坍塌。所以為了讓它不那么乏味,我不得不用一些膠帶把它們暫時固定在適當(dāng)?shù)奈恢谩?/font>
第 7 步:編碼器類比
通過這種當(dāng)前設(shè)置,我們可以看到在磁單極子表面上導(dǎo)航的邏輯
這個想法受到旋轉(zhuǎn)編碼器機(jī)制的極大啟發(fā)。如果您以前使用過旋轉(zhuǎn)編碼器機(jī)構(gòu),您就會知道它們是根據(jù)相位差原理工作的。來自編碼器的任一信號將滯后或超前,通過使用此相位差,我們可以確定我們是順時針還是逆時針方向轉(zhuǎn)動編碼器。我在描述中放置了一個鏈接,您可以在其中了解有關(guān)旋轉(zhuǎn)編碼器的更多信息。
現(xiàn)在,類似地,我們將使用 4 個具有不同相位的單個,其中兩個用于檢測左、右,另外兩個用于檢測上、下。
注意:編碼器如何工作
第 8 步:找出霍爾效應(yīng)傳感器的運動和方向
起初,很難注意到或有點難以想象我們?nèi)绾问褂么盆F實現(xiàn)編碼器類比。但是看看它們是如何工作的還是很有趣的。
首先,繪制出焊盤上所有磁鐵的磁場。當(dāng)我們將傳感器掃過網(wǎng)格時,這應(yīng)該會給我們一個近似正弦波,其中正弦波的頂峰是霍爾效應(yīng)傳感器讀取的最大磁場,底部波谷是霍爾讀取的最小磁場效應(yīng)傳感器。
現(xiàn)在有了這個霍爾效應(yīng)傳感器值,我們可以通過比較過去和現(xiàn)在的讀數(shù)來找到霍爾效應(yīng)傳感器的運動和方向。
第 9 步:使用單個傳感器的問題
我剛才說我們可以通過一個傳感器找到霍爾效應(yīng)傳感器的方向和運動。因此,很容易假設(shè)我們只需使用 2 個傳感器就可以找到所有四個方向,以及為什么兄弟使用編碼器機(jī)制。
但這就是事情變得棘手的地方。
如果我將兩個傳感器固定在同一平面上并開始移動平面,您可以看到霍爾效應(yīng)傳感器的值都發(fā)生了變化,無論是從左到右還是從上到下。這使得確定鼠標(biāo)確切移動的方向變得非常復(fù)雜。
為了解決這個問題,我將添加另一組霍爾效應(yīng)傳感器。我們將使用其中兩個來檢測左右運動,其余兩個用于檢測上下運動。
第 10 步:添加更多對霍爾效應(yīng)傳感器
這組額外的傳感器將在讀數(shù)中產(chǎn)生偏移,如果您看到左右傳感器一起讀數(shù),當(dāng)我左右移動鼠標(biāo)時,它們中的任何一個都會領(lǐng)先或落后。確切地說,這也適用于 up 和 down 。我們也可以使用單個傳感器來做到這一點。
有趣的是,相移僅發(fā)生在一組傳感器上,當(dāng)平面沿單個方向(上/下或左/右)移動時,讀數(shù)具有相移,而對于剩余的一組傳感器, [理想情況下]不會發(fā)生相移。
因此,通過以這種方式布置傳感器,我們可以檢測到用于在屏幕上向各個方向移動鼠標(biāo)的所有 4 個方向。
如果您覺得難以理解,我建議您下載 CAD 模型并自己嘗試。
第 11 步:BLE 鼠標(biāo)的電子設(shè)備
不管怎樣,既然鼠標(biāo)的運動已經(jīng)弄清楚了,剩下的電路就很容易了!
只需為 esp32 添加一些按鈕、電池和充電電路。您可以查看電路圖以更好地理解(這些電路大部分用于我之前的項目中)。
第 12 步:使用 PCBway 制造 PCB
一旦電路和PCB布局準(zhǔn)備就緒。我發(fā)送了用于制造的 Gerber 文件,PCBway慷慨地贊助了這個項目。
因此,如果您的項目需要定制 PCB,他們提供 10 個定制 PCB,價格低至 5 美元,并且您可以為您的 PCB 選擇各種定制,例如阻焊層、絲層和表面光潔度的顏色。在您的第一個訂單中,您將獲得 5 美元的優(yōu)惠券!因此,基本上,您只需在第一個訂單期間支付運費。因此,請查看描述中的鏈接以訪問他們的網(wǎng)站。
一周后,我收到了我的多氯聯(lián)苯。除了 PCB,我還收到了一個閃亮的鋁模板,便于焊接。
第 13 步:組裝和焊接
現(xiàn)在,是采購組件的時候了,由于某種原因,這個項目在獲取組件方面遇到了很多問題,有一些在運輸過程中丟失了,還有一些在定制中停留了太久。無論如何,我想盡快完成這個項目,所以我將不使用那些剩余的組件。
注意:出于同樣的原因,我沒有包含該項目的 Gerber 文件。但無論如何,我用更容易/更容易獲得的組件更新了電路圖。所以,我很快也會嘗試重建 PCB。
第 14 步:對 ESP32 BLE 鼠標(biāo)進(jìn)行編程
對于代碼,第一步是清理信號。
在這里,您可以使用不同類型的濾波器和數(shù)字信號處理方法來清除噪聲。但為了保持簡單和快速,我將通過平均信號來平滑信號。然后我使用了旋轉(zhuǎn)編碼器示例代碼并對其進(jìn)行了一些修改,以使用所有四個傳感器來檢測運動。老實說,這是我一段時間以來寫的最糟糕的代碼之一,因為在拖了這個項目太久之后我失去了耐心。
無論如何,在為按鈕添加一些 esp32 BLE 庫和附加代碼之后,我們就完成了!
只需上傳代碼就可以了。
第 15 步:測試 BLE 鼠標(biāo)
好吧,我絕對認(rèn)為運動檢測會更好。但至少它有效!和其他功能,如左鍵單擊、右鍵單擊滾動單擊效果很好。[我會盡快更新視頻]
第 16 步:最后的想法
這個項目無論如何都不完美。我會說它也只有 50% 的工作/準(zhǔn)確度,我不確定是否可以像實際鼠標(biāo)一樣進(jìn)行平滑移動,但我可以做幾件事。首先我可以回過頭來復(fù)習(xí)一下我對濾波器和數(shù)字信號處理的了解,讓來自傳感器的信號更好,使鼠標(biāo)移動更流暢。或者其次,我可以嘗試其他類型的傳感器,我目前正在尋找替代品,如 IR 傳感器、激光等。
在評論部分讓我知道您對此的看法。
我希望至少這篇文章能給你一些新的想法和不同的方法來構(gòu)建鼠標(biāo)。請務(wù)必閱讀更多即將發(fā)布的教程,并確保查看我的Youtube 頻道以獲取更多類似內(nèi)容。
?
- 帶有ESP32 CAM的超級簡單安全攝像機(jī)
- 帶有ESP32的Arduino物聯(lián)網(wǎng)云
- 帶有ESP32和Thingspeak的AGSM
- 帶有ESP32 CAM和Telegram的相機(jī)陷阱
- 帶有ESP32的Discord安全攝像頭
- 樂鑫ESP32-MINI-1參考設(shè)計
- ESP32 BT/BLE雙模藍(lán)牙共存說明
- esp32-s3_datasheet
- 帶有ESP32 CAM的笨拙但很棒的傻瓜相機(jī)
- ESP32作為從機(jī)實現(xiàn)BLE藍(lán)牙功能淺析
- ESP32 BLE藍(lán)牙 使用AT指令與其他BLE藍(lán)牙模塊透傳 配置教程
- 帶有BME280的ESP32 Web服務(wù)器的高級氣象站 18次下載
- 紅外遙控鼠標(biāo)器的原理詳細(xì)說明
- 無線鼠標(biāo)的設(shè)計與實現(xiàn) 39次下載
- 鼠標(biāo)接口
- ESP32能取代STM32嗎?哪個更好? 2373次閱讀
- ESP32-C3開發(fā)板設(shè)計指南 3649次閱讀
- 調(diào)用安卓的方法獲取鼠標(biāo)指針坐標(biāo) 2759次閱讀
- 使用ESP32實現(xiàn)UDP通信的方法 5723次閱讀
- 鼠標(biāo)按鍵的“靈動”用法 2569次閱讀
- ESP8266/ESP32自動下載原理 4249次閱讀
- 如何自己制作無線鼠標(biāo)和鍵盤 1.5w次閱讀
- 鼠標(biāo)的分類_鼠標(biāo)的工作原理是什么 1.1w次閱讀
- 光電鼠標(biāo)的結(jié)構(gòu)組成及故障維修方法 2.2w次閱讀
- 鼠標(biāo)的工作原理及使用注意事項 1.7w次閱讀
- 淺談鼠標(biāo)技術(shù)的發(fā)展簡史 2.4w次閱讀
- diy可穿戴鼠標(biāo)制作全過程 1.6w次閱讀
- 非常簡單!如何制作一個會發(fā)光的鼠標(biāo)墊? 8328次閱讀
- 無線鼠標(biāo)電路是如何工作的 9296次閱讀
- 空中鼠標(biāo)原理及問題 7955次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多