0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享一個通過食指的移動來控制鼠標(biāo)指針的項目

科技觀察員 ? 來源:Magform ? 作者:Magform ? 2022-09-19 15:50 ? 次閱讀

這是我的第一個項目,ThimbleKrox,它是一個頂針,可以讓你通過食指(或任何手指)的移動來控制鼠標(biāo)指針。

第 1 步:所需材料和工具

所需材料:

Arduino

MPU-6050

用于連接 Arduino 和 PC 的電纜(微型 USB 到 USB)

跳線(連接 Arduino 和 MPU-6050)

一個松緊帶(如果你想將 Arduino 連接到你的手上)

所需工具:

安裝了 Arduino IDE 的計算機(用于啟動 Arduino 中的代碼)

烙鐵(僅當(dāng) Arduino 未預(yù)先組裝引腳連接器時)

3D 打印機(如果你想讓你的頂針看起來很酷)

第 2 步:連接

將 arduino 的引腳連接到 MPU-6050 的引腳:

Arduino的引腳VCC到引腳VCC

引腳 GND 到 GND

引腳 2 到 SDA

引腳 3 到 SCL。

pYYBAGMoHr2AfaMeAAKgYc2fItg182.png

第 3 步:3D 打?。蛇x)

如果您希望您的頂針看起來不錯,并且如果您有 3D 打印機,您可以打印物理頂針。

我做了兩個版本,一個是透明的,因此不需要打印支撐并且不太笨重,第二個是我嘗試用蒸汽朋克風(fēng)格做的而不讓它太笨重(它仍然比透明的更笨重一個),但是這個需要打印支持,并且只有在彩色時才能返回最好的(對于 PLA,我與蛋彩相處得很好)。兩者都需要與底部有兩個內(nèi)部突起的部分一起打印

pYYBAGMoHsKALNpcAAHDkXkUTeI203.png

第 4 步:組裝

使用 3D 打印頂針

要使用印刷頂針安裝所有東西,連接后,必須將 MPU-6050 插入頂針的上腔內(nèi),將電纜容納在下腔中

沒有 3D 打印的頂針

在這種情況下,組裝以更業(yè)余的方式完成,即將 MPU-6050 放置在感興趣手指的最后一個方陣并用膠帶或松緊帶將其擋住。

第 5 步:編碼和校準(zhǔn)

運行代碼的第一件事是安裝所需的庫,即Wire.h 、I2Cdev.h 、MPU6050.h和Mouse.h

完成此操作后,我建議加載 ThimbleKrox 校準(zhǔn)代碼,戴上頂針并打開串行監(jiān)視器(Ctrl + Shift + M)。

您現(xiàn)在應(yīng)該看到如下內(nèi)容:

right | gx = 3165 gy = 469 gz = -1055 | ax = 15232 ay = 2064 az = -4496

如果正確校準(zhǔn),您希望指針移動的方向顯示在哪里,然后是校準(zhǔn)所需的一些值。

現(xiàn)在您必須重新打開代碼并轉(zhuǎn)到標(biāo)有“//校準(zhǔn)線”的行并更改數(shù)值,直到獲得正確的方向。(每次更改代碼中的值時,都需要在 Arduino 中重新上傳)

串行監(jiān)視器:

left | gx = 3165 gy = 469 gz = -1055 | ax = 5232 ay = 2064 az = -4496

校準(zhǔn)代碼:

if (ax> = 15000) { // calibration line
right ();
}

串行監(jiān)視器標(biāo)記為“左”,但我們希望將此行標(biāo)記為“右”,因此我們需要將“15000”值更改為“5000”。這是因為,在這種情況下,我們必須確保檢測到的“ax”大于代碼中的值。我們知道它必須更大,因為在代碼中有一個主要標(biāo)志,我們必須查看串行監(jiān)視器的“ax”,因為在代碼中有“ax”。(只需更改代碼的數(shù)值)

在 Arduino 中重新加載代碼后,我們將擁有:

