步驟1:焊接。..。
首先將USB電纜剝開(kāi)這將是黑線,紅線,白線和綠線。還會(huì)有一些屏蔽層和屏蔽層接地線(通常不覆蓋),您可以減少使用。剝下四根導(dǎo)線中每根導(dǎo)線的大約1/8英寸的塑料。
接下來(lái),您需要焊接二極管以串聯(lián)-》-》,然后焊接帶有線的一側(cè)以固定1和USB電纜中未與紅色導(dǎo)線相接的一側(cè)****在焊接之前,確保二極管繞線正確****
現(xiàn)在您可以將白色導(dǎo)線焊接至引腳2,綠色將導(dǎo)線連接到引腳3,將黑色導(dǎo)線連接到引腳4
也將一根導(dǎo)線也焊接到引腳5-7,請(qǐng)確保它們足夠長(zhǎng)以連接到您的arduino
第2步:代碼
/*用于與xbox 360 RF模塊通信的Arduino代碼。
(yaywoop)的原始工作/亞歷山大·馬丁內(nèi)斯(Alexander Martinez)的其他想法-由dilandou修改(www.dilandou .com,www.diru.org/wordpress)
首先發(fā)送LED初始化代碼,然后發(fā)送LED啟動(dòng)動(dòng)畫(huà)代碼,然后休眠直到按下按鈕以同步命令。
RF模塊必須由3.3V供電,兩個(gè)二極管與USB 5v串聯(lián)即可。將USB線連接到主機(jī),將數(shù)據(jù)和串行線連接到Arduino。
當(dāng)然,請(qǐng)確保具有公共接地*/
#include
#define sync_pin 2//電源按鈕改用于同步按鈕(模塊上的引腳5)
#define data_pin 3//數(shù)據(jù)線(模塊上的引腳6)
#define clock_pin 4//時(shí)鐘線(上的引腳7模塊)
int led_cmd [10] = {0,0,1,0,0,0,0,1,0,0};//激活/初始化LED,使中心LED點(diǎn)亮。
int anim_cmd [10] = {0,0,1,0,0,0,0,1,0,1};//在光環(huán)上制作啟動(dòng)動(dòng)畫(huà)。
int sync_cmd [10] = {0,0,0,0,0,0,0,1,0,0};//啟動(dòng)同步過(guò)程。
volatile布爾型sync_enable = 0;
void sendData(int cmd_do []){
pinMode(data_pin,OUTPUT);
digitalWrite(data_pin,LOW);//開(kāi)始發(fā)送數(shù)據(jù)。
int prev = 1;
for(int i = 0; i 《10; i ++){
while(prev == digitalRead(clock_pin)){}//檢測(cè)變化in clock
prev = digitalRead(clock_pin);
//應(yīng)該在時(shí)鐘的下降沿之后,所以現(xiàn)在發(fā)送數(shù)據(jù)位
digitalWrite(data_pin,cmd_do [i]);
while(prev == digitalRead(clock_pin)){}//檢測(cè)時(shí)鐘的上升沿
prev = digitalRead(clock_pin);
}
digitalWrite(data_pin,HIGH);
pinMode(data_pin,INPUT);
}
void initLEDs(){ delay(50);
sendData(anim_cmd);
delay(50);
}
voidakeUp(){
sync_enable = 1;
}
void sleepNow(){
set_sleep_mode(SLEEP_MODE_PWR_DOWN);//設(shè)置睡眠模式
sleep_enable();//啟用睡眠位
attachInterrupt(0,akeup,LOW);
sleep_mode();
sleep_disable();//禁用睡眠位
detachInterrupt(0);//禁用引腳2上的中斷0
}
void setup(){
Serial.begin(9600);
pinMode(sync_pin,INPUT);
digitalWrite(sync_pin,HIGH);
pinMode(data_pin,INPUT);
pinMode(clock_pin,INPUT);
delay(2000);
initLEDs();
//sendData(sync_cmd);
}
void loop(){
Serial.println(“ Sleeping?!保?
sleepNow();
delay(200);
if(sync_enable == 1){
串行.println(“ Syncing?!保?
sendData(sync_cmd);
sync_enable = 0;
}
}
或者您可以從這里獲取它http://diru.org/wordpress/hacking/xbox-360-rf-module-arduino/
您將需要使用此代碼對(duì)arduino進(jìn)行編程
我并未提出此代碼,因此該代碼的全部功勞歸于dilandou和Alex Martinez
第3步:軟件
下載此http://www.microsoft.com/hardware/zh-cn/d/xbox-360-wireless-controller-對(duì)于Windows
并在程序文件中的安裝文件夾(Microsoft Xbox 360 Acessories)中轉(zhuǎn)到
Xusb21.inf,這是該軟件的驅(qū)動(dòng)程序文件您將對(duì)其進(jìn)行修改,以便它可以識(shí)別您的硬件
使用文本編輯器或類似Notepad ++(推薦)的程序打開(kāi)它(建議)
找到這些標(biāo)頭[MSFT.NTx86.6.0],[MSFT.NTamd64.6.0], [MSFT.NTx86]和[MSFT.NTamd64]。
您將替換每行下的5行代碼
原始代碼如下所示:
%XUSB21DeviceName.Wired%= CC_Install,USB Vid_045E&Pid_028E
%XUSB21.DeviceName%= CC_Install,USB Vid_045E&Pid_0719
%XUSB21.DeviceName.Wired%= CC_Install,USB MS_COMP_XUSB10
%XUSB21.DeviceName%= CC_Install,USB MS_COMP_XUSB20 br》%XUSB21.DeviceName.Jump%= CC_Install,USB Vid_045E&Pid_028F
您要放置的位置看起來(lái)像這樣
%XUSB21.DeviceName.Wired%= CC_Install,USB Vid_045E&Pid_0291
%XUSB21。 DeviceName%= CC_Install,USB Vid_045E&Pid_0291
%XUSB21.DeviceName.Wired%= CC_Install,USB UNKNOWN
%XUSB21.DeviceName%= CC_Install,USB UNKNOWN
現(xiàn)在保存(確保另存為.inf文件,否則將無(wú)法正常工作)
現(xiàn)在將三根多余的電線連接起來(lái)n將RF模塊連接到arduino(如果尚未將usb電纜插入計(jì)算機(jī)),它應(yīng)該會(huì)亮起,但控制器仍無(wú)法同步
更改Microsoft Xbox 360 Acessories文件夾,以使其不再是只讀的
現(xiàn)在打開(kāi)在設(shè)備管理器中找到未識(shí)別的USB設(shè)備(帶有黃色三角形的USB設(shè)備)
右鍵單擊并選擇更新驅(qū)動(dòng)程序,然后在“更新驅(qū)動(dòng)程序軟件”窗口中選擇瀏覽我的計(jì)算機(jī),然后讓我從設(shè)備驅(qū)動(dòng)程序列表中進(jìn)行選擇,然后選擇顯示全部然后有磁盤(pán)
最后導(dǎo)航到修改后的Xusb21.inf文件,然后選擇并安裝
在安裝驅(qū)動(dòng)程序后,控制器應(yīng)與RF模塊同步,只需按下電源按鈕即可,該按鈕已被重新用作同步按鈕并像同步到xbox一樣進(jìn)行同步
現(xiàn)在,它應(yīng)該可以在允許您使用游戲手柄的任何游戲上使用
第4步:解釋和積分
圖片是我在面包板上的項(xiàng)目基臺(tái)。..我正在計(jì)劃清理它,并可能將它放在一個(gè)很好的案例中,對(duì)我來(lái)說(shuō),這是一個(gè)非常有用的硬件(我喜歡xbox控制器以及PC上的bestheda游戲的大量mod,例如輻射3/新維加斯和skyrim/morriowind)
rf模塊的工作原理與任何其他USB設(shè)備一樣,只要您具有驅(qū)動(dòng)程序且不必同步它,則arduino在此項(xiàng)目中的目的是初始化RF模塊并允許您同步控制器。修改后的Xusb21.inf文件允許正式適配器的驅(qū)動(dòng)程序與RF模塊配合使用,否則該模塊被視為單一設(shè)備。可以通過(guò)用3.3伏穩(wěn)壓器關(guān)掉兩個(gè)二極管并使之適應(yīng)只使用AVR微控制器而不是整個(gè)arduino板來(lái)改善整個(gè)事情,并且將來(lái)當(dāng)我有時(shí)間/金錢(qián)時(shí)可能會(huì)做出這些改進(jìn),但這現(xiàn)在可以正常工作了。
-
控制器
+關(guān)注
關(guān)注
112文章
16095瀏覽量
177030 -
適配器
+關(guān)注
關(guān)注
8文章
1914瀏覽量
67838 -
Xbox
+關(guān)注
關(guān)注
0文章
186瀏覽量
16915
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論