色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

如何使用Arduino Leonardo和MPU6050制作一個(gè)有線的手勢(shì)控制器

科技觀察員 ? 來(lái)源:八色木 ? 作者:八色木 ? 2022-04-03 17:02 ? 次閱讀

本文將向你展示如何使用Arduino Leonardo和MPU6050加速計(jì)/陀螺儀模塊來(lái)制作一個(gè)類(lèi)似于任天堂Wii控制器的手勢(shì)控制裝置。手勢(shì)控制裝置主要用于游戲、互動(dòng)活動(dòng)和一些基礎(chǔ)娛樂(lè)。幾年前,任天堂創(chuàng)造了一種全新的人機(jī)交互模式,手勢(shì)控制,它允許用戶在Wii控制器的幫助下,通過(guò)游戲手柄與游戲內(nèi)容進(jìn)行交互。Wii控制器使用一個(gè)加速度計(jì)來(lái)識(shí)別你當(dāng)前的手勢(shì),然后將手勢(shì)映射到游戲控制器上。下面,我們也將使用Arduino Leonardo和MPU6050模塊來(lái)制作一個(gè)有線的手勢(shì)控制器。

pYYBAGJIENyAZRFJAAOpv3UYVYw852.png

Arduino Leonardo

工作原理

該裝置依賴于兩個(gè)關(guān)鍵組件:MPU6050和Arduino Leonardo。MPU6050可以幫助我們收集控制裝置沿x軸和y軸移動(dòng)的三維姿態(tài)數(shù)據(jù)。然后,根據(jù)傳感器的值,我們可以控制光標(biāo)位置。要實(shí)現(xiàn)單擊鼠標(biāo)的效果,需要停止移動(dòng)光標(biāo)并將其鎖定在一個(gè)點(diǎn)上兩秒鐘(或者將它設(shè)置成一個(gè)按鈕)。

poYBAGJIEOSAMY9xAAOzfGj7BX8801.png

Arduino Leonardo 和 MPU6050

MPU6050是一個(gè)IMU傳感器,它基于MEMS技術(shù),包含有6個(gè)自由度,可以提供6個(gè)值作為輸出。這六個(gè)值中,三個(gè)來(lái)自加速度計(jì),其余三個(gè)來(lái)自陀螺儀。

Arduino Leonardo與Arduino Uno外形相同。Arduino Uno配備的是ATmega385芯片,而Leonardo配備了atmega32u4芯片。它有20個(gè)數(shù)字輸入/輸出引腳,20個(gè)引腳中,7個(gè)引腳可作為PWM輸出,12個(gè)引腳可作為模擬輸入,同時(shí)它板載了一個(gè)微型USB接口,一個(gè)電源插口,一個(gè)ICSP端口和一個(gè)復(fù)位按鈕。詳見(jiàn)

連接Arduino Leonardo和MPU6050

需要說(shuō)明:因?yàn)樵撗b置代碼中需要引入mouse.h庫(kù)文件,而該庫(kù)文件只支持ATmega32U4芯片,所以只有在基于ATmega32U4芯片的Arduino開(kāi)發(fā)板才能支持這個(gè)項(xiàng)目。因此,除了選擇Arduino Leonardo外你還可以使用 Arduino Pro Mini開(kāi)發(fā)板。

pYYBAGJIEOmAEZh5AAQRWWIb5DM762.png

Arduino Leonardo和MPU605電路連接圖

pYYBAGJIEO-AESsvAASmYK3_9YQ926.png

Arduino Leonardo和MPU605實(shí)物連接圖

上傳代碼

根據(jù)上面的圖連接好硬件后,就可以將你的Arduino Leonardo連接到電腦上,并將代碼上傳到你的Arduino上。代碼分為兩部分,第一部分是校準(zhǔn)代碼,第二部分是包點(diǎn)擊功能的代碼。首先上傳校準(zhǔn)代碼:

//calibrate_air_mouse

//calibrate_air_mouse

#include

#include

#include

#include

MPU6050 mpu;

int16_t ax, ay, az, gx, gy, gz;

int vx, vy;

void setup() {

Serial.begin(9600);

Wire.begin();

mpu.initialize();

if (!mpu.testConnection()) { while (1); }

}

void loop() {

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

vx = (gx+300)/150; // change 300 from 0 to 355

vy = -(gz-100)/150; // same here about "-100" from -355 to 0

Serial.print("gx = ");

Serial.print(gx);

Serial.print(" | gz = ");

Serial.print(gz);

Serial.print(" | X = ");

Serial.print(vx);

Serial.print(" | Y = ");

Serial.println(vy);

Mouse.move(vx, vy);

delay(20);

}

上傳代碼后,鼠標(biāo)指針就會(huì)映射到傳感器上。嘗試搖動(dòng)MPU傳感器模塊。如果正常,請(qǐng)可以接著上傳第二部分代碼。如果光標(biāo)不能與MPU6050的移動(dòng)而移動(dòng),那么需要更改源代碼中的一些值。可以打開(kāi)串口監(jiān)視器,確保可以x和y值可以歸零,也就是靜止?fàn)顟B(tài)。如果不能歸零,請(qǐng)根據(jù)校準(zhǔn)情況修改源代碼中的 vx 或 vy 的值。位置如下:

