ps2九w型号怎么连接4个ps2手柄驱动玩游戏?本人有俩无线ps2手柄驱动,俩有线ps2手柄驱动。

扫一扫,上赶集群组
扫码使用“赶集群组”
交友&&寻爱&&找工作
聊天&&聚会&&不寂寞
配件齐全,可分开卖也可以单独卖,有白色的和银色的,银色的有硬盘,部分地区运费可能会不同希望你们能理解,主机都有可分开卖
AAA小明...
其他人还在看
其他人还在看arduino学习笔记24 - PS2无线手柄实验 - Arduino论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
Hot [活动]
arduino学习笔记24 - PS2无线手柄实验
10:27:23  
用无线手柄通过arduino控制电机或者舵机之类的,是不是感觉很遥远。。。光那底层的通信协议就吓跑了。。。
不用怕。。有开源社区贡献的arduino PS2X库,一切皆有可能。
先说明一下手柄的要求,此PS2X库,尽量是使用PS2原装手柄,或者与之外观一样的。无线手柄可以直接接arduino使用,有线手柄因为arduino的3.3V供电不足,需要单独供电。
市面上也有不少PS2手柄,但是长得和PS2原装手柄有区别,这种手柄可以在PS2主机上使用,不一定可以配合此库使用,笔者就遇到这个问题。。。。。买回来的罗技手柄虽然手感一流,但是@@部分按键反应不灵敏(PS2主机上完美)。这也是因为这个库是逆向破解PS2协议的原因,所以肯定有哪里不太完美。
先上硬件连接图,按照图示把线接好。
然后把论坛附件中的PS2X库解压缩后放入IDE的libraries文件夹中。把下面代码复制进IDE编译,下载到arduino板子上。此代码就是PS2X库的示例,详细库使用方法请查看库中的说明文件ARDUINO 代码复制
#include &PS2X_lib.h&&&//for v1.6PS2X ps2x; // create PS2 Controller Class//right now, the library does NOT support hot pluggable controllers, meaning //you must always either restart your Arduino after you conect the controller, //or call config_gamepad(pins) again after connecting the controller.int error = 0;byte type = 0;byte vibrate = 0;void setup(){ Serial.begin(57600); //CHANGES for v1.6 HERE!!! **************PAY ATTENTION************* error = ps2x.config_gamepad(13,11,10,12, true, true);& &//setup pins and settings:&&GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error if(error == 0){& &Serial.println(&Found Controller, configured successful&);& &Serial.println(&Try out all the buttons, X will vibrate the controller, faster&);&&Serial.println(&holding L1 or R1 will print out the analog stick values.&);&&Serial.println(&Go to
for updates and to report bugs.&); }&&else if(error == 1)& &Serial.println(&No controller found, check wiring, see readme.txt to enable debug. visit
for troubleshooting tips&);&&else if(error == 2)& &Serial.println(&Controller found but not accepting commands. see readme.txt to enable debug. Visit
for troubleshooting tips&);&&else if(error == 3)& &Serial.println(&Controller refusing to enter Pressures mode, may not support it. &);& &//Serial.print(ps2x.Analog(1), HEX);& &type = ps2x.readType();& &&&switch(type) {& && & case 0:& && &&&Serial.println(&Unknown Controller type&);& && & break;& && & case 1:& && &&&Serial.println(&DualShock Controller Found&);& && & break;& && & case 2:& && && &Serial.println(&GuitarHero Controller Found&);& && & break;& &&&}}void loop(){& &/* You must Read Gamepad to get new values& &Read GamePad and set vibration values& &ps2x.read_gamepad(small motor on/off, larger motor strenght from 0-255)& &if you don't enable the rumble, use ps2x.read_gamepad(); with no values& && &you should call this at least once a second& &*/ if(error == 1) //skip loop if no controller found&&return; if(type == 2){ //Guitar Hero Controller& &ps2x.read_gamepad();& && && & //read controller & &if(ps2x.ButtonPressed(GREEN_FRET))& &&&Serial.println(&Green Fret Pressed&);& &if(ps2x.ButtonPressed(RED_FRET))& &&&Serial.println(&Red Fret Pressed&);& &if(ps2x.ButtonPressed(YELLOW_FRET))& &&&Serial.println(&Yellow Fret Pressed&);& &if(ps2x.ButtonPressed(BLUE_FRET))& &&&Serial.println(&Blue Fret Pressed&);& &if(ps2x.ButtonPressed(ORANGE_FRET))& &&&Serial.println(&Orange Fret Pressed&);& & if(ps2x.ButtonPressed(STAR_POWER))& &&&Serial.println(&Star Power Command&);& & if(ps2x.Button(UP_STRUM))& && && & //will be TRUE as long as button is pressed& &&&Serial.println(&Up Strum&);& & if(ps2x.Button(DOWN_STRUM))& &&&Serial.println(&DOWN Strum&);& & if(ps2x.Button(PSB_START))& && && && && && & //will be TRUE as long as button is pressed& && && &Serial.println(&Start is being held&);& & if(ps2x.Button(PSB_SELECT))& && && &Serial.println(&Select is being held&);& & if(ps2x.Button(ORANGE_FRET)) // print stick value IF TRUE& & {& && &&&Serial.print(&Wammy Bar Position:&);& && &&&Serial.println(ps2x.Analog(WHAMMY_BAR), DEC);& & } } else { //DualShock Controller& & ps2x.read_gamepad(false, vibrate);& && && & //read controller and set large motor to spin at 'vibrate' speed& & if(ps2x.Button(PSB_START))& && && && && && & //will be TRUE as long as button is pressed& && && &Serial.println(&Start is being held&);& & if(ps2x.Button(PSB_SELECT))& && && &Serial.println(&Select is being held&);& &&&if(ps2x.Button(PSB_PAD_UP)) {& && && &//will be TRUE as long as button is pressed& && & Serial.print(&Up held this hard: &);& && & Serial.println(ps2x.Analog(PSAB_PAD_UP), DEC);& && &}& && &if(ps2x.Button(PSB_PAD_RIGHT)){& && & Serial.print(&Right held this hard: &);& && &&&Serial.println(ps2x.Analog(PSAB_PAD_RIGHT), DEC);& && &}& && &if(ps2x.Button(PSB_PAD_LEFT)){& && & Serial.print(&LEFT held this hard: &);& && &&&Serial.println(ps2x.Analog(PSAB_PAD_LEFT), DEC);& && &}& && &if(ps2x.Button(PSB_PAD_DOWN)){& && & Serial.print(&DOWN held this hard: &);& &&&Serial.println(ps2x.Analog(PSAB_PAD_DOWN), DEC);& && &}& && &vibrate = ps2x.Analog(PSAB_BLUE);& && &&&//this will set the large motor vibrate speed based on & && && && && && && && && && && && && && && & //how hard you press the blue (X) button& & & & if (ps2x.NewButtonState())& && && && && &//will be TRUE if any button changes state (on to off, or off to on)& & {& && &&&if(ps2x.Button(PSB_L3))& && && &Serial.println(&L3 pressed&);& && &&&if(ps2x.Button(PSB_R3))& && && &Serial.println(&R3 pressed&);& && &&&if(ps2x.Button(PSB_L2))& && && &Serial.println(&L2 pressed&);& && &&&if(ps2x.Button(PSB_R2))& && && &Serial.println(&R2 pressed&);& && &&&if(ps2x.Button(PSB_GREEN))& && && &Serial.println(&Triangle pressed&);& & }& & if(ps2x.ButtonPressed(PSB_RED))& && && && & //will be TRUE if button was JUST pressed& && && &Serial.println(&Circle just pressed&);& & if(ps2x.ButtonReleased(PSB_PINK))& && && && & //will be TRUE if button was JUST released& && && &Serial.println(&Square just released&);& & if(ps2x.NewButtonState(PSB_BLUE))& && && && &//will be TRUE if button was JUST pressed OR released& && && &Serial.println(&X just changed&);& & if(ps2x.Button(PSB_L1) || ps2x.Button(PSB_R1)) // print stick values if either is TRUE& & {& && &&&Serial.print(&Stick Values:&);& && &&&Serial.print(ps2x.Analog(PSS_LY), DEC); //Left stick, Y axis. Other options: LX, RY, RX&&& && &&&Serial.print(&,&);& && &&&Serial.print(ps2x.Analog(PSS_LX), DEC);& && &&&Serial.print(&,&);& && &&&Serial.print(ps2x.Analog(PSS_RY), DEC);& && &&&Serial.print(&,&);& && &&&Serial.println(ps2x.Analog(PSS_RX), DEC);& & } } delay(50);}
然后打开串口监视器,看看实验效果吧。PS2手柄按键按下后,串口监视器就会传回是哪个按键,L1和R1按下后好像是读取几个口的模拟量~
附件就是PS2X库1.6版~目前最新的
(10.32 KB, 下载次数: 575)
来一个最新的支持1.0 IDE的库,是1.8版本的。
(10.93 KB, 下载次数: 409)
放一个1.41老版本的库,对各种手柄支持度比新库要好
(8.19 KB, 下载次数: 318)
16:21:56  
谢谢大神~~~~正在找这方面的协议,一直没能找到呢
助理工程师
11:12:33  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
为何下载不了& && && && && && && && && && && && && && && && && &
19:42:20  
用2个,会串码吗,我的串码
22:49:26  
工程师职场
Powered by扫一扫,上赶集群组
扫码使用“赶集群组”
交友&&寻爱&&找工作
聊天&&聚会&&不寂寞
按键不灵的可以更换 电感键有动手能力的朋友下手了
注:不退不换
其他人还在看
其他人还在看
二手游戏手柄相关:商品名称:
京东价:暂无报价
评价得分:
咨询内容:
这款是无线手柄还是有线的?
京东回复:
您好!可使用Windows 连接线连接PC,可无线连接Xbox One。感谢您对京东的支持!祝您购物愉快!
发表咨询:
声明:您可在购买前对产品包装、颜色、运输、库存等方面进行咨询,我们有专人进行回复!因厂家随时会更改一些产品的包装、颜色、产地等参数,所以该回复仅在当时对提问者有效,其他网友仅供参考!咨询回复的工作时间为:周一至周五,9:00至18:00,请耐心等待工作人员回复。
咨询类型:
库存及配送
发票及保修
促销及赠品
京东承诺:商品均为原装正品行货,自带机打发票,严格执行国家三包政策,享受全国联保服务。
功能咨询:咨询商品功能建议您拨打各品牌的官方客服电话,以便获得更准确的信息。
发货时间:现货:下单后一日内即可发货;在途:一般1-2天发货; 预订:一般1-6天可发货;无货:已售完,相应物流中心覆盖地区内的用户不能购买
运&&&&费:如需查看快递运输收费标准及免运费规则,
货到付款:如需查看开通货到付款地区及运费,
上门自提:上门自提不收取运费,如需查看全部自提点位置、地图、注意事项,
物流中心:京东商城拥有北京、上海、广州三个物流中心,各物流中心覆盖不同的城市,
限&&&&额:如需查看各银行在线支付限额,
大额支付:快钱支付中的招行、工行、建行、农行、广发支持大额支付,最高单笔一次支付10000元
分期付款:单个商品价格在500元以上,可使用中国银行、招商银行发行的信用卡申请分期付款,
货到付款:如需查看开通货到付款地区及运费,
京东承诺:商品均为原装正品行货,自带机打发票,严格执行国家三包政策,享受全国联保服务。
发票类型:京东商城所售商品均自带机打发票,在提供相关企业资料证明后,可申请开取增值税发票。
退 换 货:京东商城为您提供完善的退换货服务,
咨询内容:
多品类齐全,轻松购物
快多仓直发,极速配送
好正品行货,精致服务
省天天低价,畅选无忧扫一扫,上赶集群组
扫码使用“赶集群组”
交友&&寻爱&&找工作
聊天&&聚会&&不寂寞
少量库存 先买先得
玩王者荣耀上排位最适合
支持安卓手机 苹果需要购买激活码 低价出售不退...
游戏天地1...
其他人还在看
其他人还在看
二手游戏手柄相关:

我要回帖

更多关于 ps2模拟器手柄设置 的文章

 

随机推荐