我正在编写一个需要从XBox 360控制器获取输入的程序.输入将以无线方式发送到我正在建造的RC直升机上.
到目前为止,我已经了解到这可以使用DirectX的XInput库或XNA中的Input框架来完成.
我想知道是否还有其他选择.我的程序范围相当小,并且必须安装像DirectX或XNA这样的大型游戏库似乎过多.此外,我希望该程序是跨平台的,而不是微软特定的.
有一种简单的轻量级方法,我可以用像Python这样的东西来获取控制器输入吗?
编辑以回答一些评论:
直升机总共有6个螺旋桨,分布在3个同轴对中.基本上,它将与此非常相似,只需花费约1,000美元而不是15,000美元.它将使用Arduino进行板载处理,使用Zigbee进行无线控制.
选择360控制器是因为它设计得很好.它非常符合人体工程学,并且具有所需的所有控制输入.对于熟悉直升机控制的人来说,左操纵杆将控制集体,右控制杆控制俯仰和滚转,模拟触发器将控制偏航.模拟触发器是360控制器的一大特色.PS和大多数其他人没有它们.
我有一个项目的网页,但它仍然很稀疏.我确实计划记录整个设计,所以最终它会很有趣.
http://tricopter.googlecode.com
在旁注中,是否会杀死谷歌为googlecode项目提供博客功能?
我希望360控制器输入程序尽可能在Linux和Windows中运行.最后,我想将控制器直接连接到嵌入式微控制器板(例如Arduino),这样我就不必通过计算机,但目前它并不是一个高优先级.
这并不困难.正如前面提到的那样,您可以使用SDL库来读取xbox控制器的状态,然后您可以使用它执行任何操作.
有一个SDL教程:http://sdl.beuc.net/sdl.wiki/Handling_Joysticks非常有用.
请注意,Xbox控制器具有以下内容:
两个操纵杆:
左操纵杆是轴0和1;
左触发器是轴2;
右操纵杆是轴3和4;
右触发器是轴5
一顶帽子(D-pad)
11个SDL按钮
其中两个是操纵杆中心压力机
两个触发器(充当轴,见上文)
即将推出的SDL v1.3也将支持力反馈(又称触觉).
我认为,由于这个帖子已经有好几年了,你已经做了一些事情,所以这篇文章主要是为了告知未来的访问者.
PyGame可以读取操纵杆,这是X360控制器在PC上显示的操纵杆.