使用 Java 控制 Arduino

2024-04-13

我正在寻找一个LED http://en.wikipedia.org/wiki/Light-emitting_diode用Java程序打开和关闭。我用 C# 完成了这个项目大约 5 分钟,但用 Java 似乎更具挑战性。我让 Arduino 等待 1 或 0 被写入COM port http://en.wikipedia.org/wiki/COM_%28hardware_interface%29并会据此更改 LED。我在 Arduino 上使用的代码如下。

int LedPin = 13;
char data;

void setup()
{
    Serial.begin(9600);
    pinMode( LedPin , OUTPUT );
}

void loop()
{
    data = Serial.read();
    if (Serial.available() > 0)
    {
        if(data == '1' )
        {
            digitalWrite(LedPin,HIGH);
        }
        else if(data == '0' )
        {
            digitalWrite(LedPin,LOW);
        }
    }
    else
        if (Serial.available()<0)
        {
            digitalWrite(LedPin,HIGH);
            delay(500);
            digitalWrite(LedPin,LOW);
            delay(500);
        }
}

我该如何使用 Java 应用程序来做到这一点?


您可以使用 JArduino (Java-Arduino) 库,它提供了一个 Java API 来控制您的 Arduino,使用串行端口(使用 USB 电缆,或从软件角度来看表现为串行端口的无线设备)、UDP(通过以太网)盾)。所有与 Java 和 Arduino 之间的通信相关的代码都由该库内部管理。

这是一个使 LED 闪烁的 Java 示例 https://github.com/SINTEF-9012/JArduino/blob/master/jarduino.samples/src/main/java/org/sintef/jarduino/examples/basic/Blink.java:

public class Blink extends JArduino {

public Blink(String port) {
    super(port);
}

@Override
protected void setup() {
    // initialize the digital pin as an output.
    // Pin 13 has an LED connected on most Arduino boards:
    pinMode(DigitalPin.PIN_12, PinMode.OUTPUT);
}

@Override
protected void loop() {
    // set the LED on
    digitalWrite(DigitalPin.PIN_12, DigitalState.HIGH);
    delay(1000); // wait for a second
    // set the LED off
    digitalWrite(DigitalPin.PIN_12, DigitalState.LOW);
    delay(1000); // wait for a second
}

public static void main(String[] args) {
    String serialPort;
    if (args.length == 1) {
        serialPort = args[0];
    } else {
        serialPort = Serial4JArduino.selectSerialPort();
    }
    JArduino arduino = new Blink(serialPort);
    arduino.runArduinoProcess();
}
}