vx = (gx+300)/150; // change 300 from 0 to 355

vy = -(gz-100)/150; // same here about "-100" from -355 to 0

校準(zhǔn)完成后,就可以上傳第二部分的代碼,這段代碼還添加了單擊功能。單擊時(shí),是將光標(biāo)停留在計(jì)算機(jī)屏幕上的某個(gè)點(diǎn)上約兩秒鐘。代碼將檢查光標(biāo)是否在屏幕的10×10像素區(qū)域內(nèi)停留了x秒的延遲,來(lái)執(zhí)行點(diǎn)擊效果的。

//air_mouse_with_click

#include

#include

#include

#include

MPU6050 mpu;

int16_t ax, ay, az, gx, gy, gz;

int vx, vy, vx_prec, vy_prec;

int count=0;

void setup() {

Serial.begin(9600);

Wire.begin();

mpu.initialize();

if (!mpu.testConnection()) {

while (1);

}

}

void loop() {

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

vx = (gx+300)/200;

vy = -(gz-100)/200;

Mouse.move(vx, vy);

if ( (vx_prec-5)<=vx && vx<=vx_prec+5 && (vy_prec-5)<=vy && vy<=vy_prec+5) { // for checking the cursor doesn't move too much from its actual position: (in this case a 10 pixel square)

count++;

if(count == 100){ // the click will happen after 2 seconds the pointer has stopped in the 10px square

if (!Mouse.isPressed(MOUSE_LEFT)) {

Mouse.press(MOUSE_LEFT);

count = 0;

}

}

else {

if (Mouse.isPressed(MOUSE_LEFT)) {

Mouse.release(MOUSE_LEFT);

}

}

}

else {

vx_prec = vx; // updating values to check the position of the pointer and allow the click

vy_prec = vy;

count = 0;

}

delay(20);

}

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

    關(guān)注

    0

    文章

    52

    瀏覽量

    9247
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6468

    瀏覽量

    186952
  • MPU6050
    +關(guān)注

    關(guān)注

    39

    文章

    307

    瀏覽量

    71363
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    手勢(shì)小車(chē)—如何用藍(lán)牙將MPU6050的數(shù)據(jù)傳送至89C51單片機(jī)

    一個(gè)手勢(shì)控制的小車(chē)用有線MPU6050連接至單片機(jī)已實(shí)現(xiàn)了對(duì)小車(chē)的控制,現(xiàn)在要實(shí)現(xiàn)無(wú)線不知道
    發(fā)表于 07-06 22:47

    怎樣使用MPU6050陀螺儀自制Arduino數(shù)字量角

    MPU6050慣性單元是個(gè)3軸加速度計(jì)和個(gè)3軸陀螺儀組合的單元。它還包含溫度傳感和DCM,
    發(fā)表于 06-28 10:14

    IIC控制器MPU6050的相關(guān)資料推薦

    文章目錄4412下的IIC控制器主機(jī)發(fā)送和接收的流程圖IIC寄存詳解MPU6050原理MPU6050讀寫(xiě)時(shí)序4412下的IIC控制器主機(jī)發(fā)
    發(fā)表于 02-10 07:53

    MPU6050(硬件IIC)

    MPU6050(硬件IIC)MPU6050(硬件IIC)
    發(fā)表于 04-02 16:29 ?79次下載

    ArduinoMPU6050的通信

    為避免糾纏于電路細(xì)節(jié),我們直接使用集成的MPU6050模塊。MPU6050的數(shù)據(jù)接口用的是I2C總線協(xié)議,因此我們需要Wire程序庫(kù)的幫助來(lái)實(shí)現(xiàn)ArduinoMPU6050之間的通信
    發(fā)表于 11-07 14:25 ?7798次閱讀
    <b class='flag-5'>Arduino</b>與<b class='flag-5'>MPU6050</b>的通信

    使用Arduino讀取MPU6050數(shù)據(jù)的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用Arduino讀取MPU6050數(shù)據(jù)的程序免費(fèi)下載。
    發(fā)表于 07-24 17:17 ?27次下載
    使用<b class='flag-5'>Arduino</b>讀取<b class='flag-5'>MPU6050</b>數(shù)據(jù)的程序免費(fèi)下載

    MPU6050簡(jiǎn)介

    MPU6050簡(jiǎn)介什么是MPU6050MPU6050的特點(diǎn)MPU6050框圖MPU6050初始化MPU6050—DMP使用介紹
    發(fā)表于 12-06 11:51 ?76次下載
    <b class='flag-5'>MPU6050</b>簡(jiǎn)介

    23.IIC控制器MPU6050

    文章目錄4412下的IIC控制器主機(jī)發(fā)送和接收的流程圖IIC寄存詳解MPU6050原理MPU6050讀寫(xiě)時(shí)序4412下的IIC控制器主機(jī)發(fā)
    發(fā)表于 12-06 15:21 ?10次下載
    23.IIC<b class='flag-5'>控制器</b>和<b class='flag-5'>MPU6050</b>

    如何使用MPU6050Arduino構(gòu)建個(gè)數(shù)字量角器

    MPU6050款 集成 了 IC 3 軸加速度計(jì)和 3 軸陀螺儀的 單元。它還包含個(gè)溫度傳感
    發(fā)表于 08-31 15:42 ?5533次閱讀
    如何使用<b class='flag-5'>MPU6050</b>和<b class='flag-5'>Arduino</b>構(gòu)建<b class='flag-5'>一</b><b class='flag-5'>個(gè)數(shù)字量角器</b>

    使用Arduino Leonardo和紅外傳感制作手勢(shì)控制設(shè)備

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Leonardo和紅外傳感制作手勢(shì)控制設(shè)備.zip》資
    發(fā)表于 10-26 15:57 ?0次下載
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>Leonardo</b>和紅外傳感<b class='flag-5'>器</b><b class='flag-5'>制作</b><b class='flag-5'>手勢(shì)</b><b class='flag-5'>控制</b>設(shè)備

    簡(jiǎn)單的MPU6050 IMU Arduino機(jī)器人更新

    電子發(fā)燒友網(wǎng)站提供《簡(jiǎn)單的MPU6050 IMU Arduino機(jī)器人更新.zip》資料免費(fèi)下載
    發(fā)表于 11-03 11:53 ?0次下載
    簡(jiǎn)單的<b class='flag-5'>MPU6050</b> IMU <b class='flag-5'>Arduino</b>機(jī)器人更新

    MPU6050Arduino陀螺儀游戲

    電子發(fā)燒友網(wǎng)站提供《帶MPU6050Arduino陀螺儀游戲.zip》資料免費(fèi)下載
    發(fā)表于 11-11 11:20 ?1次下載
    帶<b class='flag-5'>MPU6050</b>的<b class='flag-5'>Arduino</b>陀螺儀游戲

    使用arduinompu6050和python控制游戲

    電子發(fā)燒友網(wǎng)站提供《使用arduinompu6050和python控制游戲.zip》資料免費(fèi)下載
    發(fā)表于 12-13 11:04 ?1次下載
    使用<b class='flag-5'>arduino</b>、<b class='flag-5'>mpu6050</b>和python<b class='flag-5'>控制</b>游戲

    如何連接nRF24L01和MPU6050進(jìn)行手勢(shì)控制

    電子發(fā)燒友網(wǎng)站提供《如何連接nRF24L01和MPU6050進(jìn)行手勢(shì)控制.zip》資料免費(fèi)下載
    發(fā)表于 01-31 09:19 ?1次下載
    如何連接nRF24L01和<b class='flag-5'>MPU6050</b>進(jìn)行<b class='flag-5'>手勢(shì)</b><b class='flag-5'>控制</b>

    ArduinoMPU6050控制伺服電機(jī)

    電子發(fā)燒友網(wǎng)站提供《用ArduinoMPU6050控制伺服電機(jī).zip》資料免費(fèi)下載
    發(fā)表于 07-03 10:59 ?1次下載
    用<b class='flag-5'>Arduino</b>和<b class='flag-5'>MPU6050</b><b class='flag-5'>控制</b>伺服電機(jī)
    主站蜘蛛池模板: 一久久| 人与禽物videos另类| 99久久久免费精品免费| 欧美日韩免费看| 大香网伊人久久综合观看| 受被攻做到腿发颤高h文| 国产美女裸身网站免费观看视频| 亚洲AV怡红院AV男人的天堂| 火影小南被爆羞羞网站| 最近的2019中文字幕国语HD| 欧美一道本一区二区三区| 广东95后小情侣酒店自拍流出| 亚洲 在线 日韩 欧美| 久久国产精品无码视欧美| 999久久免费高清热精品| 日日噜噜夜夜狠狠视频| 国产亚洲精品免费视频| 最新国自产拍 高清完整版| 妻中蜜在线播放| 国产女人乱人伦精品一区二区| 亚洲中字慕日产2020| 免费韩伦影院在线观看| 公粗挺进了我的密道在线播放贝壳 | 日本高清无人区影院| 国产国产乱老熟视频网站| 杨幂视频1分11未删减在线观看| 猫咪av永久最新域名| 大学生一级毛片免费看| 亚洲国产中文在线视频| 麻豆精品传媒2021网站入口| 成人无码精品一区二区在线观看| 校花在公车上被内射好舒服| 久久视频这里只精品99热在线| WRITEAS塞红酒瓶| 丫鬟粗大狠狠贯穿h| 美国z0069| 国产精品人妻一区免费看8C0M| 影音先锋xfplay影院av| 日本粉嫩学生毛绒绒| 狠狠干.in| YELLOW视频在线观看最新|