2013-03-06 132 views
4

我正在开发一个小型的Arduino项目,为我的Ubuntu盒子创建蓝牙N64游戏杆。 我设法找到一个草图通过串行输出控制器的状态,它很好。同时发送TX和RX到CSR CSR蓝牙模块我工作正常。Arduino蓝牙N64控制器 - 编写一个Linux驱动程序?

当我与设备配对时,我必须使用“rfcomm bind”来查看我的开发目录中的设备,并且“输出显示所有数据也会显示出来。

我的问题是,我的下一步是让Linux将此设备识别为游戏杆 - 即/ dev/js0。如果我知道我需要做什么才能做到这一点,我可以阅读必要的步骤,但目前我完全不知道从哪里开始 - 过去没有做过这样的事情。我应该考虑创建一个内核模块吗?

任何信息或戳在正确的方向都将不胜感激 - 即使它只是一个观察。

+0

下面是一个YouTube视频,以显示它的工作:http://www.youtube.com/watch?v=AyHmgoVi4J4 – 2013-03-06 16:57:16

+0

我不认为你在这里使用正确的蓝牙配置文件。据我所见,你希望在你的Arduino上实现一个hid配置文件,它将自动地在Linux上作为一个游戏杆设备。内核空间绝对不是做这个的好地方。 – Flexo 2013-03-08 22:04:02

+0

谢谢!事实证明,你是完全正确的,我购买了预装了HID固件的几个rn-42,希望他们应该在几周内抵达。你真的帮助我了,再次感谢:) – 2013-03-11 13:41:11

回答

2

编写自定义的内核代码绝对不是这里的方法。

要使您的项目在Linux中显示为操纵杆设备,您需要使用Bluetooth HID profile来呈现它。有了这个,所有的东西都应该在客户端“正常工作”,你会在/ dev中看到一个条目。 HID配置文件非常全面,被大多数蓝牙接口设备(键盘,鼠标,游戏控制器等)使用。其中的蓝牙部分实际上大部分仅仅是USB HID协议的薄膜封装。

从您的设备目前不使用该配置文件宣传自己的声音的事情。