JArduino 可在以下位置获取:JArduino https://github.com/SINTEF-9012/JArduino

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Java 控制 Arduino 的相关文章

  • 正则表达式 - 捕获所有重复组

    我有如下字符串 property one some text email protected cdn cgi l email protection another optional text here etc 其中包含 里面的字符串 我想通
  • 在 JSF/JSP EL 和 Javascript 中连接字符串[重复]

    这个问题在这里已经有答案了 我在使用 EL 和 javascript 函数 JSF 1 2 Facelets Richfaces 3 3 0GA 时遇到问题 我有一个页面包含另一个组合
  • SpringBoot @OneToMany 与 Lombok 无限循环

    我的项目使用SpringBoot 它具有双向映射 OneToMany Entity Table name T S Getter Setter EqualsAndHashCode NoArgsConstructor AllArgsConstr
  • SWT - 表查看器 - 隐藏列并从列中获取值

    我正在尝试从表中的数据创建一个数组列表 我需要从可见列中获取值 但我还需要从表中不可见的列中获取值 将 SWT 与表查看器一起使用 我不知道如何不显示表中的列 我也不知道如何通过指定列名从表中提取数据 我一直使用 Swing 所以我一直使用
  • 在 Android 4.2.2 和 4.3 上关闭 BluetoothSocket 时出现致命信号 11 SIGSEGV

    我的应用程序在 Android 2 3 3 到 4 1 2 下运行良好 但自从 Android 4 2 2 和 Android 4 3 以来 我有一个 fatal signal 11 SIGSEGV at 0x00 当我关闭蓝牙插座时 我查
  • maven依赖插件忽略依赖版本? [复制]

    这个问题在这里已经有答案了 在我看来 maven 依赖插件在计算依赖列表时行为不当 假设这 3 个项目 base1
  • 根本原因 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    我有这个小代码用于将我的 jsp 连接到我的 mysql 数据库 String driver com mysql jdbc Driver Class forName driver String url jdbc mysql localhos
  • spring roo vs appfuse 生成服务/dao 层

    我正在寻找有经验的用户对 spring roo 和 appfuse 的反馈 您认为逆向工程数据库表和生成服务层 dao 层和 jpa 实体哪一个更好 如果我没记错的话 spring roo 目前无法对数据库进行逆向工程 只是一个快速更新 通
  • ffmpeg 用于屏幕捕获?

    所以我有一个小程序来捕获屏幕和计算机麦克风的声音 然后屏幕截图被编码为 ScreenVideo2 声音被编码为 AAC 如何使用 ffmpeg 逐帧混合 然后将混合输出发送到 wowza 媒体服务器 如果用ffmpeg无法完成 您能提供一些
  • Android ImageView未加载

    我正在使用 android imageView 并将图像放入可绘制文件夹中 并将 imageView 源更改为该图像 但它没有在预览面板中显示图像 当我在 android studio 中打开图片时 它显示这样的错误 但我可以在电脑桌面上打
  • 杰克逊:引用同一个对象

    在某些情况下 主体 例如 JSON 主体 中序列化或非序列化的数据包含对同一对象的引用 例如 包含球员列表以及由这些球员组成的球队列表的 JSON 正文 players name Player 1 name Player 2 name Pl
  • Java + JNA:找不到指定的过程

    我正在尝试使用 Visual Studio 创建一个 dll 文件并在 java 项目中使用 访问它 该库似乎已加载 但总是抛出相同的异常 线程 main 中出现异常 java lang UnsatisfiedLinkError 查找函数
  • Java 数组返回奇怪的输出[重复]

    这个问题在这里已经有答案了 我正在为家庭作业问题创建一个方法 该方法返回数组中的最高值 我正在使用一个 for循环将数字输入到数组中 输入代码如下所示 int array new int n for i 0 i
  • 在JPA、关系型数据库等中,什么是Tuple? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在研究 Hibernate 和 JPA 并且一直在寻找这个术语 有人可以用实用和说教的方式向我解释一下这个术语是什么 以及它与 J
  • Keycloak - 自定义表单操作在流程中不可见

    我正在尝试为用户注册实现自定义表单操作 我在表单上添加了一些自定义字段 我希望验证这些字段 在浏览了 keycloak 文档后 我意识到我需要 扩展 FormAction FormActionFactory 将actionfactory打包
  • gwt hibernate 程序中的异常

    我正在尝试制作一个简单的 GWT RPC Hibernate 程序 将用户添加到 MySQL 数据库 我正在使用 Eclipse EE 该应用程序已成功将用户添加到数据库 但在编译时引发异常 这是我的应用程序的例外情况和来源 例外 Exce
  • 预期类型:java.lang.Integer,实际值:org.hibernate.id.IdentifierGeneratorHelper$2

    当我尝试调用 save 方法时 我的代码中出现此错误 当我在 JBoss 服务器上时 此方法工作正常 现在我转到 tomcat 服务器 7 ERROR HHH000123 IllegalArgumentException in class
  • 改造 POST java.io.IOException:由 java.io.EOFException 引起的连接上的流意外结束:\n 未找到:

    我已经解决了与此相关的所有问题 但尚未找到适合我的解决方案 我在用着retrofit 2 8 1 and OkHttp 4 5 0 我的服务界面如下所示 public interface MlApiService POST Multipar
  • Java 到 ruby​​ AES/ECB/PKCS5Padding 加密

    我有一个使用第三方支付门户的在线电子商务网站 支付门户一直运行良好 直到第三方支付门户要求每个人开始使用带有其他支付参数的哈希密钥 现在的问题是第三方支付门户只提供了一页文档来实现哈希密钥 这是提供的文档 加密演算法 为了减少数据传输和发布
  • Java Webstart 和 URLConnection 缓存 API

    的描述URLConnection 缓存 API http docs oracle com javase 6 docs technotes guides net http cache html最后一句指出 Java 2 标准版中没有 URLC

随机推荐