串行監(jiān)視器:

right | gx = 3165 gy = 469 gz = -1055 | ax = 5232 ay = 2064 az = -4496

校準(zhǔn)代碼:

if (ax> = 5000) { // calibration line
right ();
}

當(dāng)校準(zhǔn)代碼中的所有校準(zhǔn)線都已調(diào)整,因此校準(zhǔn)版本頂針起作用時,必須調(diào)整主代碼的值以匹配校準(zhǔn)代碼。

校準(zhǔn)代碼:

if (ax> = 5000) { // calibration line
right ();
}

主要代碼:

if (ax> = 15000) { // calibration line
right ();
}

主代碼必須更改為:

if (ax> = 5000) { // calibration line
right ();
}

現(xiàn)在是時候上傳主代碼了

第 6 步:完成項目
現(xiàn)在是時候戴上你的手指控制鼠標(biāo)用它玩 PC 游戲了!

ThimbleKrox code:

//Code to control the mouse pointer through the movement of a finger
//To calibrate the device run "ThimbleKrox calibration code" and follow the tutorial found at https://www.hackster.io/projects/dd8881/
//The lines that need to be changed for calibration have "http://calibration line"
//code write by Magform

#include
#include
#include
#include

MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
int sensibility=10; //Change this value to change the sensitivity of the device

void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
if (!mpu.testConnection()) { //check connection with the MPU-6050, if there is no connection stop to work
while (1);
}
}

void up(){
Mouse.move(0, -sensibility);
}
void down(){
Mouse.move(0, sensibility);
}
void left(){
Mouse.move(-sensibility, 0);
}
void right(){
Mouse.move(sensibility, 0);
}


