任务:在PC上的程序中显示数据。
扩展任务:(解决此问题后)我最终将数据保存到文件并将程序扩展到GUI。
微控制器:Arduino duemilanove
操作系统:Windows 7
语言:Java
编译器:Eclipse
Io方法:USB类型'B'(arduino侧),USB A型(PC侧)
我在这里和其他网站上阅读过至少30个不同的教程/问题。我从网站上抓取了一些示例并下载了一些库,并且不断出现红线和错误。我现在已经全部废弃了,决定谦卑地来到这里看看是否有人愿意帮助我。
我怀疑自己已经过了头,但这很好,我很高兴学习,被称为愚蠢!
我理解其他软件,例如“处理”已经可以为我做这件事了。我想自己制作这个软件。
我看过RXTX和COMM API。老实说,到目前为止我所有的一切都是因为我知道它存在,有些东西显然已经过时了,似乎大多数教程都假设各种科目都有大量的知识。
在我写这个问题的时候,我也看了很多问题,其中大部分都是我以前见过的。我挥舞着白旗!有人帮我了解我在做什么!
我想要做的代码示例。
// How would I make this class read from the arduino?
class arduinoData {
static int t = (int) 72.91; //pull from arduino instead of making it up
static int temperature(){
return t;
}
}
public class example
{
public static void main(String[] args)
{
System.out.println("temp from the sensor is: "+ arduinoData.temperature()+"F");
//output:
//temp from the sensor is: 71F
}
}
编辑:Arduino串口监视器正常工作。我将添加arduino代码来清除它。
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Thermometer = { 0x28, 0x56, 0xA0, 0xA5, 0x03, 0x00, 0x00, 0x7D };
void setup(void)
{
Serial.begin(9600);
sensors.begin();
sensors.setResolution(Thermometer, 10);
pinMode(13, OUTPUT);
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) { Serial.print("Error."); }
else {Serial.print(DallasTemperature::toFahrenheit(tempC));Serial.print("F");}
}
void loop(void)
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
sensors.requestTemperatures();
Serial.print("temp from sensor: ");printTemperature(Thermometer);
Serial.print("\n\r");
}
Arduino输出:
来自传感器的温度:70.25F
来自传感器的温度:70.70F
来自传感器的温度:70.70F
来自传感器的温度:70.70F
更新
好的我认为我通过下面提到的教程正确安装了rxtx。但是,我现在迷路了:
对于Windows,您可以在其中创建名为run.bat的批处理文件 目录作为上面提到的示例代码。这个批处理文件可以 在您的系统上使用,但您可能需要修改路径以匹配 在您的系统上安装Java和Arduino IDE的位置。
setlocal set PATH =%PATH%; C:\ Program Files(x86)\ arduino-0017 \ “C:\ Program Files(x86)\ Java \ jdk1.6.0_12 \ bin \ javac”-cp“C:\ Program 文件(x86)\ arduino-0017 \ lib \ RXTXcomm.jar“SerialTest.java”C:\ Program 文件(x86)\ Java \ jdk1.6.0_12 \ bin \ java“-cp”C:\ Program Files (x86)\ arduino-0017 \ lib \ RXTXcomm.jar;“SerialTest
基本上,您需要将RXTXcomm.jar添加到类路径中, 并且您将需要添加关联的JNI接口DLL (rxtxSerial.dll)到您的PATH。对于其他平台,您需要 将相同的JNI共享库添加到运行时路径中。
运行run.bat文件时,您应该看到与结果相同的结果 Arduino IDE串行监视器。您可以使用Ctrl + Break来停止 程序
我应该做什么?
答案 0 :(得分:0)
检查您的固件是否实际上将Arduino打印到usb,虚拟化为串行端口:加载固件并通过“串行监视器”(右侧的镜头按钮)测试串行通信。
完成后,您知道您的问题与尝试从COM接口读取的Java代码有关。如果您仍然遇到问题,那么您的问题已经转移到“使用Java从串口读取”。
关于将Arduino与Java连接的一般参考,我建议您阅读本教程的解释和代码示例:http://www.arduino.cc/playground/Interfacing/Java