Arduino DIY吃雞神器
- 空中飛鼠
- 硬體準備
- 線路圖
- 程式控制
空中飛鼠
還在擔憂你的操作不行嗎?還在厭倦枯燥的操作么?想不想像實戰一樣,手中握著槍與人對戰?
下面帶你實作你的夢想,

硬體準備
說到增強游戲體感,拿著物體槍去戰斗,第一想到的就是任天堂的zapper了,但是他的價格與游戲設定,Emm…

想要實作體感控制,作為一名愛好者,當然是DIY,首先我們需要陀螺儀來感應操控的動作 ,然后就需要一個驅動器來幫助我們處理信號并傳給游戲主機,在這里我選擇的開發板是Arduino Pro Micro和陀螺儀ADXL345,當然從某寶上買回來得自己焊下引腳,

線路圖
當硬體準備好了之后就是怎么接線了

程式控制
下面就是程式控制了,先預裝好Arduino IDE,首先要參考兩個類
#include <mouseWheel.h>
#include <mousePress.h>
讀取ADXL345的XY值
y345 = -WireRead2( ADXAddressR, DATAX0,DATAX1);
x345 = WireRead2( ADXAddressR, DATAY0,DATAY1);
if(x345<0)
x345*=1.5;
if(y345>0)
y345*=1.5;
speedoX = constrain(pow(abs(x345),2)/100,0,12700);
speedoY = constrain(pow(abs(y345),2)/100,0,12700);
speedo();
判斷上下左右
if( x345 > value345X ){
x = -speedoxVal;
}else if( x345 < -value345X ){
x = speedoxVal;
}else
x = 0;
if( y345 > value345Y ){
y = -speedoyPos;
}else if( y345 < -value345Y ){
y = speedoyPos;
}else
y = 0;
左鍵右鍵連擊
myMouseLeft.press_mouse();
myMouseRight.press_mouse();
wheel = mywheel.read_wheel();
if( millis() - clickTime > clickSpeedo ){
if(!digitalRead(CLICK))
Mouse.click();
clickTime = millis();
}
PWM控制滑鼠速度
if( (micros() - ctrlMouseTimeX >= PWMSTOPX*80)//“停”
&& valuePWMX == true){
ctrlMouseTimeX = micros();
valuePWMX = !valuePWMX;
xVal = x;
}else if ( (micros() - ctrlMouseTimeX >= PWMGOX *80)//“走”
&& valuePWMX == false ){
ctrlMouseTimeX = micros();
valuePWMX = !valuePWMX;
xVal = 0;
}
if( (micros() - ctrlMouseTimeY >= PWMSTOPY*80) //“停”
&& valuePWMY == true){
ctrlMouseTimeY = micros();
valuePWMY = !valuePWMY;
yPos = y;
}else if ( (micros() - ctrlMouseTimeY >= PWMGOY *80)//“走”
&& valuePWMY == false ){
ctrlMouseTimeY = micros();
valuePWMY = !valuePWMY;
yPos = 0;
}
滑鼠移動
Mouse.move( xVal ,yPos ,wheel );
想要原始碼的同學點 這里下原始碼(賺點積分),,,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260676.html
標籤:其他