void loop() {
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

if(ax>=15000){ //calibration line
right();
}
if(ax<=-9000){ ? ? ? ? ? ? ? ? ? ? ? ? //calibration line
left();
}

if(ay<=-8000){ ? ? ? ? ? ? ? ? ? ? ? ? ?//calibration line
up();
}
if(ay>=10000){ //calibration line
down();
}

//uncomment the following lines to set the right click with a sprint up and the left click with a sprint down (Work in progress part)
/*
if(gy>=20000){ //calibration line
Mouse.click(MOUSE_RIGHT);
delay(100);
}
if(gy<=-20000){ ? ? ? ? ? ? ? ? ? ? ? ?//calibration line
Mouse.click(MOUSE_LEFT);
delay(100);
}
*/

delay(10);
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鼠標(biāo)
    +關(guān)注

    關(guān)注

    6

    文章

    587

    瀏覽量

    39580
  • 控制
    +關(guān)注

    關(guān)注

    4

    文章

    1005

    瀏覽量

    122511
  • MPU6050
    +關(guān)注

    關(guān)注

    38

    文章

    307

    瀏覽量

    70667
收藏 人收藏

    評論

    相關(guān)推薦

    創(chuàng)意手指鼠標(biāo),專給懶人設(shè)計的鼠標(biāo)創(chuàng)意

    ,小編給大家找到了這款創(chuàng)意手指鼠標(biāo),它突破了傳統(tǒng)的設(shè)計方式,讓你輕松的只使用兩根手指就能快捷操作。乍看起來這款手機鼠標(biāo)更像攝像頭,它可以被綁在
    發(fā)表于 10-22 14:21

    為什么鼠標(biāo)移動速度不樣,鼠標(biāo)移動同樣的距離,光標(biāo)移動距離不同?

    就是說光標(biāo)從屏幕左面滑到右面,鼠標(biāo)移動速度較慢的時候鼠標(biāo)移動距離比鼠標(biāo)移動速度較快的時候
    發(fā)表于 03-23 10:58

    移動鼠標(biāo)

    需要Labview程序,運行后鼠標(biāo)會不停的移動,自己試了試只能移動
    發(fā)表于 04-22 10:56

    請問匯編語言中指針如何移動

    = N*4),再通過 ADD A8,A4,A8這種方法移動,請問通常指針移動都需要這樣嗎,有沒有簡單
    發(fā)表于 06-20 04:01

    【求助】【LabVIEW】請問如何通過鼠標(biāo)拖曳移動不帶標(biāo)題欄的窗口?

    大家好,最近用LabVIEW做上位機,想做一個不帶標(biāo)題欄的登錄界面,界面的移動通過透明Button的
    發(fā)表于 12-27 17:12

    請問如何讓鼠標(biāo)指針隨著觸摸點移動?

    現(xiàn)在鼠標(biāo)和觸摸屏都能正常工作,觸摸的時候鼠標(biāo)指針不動。怎么才能讓指針隨著觸摸點移動是否有相應(yīng)的環(huán)境變量配置?還是需要在Qt程序中進行特別的處
    發(fā)表于 01-11 06:55

    CH573模擬USB鼠標(biāo)如何控制屏幕指針的絕對坐標(biāo)?

    請問CH573模擬usb鼠標(biāo),如何控制屏幕指針的絕對坐標(biāo)?就是想讓屏幕指針移動
    發(fā)表于 08-25 06:16

    通過鼠標(biāo)動作發(fā)出命令的程序

      在些比較不錯的瀏覽器中,出現(xiàn)了些新的功能,通過鼠標(biāo)動作(也稱鼠標(biāo)手勢Mouse Gestures)
    發(fā)表于 08-30 11:30 ?827次閱讀

    兩軸模擬陀螺儀的空中鼠標(biāo)指針控制方法研究

    兩軸模擬陀螺儀的空中鼠標(biāo)指針控制方法研究
    發(fā)表于 11-02 17:08 ?10次下載

    鼠標(biāo)加速度有什么用

    的位移越大。在Windows控制面板-鼠標(biāo)-指針選項-移動欄中有
    的頭像 發(fā)表于 05-18 09:38 ?8688次閱讀

    光電鼠標(biāo)的結(jié)構(gòu)組成及故障維修方法

    光電鼠標(biāo)(亦稱“光學(xué)鼠標(biāo)”)通過發(fā)光二極管和光電二極管檢測鼠標(biāo)對于
    的頭像 發(fā)表于 07-17 15:16 ?2.3w次閱讀

    Win10將效法蘋果的macOS提供“查找鼠標(biāo)指針”功能

    在macOS中,你可以將鼠標(biāo)指針放大,搖動鼠標(biāo)時可以輕松找到它。Windows 10中提供了種快速查找鼠標(biāo)
    的頭像 發(fā)表于 11-01 10:19 ?2195次閱讀

    C語言中的野指針是怎么的?

    )、malloc函數(shù)申請堆內(nèi)存返回的地址(但未使用free釋放,是在堆空間動態(tài)申請) 需要注意的是,野指針不是NULL指針,通常NULL指針可以使用if語句判斷,但是C語言中沒有任何
    的頭像 發(fā)表于 06-01 16:43 ?2460次閱讀

    調(diào)用安卓的方法獲取鼠標(biāo)指針坐標(biāo)

    利用view的OnGenericMotionListener方法給view設(shè)置監(jiān)聽,當(dāng)鼠標(biāo)在這個view上移動的時候. view就能獲取到鼠標(biāo)
    的頭像 發(fā)表于 03-03 13:43 ?2784次閱讀
    調(diào)用安卓的方法獲取<b class='flag-5'>鼠標(biāo)</b><b class='flag-5'>指針</b>坐標(biāo)

    函數(shù)指針指針函數(shù)是不是東西?

    函數(shù)指針的本質(zhì)是指針,就跟整型指針、字符指針樣,函數(shù)指針指向的是
    的頭像 發(fā)表于 01-03 16:35 ?429次閱讀
    函數(shù)<b class='flag-5'>指針</b>和<b class='flag-5'>指針</b>函數(shù)是不是<b class='flag-5'>一</b><b class='flag-5'>個</b>東西?