我正在考虑使用旋钮,按钮和LED制作物理控制器(设备?)。我想使用Java与它进行交互(响应旋钮,点亮LED等)。我提到Java的原因有两方面:首先,我认识Java井 1 。其次,我已经用Java编写了我需要与程序接口的其余程序(虽然有办法从另一种语言与Java程序对话)。
我希望设备能够通过USB连接并独立于(计算机)平台。
除了开始阅读Arduino网站之外,我一点也不知道从哪里开始。 这是我最好/唯一的选择吗?是否有更适合与Java通信的内容?
注意:我知道Arduino与Java有关(不确定是什么),但似乎代码必须写在C的子集中。
我如何开始讨论这个话题?
1 - 请不要笑。
答案 0 :(得分:5)
Arduino开发环境是用Java编写的。
但是你为Arduino平台编写程序的标准语言实际上是C ++。
Arduino平台基于Atmel AVR芯片。至少有一个Java VM for AVR chips。还有其他可用于AVR的语言,例如Forth和BASIC(虽然我只能找到商业版本,所以如果你想找到它们,请搜索“AVR BASIC”)。
Arduino使用虚拟COM端口在主机与它之间进行通信。虚拟COM端口模拟旧式串行线,但使用USB完成。您可以使用Java communication API让主机上运行的Java程序与您的物理设备进行通信。
答案 1 :(得分:3)
对于某些编码器和按钮,您可能希望实现USB HID设备。如果你要生产超过几个,你会想做一个定制板。查看V-USB,这是一个使用Atmel微控制器制作USB HID设备的开源库。他们有很多使用这个库的项目示例。
你可能看起来像一个HID操纵杆,使用编码器产生X / Y轴信息,按钮就像按钮一样。他们可以使用标准的Java游戏API来读取操纵杆值。
答案 2 :(得分:1)
您可以扩展自定义设备的需求吗?在我看来,设计硬件具有相当高的进入门槛,我可以想到的大多数应用程序可以通过重新利用现有的游戏控制器硬件来更好地解决。如果你真的需要新的硬件,那么我建议你先用谷歌搜索“USB开发套件”或 “USB开发板”,可为您提供this,this和this等链接。
至于使用Java的USB硬件,我已经玩了一下JUSB库,它看起来很有希望,但似乎仅限于Linux,因为Windows版本的本机库的一半没有'写了。可以通过谷歌搜索“HID java”找到替代品。
答案 3 :(得分:0)
好的,计算机平台独立?你在瞄准什么平台?这取决于驱动程序和对该平台的支持,USB设备有什么作用?它是一个大容量存储设备......你可能需要环顾四周,看看你是否能找到一个可以与设备通信的设备驱动程序......
希望这有帮助, 最好的祝福, 汤姆。
答案 4 :(得分:0)
我知道串口有存在与之交互的库(rs232库)。谷歌和USB的谷歌搜索返回了几个答案(第一个被称为jUSB)。这将是我要寻找的第一种类型。
答案 5 :(得分:0)
java usb连接到freescale微控制器的示例: