logliner
10.08.2012, 14:36
Hallo zusammen,
ich hoffe, ich habe das richtige Forum erwischt ... grundsätzlich geht's um I2C-Programmierung mit Processing.
Erst einmal das Setup:
- ELV USB-I2C
- ELV iSMT
- kleiner bipolarer Schrittmotor
Eine genauere Beschreibung des Projekts findet Ihr hier: https://www.roboternetz.de/community/threads/58472-Schritt-oder-Getriebemotor
Das Setup funktioniert. Der Motor lässt sich mit HTerm steuern. Das Problem besteht darin, mit Processing den Chip anzusprechen und die zurück erhaltenen Daten zu verarbeiten. Hier erst 'mal der Code:
import processing.serial.*;
Serial port;
void setup() {
println(Serial.list());
port = new Serial(this, Serial.list()[0], 9600);
println("writing: sC0 81 sC1 08p");
port.write("sC0 81 sC1 08p");
port.bufferUntil('\n');
println("port availability: " + port.available());
}
void draw() {
}
// Called whenever there is something available to read
void serialEvent(Serial port) {
println( "read from port:" + port.read());
}
Die Ausgabe des Programms ist wie folgt:
[0] "COM3"
writing: sC0 81 sC1 08p
port availability: 0
Mit Zeilenumbrüchen am Ende der übergebenen Zeichenketten habe ich bereits herumgespielt. Aber der Chip will von all dem nichts wissen. "sC0 81 sC1 08p" fragt übrigens den "full status 1" des Chips ab. Funktioniert in HTerm bestens. Eine anständige Antwort vom iSMT könnte folgendermassen aussehen: "E0 00 00 00 00 10 FF 00".
Kann mir jemand weiterhelfen ...?
Besten Dank im Voraus!
ich hoffe, ich habe das richtige Forum erwischt ... grundsätzlich geht's um I2C-Programmierung mit Processing.
Erst einmal das Setup:
- ELV USB-I2C
- ELV iSMT
- kleiner bipolarer Schrittmotor
Eine genauere Beschreibung des Projekts findet Ihr hier: https://www.roboternetz.de/community/threads/58472-Schritt-oder-Getriebemotor
Das Setup funktioniert. Der Motor lässt sich mit HTerm steuern. Das Problem besteht darin, mit Processing den Chip anzusprechen und die zurück erhaltenen Daten zu verarbeiten. Hier erst 'mal der Code:
import processing.serial.*;
Serial port;
void setup() {
println(Serial.list());
port = new Serial(this, Serial.list()[0], 9600);
println("writing: sC0 81 sC1 08p");
port.write("sC0 81 sC1 08p");
port.bufferUntil('\n');
println("port availability: " + port.available());
}
void draw() {
}
// Called whenever there is something available to read
void serialEvent(Serial port) {
println( "read from port:" + port.read());
}
Die Ausgabe des Programms ist wie folgt:
[0] "COM3"
writing: sC0 81 sC1 08p
port availability: 0
Mit Zeilenumbrüchen am Ende der übergebenen Zeichenketten habe ich bereits herumgespielt. Aber der Chip will von all dem nichts wissen. "sC0 81 sC1 08p" fragt übrigens den "full status 1" des Chips ab. Funktioniert in HTerm bestens. Eine anständige Antwort vom iSMT könnte folgendermassen aussehen: "E0 00 00 00 00 10 FF 00".
Kann mir jemand weiterhelfen ...?
Besten Dank im Voraus!