如何使用JAVA控制通过USB / SerialPort等连接PC的LED灯?我应该使用什么设备?

我想在JAVA中编写一个程序,它可以控制LED灯连接到连接到计算机的“东西”.

JAVA程序将包含JFrame中的8个切换按钮.按钮编号从1到8,当按下编号为X的按钮时,编号为X的LED将打开;再次单击(切换)该按钮时,该LED将关闭.

与我们必须在其中加载代码的微控制器不同,我提到的“某些东西”只是接收来自JAVA的信号(可能通过USB / SerialPort / …)来控制灯光.
例如,JAVA通过SerialPort将0000_0101(打开LED 1号和3号灯)发送到“某物”,然后“东西”将“保留”该值,直到发送新信号.该值的每个数字代表“某物”上引脚的高/低,我将引脚连接到LED.

“Something”可能类似于可以将“串行端口信号”转换为“二进制”并将“二进制”保存在具有输出引脚的寄存器中的设备,我可以将它们连接到LED.

那可能吗?有没有像“东西”这样的设备?它是什么?有没有人有任何建议?还是一些更好的方法来控制PC的灯光?

解决方法

我使用运行 Android端口的BeagleBone Black做了类似的事情.我设计了一个Android应用程序,它使用我创建的自定义蓝牙低功耗API与运行BLE堆栈的TI CC2541进行通信.

您需要做的是在C/C++中编写函数以进行切换I / O所需的平台硬件调用.像ToggleLed(led)这样的东西就足够了.然后使用Java Native Interface (JNI)将本机调用连接到Java.JNI创建一个可以静态加载的库.

创建库后,可以使用Java调用它.

例如,在我的情况下,我创建了一个与本机C通信的BLE API,它将对我的嵌入式CC2541 BLE芯片执行串行读/写操作,以命令它进入不同的状态.这些命令是连接/断开,写入数据和读取数据. BLE API是用Java编写的,通过JNI和驱动程序调用与硬件连接.然后我编写了使用BLE API的应用程序.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...