制作USB设备,在Java中控制它

2022-09-03 15:17:08

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

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

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

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

我该如何开始这个话题?


1 - 请不要笑。


答案 1

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

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

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

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


答案 2

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

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


推荐