Hi guys
I have a question is it possible to send sensor values via bluetooth (from NXT to PC).
I want to use this as a Button in my Remote Control... to print the values on the PC console
thx in advance
slejos
Moderators: roger, 99jonathan, imaqine
import lejos.pc.comm.*;
import java.awt.BorderLayout;
import java.io.*;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class transmitSensorsPC {
/* El nxt transmite los valores de los sensores al nxt en byte
**/
private static JFrame f;
private static JButton be;
private static JTextField text;
public static void main(String[] args) throws InterruptedException {
f = new JFrame("RcSensors");
text = new JTextField();
f.add(text, BorderLayout.SOUTH);
f.setSize(400,200);
f.setVisible(true);
text.setText("Welcome");
NXTConnector conn = new NXTConnector();
Scanner s = new Scanner(System.in);
boolean connected = conn.connectTo("bsapp://");
byte[]cambios = {0,0,0,0};
int i = 0,e,f;
if (!connected){
System.err.println("Failed to connect to any NXT");
System.exit(1);
}
DataOutputStream dos = conn.getDataOut();
DataInputStream dis = conn.getDataIn();
for(;;){
try {
dos.write(cambios,0,3);
dos.flush();
} catch (IOException ioe) {
System.out.println("IO Exception writing bytes:");
System.out.println(ioe.getMessage());
break;
}
try {
e = dis.read(cambios, 0, 3);
if(e==-1)
System.out.println("ERROR al recibir los bytes... ");
//sensors = dis.read(b, 0, 4);
text.setText(" Compass: " + cambios[0]+ " Acelerometro: "+cambios[1]+ " Gyroscopio: "+cambios[2]+ " Ultrasonido: "+cambios[3]);
//System.out.print(" Compass: " + cambios[0]+ " Acelerometro: "+cambios[1]+ " Gyroscopio: "+cambios[2]+ " Ultrasonido: "+cambios[3]);
//transmition(cambios[0]);
} catch (IOException ioe) {
System.out.println("IO Exception reading bytes:");
System.out.println(ioe.getMessage());
break;
}
}
try {
s.close();
dis.close();
dos.close();
conn.close();
} catch (IOException ioe) {
System.out.println("IOException closing connection:");
System.out.println(ioe.getMessage());
}
}
}import java.io.*;
import lejos.nxt.*;
import lejos.nxt.addon.CompassSensor;
import lejos.nxt.addon.GyroSensor;
import lejos.nxt.addon.AccelHTSensor;
import lejos.nxt.comm.*;
public class transmitSensors{
// El nxt transmite los valores de los sensores al nxt en byte
public static void main(String[] args) throws IOException{
CompassSensor cs = new CompassSensor(SensorPort.S1);
AccelHTSensor as = new AccelHTSensor(SensorPort.S2);
GyroSensor gs = new GyroSensor(SensorPort.S3);
UltrasonicSensor us = new UltrasonicSensor(SensorPort.S4);
int n;
byte[]sensors = {0,0,0,0};
LCD.drawString("waiting",0,0);
LCD.refresh();
BTConnection btc = Bluetooth.waitForConnection();
LCD.clear();
LCD.drawString("connected",0,0);
LCD.refresh();
DataInputStream dis = btc.openDataInputStream();
DataOutputStream dos = btc.openDataOutputStream();
while(!Button.ENTER.isPressed()){
n = dis.read(sensors, 0, 3);
if(n==-1)
LCD.drawString("ERROR al recivir", 0, 6);
sensors[0]= (byte)cs.getDegrees();
sensors[1]= (byte)as.getXAccel();
sensors[2]= (byte)gs.getAngularVelocity();
sensors[3]= (byte)us.getDistance();
LCD.clearDisplay();
LCD.drawString("Compass: "+cs.getDegrees(), 0, 1);
LCD.drawString("Acel: "+as.getXAccel(), 0, 2);
LCD.drawString("Gyro: "+gs.readValue(), 0, 3);
LCD.drawString("Ultra: "+us.getDistance(), 0, 4);
dos.write(sensors,0,3);
dos.flush();
}
dis.close();
dos.close();
LCD.clear();
LCD.drawString("closing",0,0);
LCD.refresh();
btc.close();
LCD.clear();
}
}Users browsing this forum: No registered users and 1 guest