arduino出现java错误_处理来自Arduino的串行读取导致Java PApplet错误

我正在阅读一个arduino草图的序列数据,我上传到一个青少年2.0 /这也发生在运行常规arduino时 . 然后我将分裂字符串并转换为具有Processing的int()函数的整数数组,以便能够触发声音 . arduino草图正在读取电容式传感器数据 . 它运行良好大约10-15s然后开始抛出以下错误 .

Exception in thread "Animation Thread" java.lang.NullPointerException

at processing.core.PApplet.parseInt(PApplet.java:9127)

at processing.core.PApplet.parseInt(PApplet.java:9113)

at NightGames_Tree.draw(NightGames_Tree.java:59)

at processing.core.PApplet.handleDraw(PApplet.java:2266)

at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:243)

at processing.core.PApplet.run(PApplet.java:2140)

at java.lang.Thread.run(Thread.java:695)

我的代码如下:在Arduino中:

#include

CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2);

void setup()

{

cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate on channel 1 - just as an example

Serial.begin(9600);

}

void loop()

{

long start = millis();

long total1 = cs_4_2.capacitiveSensor(30);

Serial.print(millis() - start); // check on performance in milliseconds

Serial.print("\t");

Serial.print(total1); // print sensor output 1

Serial.println("\t");

delay(100);

}

进行中:

import ddf.minim.spi.*;

import ddf.minim.signals.*;

import ddf.minim.*;

import ddf.minim.analysis.*;

import ddf.minim.ugens.*;

import ddf.minim.effects.*;

import processing.serial.*;

Minim minim;

AudioPlayer tree1;

AudioPlayer tree2;

Serial myPort;

String val;

void setup(){

String portName = Serial.list()[12]; // calls on the port which teensy is on

myPort = new Serial(this, portName, 9600);

println(Serial.list()); // prints list of ports that processing can access

//setup sound

minim = new Minim(this);

tree1 = minim.loadFile("tree1.aif");

}

void draw()

{

if (myPort.available() > 0) {

val = myPort.readStringUntil('\n');

int[] list = int(split(val, '\t')); // splits string into list based on tab after

int sum = 0;

int sum1 = 0;

// print(list.length);

sum = sum + list[0];

sum1 = sum1 + list[1];

print(sum);

print('\t');

print(sum1);

print('\t');

print('\n');

//print(val);

if (sum1 > 500) {

tree1.play(0);

} else if (sum1 <500){

}

}

}

运行一段时间后出现错误时,Processing会突出显示这行代码

int[] list = int(split(val, '\t'));

在此先感谢您的帮助 . 我在Mac上运行它 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值