制作USB设备,用Java控制它

我正在考虑使用旋钮,按钮和LED制作物理控制器(设备?)。 我想使用Java与它进行交互(响应旋钮,点亮LED等)。 我提到Java的原因有两方面:首先,我认识Java 1 。 其次,我已经编写了我需要在Java中与其交互的程序的其余部分(尽管有办法从另一种语言与Java程序对话)。

我希望该设备通过USB连接并独立于(计算机)平台。

除了开始阅读Arduino网站之外,我对从哪里开始没有任何想法。 这是我最好/唯一的选择吗? 有没有更适合与Java通信的东西?

注意:我知道Arduino与Java有关(不确定是什么),但似乎代码必须写在C的子集中。

我将如何开始讨论这个话题?

1 – 请不要笑。

Arduino开发环境是用Java编写的。

但是,为Arduino平台编写程序的标准语言实际上是C ++。

Arduino平台基于Atmel AVR芯片。 至少有一个用于AVR芯片的Java VM 。 还有其他可用于AVR的语言,如Forth和BASIC(虽然我只能找到商业版本,所以如果你想找到它们,我会找到它们,搜索“AVR BASIC”)。

Arduino使用虚拟COM端口在主机与它之间进行通信。 虚拟COM端口模拟旧式串行线,但使用USB完成。 您可以使用Java通信API ,然后让主机上运行的Java程序与您的物理设备进行通信。

对于某些编码器和按钮,您可能希望实现USB HID设备。 如果你要生产超过几个,你会想做一个定制板。 查看V-USB ,这是一个使用Atmel微控制器制作USB HID设备的开源库。 他们有很多使用这个库的项目示例。

您可能会使它看起来像HID操纵杆,使用编码器生成X / Y轴信息并使按钮像按钮一样。 您可以使用标准Java游戏API来读取操纵杆值。

你能扩展自己对自定义设备的需求吗? 在我看来,设计硬件具有相当高的进入门槛,我可以想到的大多数应用程序可以通过重新利用现有的游戏控制器硬件来更好地解决。 如果你真的需要新的硬件,那么我建议你开始使用谷歌搜索’USB开发套件’或’USB开发板’,这将获得这样的链接, 这个和这个 。

至于使用Java的USB硬件,我已经玩了一下JUSB库,看起来很有希望,但似乎仅限于Linux,因为该版本的本机库的一半版本尚未编写。 可以通过谷歌搜索’HID java’找到替代品。

好吧,计算机平台独立? 你针对什么平台? 这取决于驱动程序和对该平台的支持,USB设备有什么作用? 它是一个大容量存储设备……你可能需要环顾四周,看看你是否能找到一个可以与设备通信的设备驱动程序……

希望这会有所帮助,最好的问候,汤姆。

我知道串行端口存在与它交互的库(rs232库)。 谷歌和USB的谷歌搜索返回了几个答案(第一个被称为jUSB)。 这将是我要寻找的第一种类型的东西。

java usb连接到freescale微控制器的示例:

http://javausbapi.blogspot.com/