PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Motor ST reagiert nicht auf mich



mpetz
16.08.2005, 12:16
Hallo,

ich versuche grade mein RN-Motor ST über die RS-232 mit Java anzusteuern, auslesen der Einstellungen wenn ich den Reset-Pin drücke funktioniert. Leider aber nicht das Senden von Befehlen, bzw. das Board reagiert nicht darauf.

So sieht mein Code aus, mit verschiedenen Variationen, die alle nicht funktionieren:


serialConnection.write("#rmi058");

serialConnection.write("#rmi058\r");

serialConnection.write("#rmi058\n\r");

serialConnection.write("#rmi" + (char)0 + (char)58 + "\n\r");
mit und ohne \n\r

Die SerialConnection Klasse die ich dort zum schreiben verwende hab ich selbst geschrieben und funktioniert sonst einwandfrei auch mit anderen Boards bzw. auch PC->PC.

vielen Dank für jede Hilfe!
Martin

16.08.2005, 12:49
Du musst die Parameter Binär senden und nicht als ASCII-Code wie oben in deinem Beispiel

mpetz
16.08.2005, 13:28
okay, hört sich logisch an:


serialConnection.write("#rmi" + Integer.toString(0, 2) + Integer.toString(58, 2));

tuts auch nicht, meine SerialConnection Klasse macht übrigens dies:


/**
* write
*/
public void write(byte[] data) {
try {
os.write(data);
if(debug) System.out.println("write: " + new String(data));
} catch(IOException e) { System.out.println(e); }
}

/**
* write (string)
*/
public void write(String data) {
write(data.getBytes());
}

os ist dabei der OutputStream

16.08.2005, 14:37
So wie ich es sehe, sendest du immer noch Ascii

Du musst String "#rmi" senden, und dann nur die einzelnen Bytes direkt. an den String hängen. Schau dir die Beispiele an

https://www.roboternetz.de/phpBB2/viewtopic.php?t=2741

PicNick
16.08.2005, 16:43
Ich denk, deine Methode erwartet einen Zeroterm-String. d.h offiziell ist der string bei chr(0) aus, egal, was nachher noch kommen soll.

mpetz
17.08.2005, 21:18
Okay, habe es auch mit dem schicken einzelner Bytes probiert.

Nun hab ich aber irgendwie gepeilt, wieso es nicht gehen könnte. Ich habe die I2C Version des Boards! Ist dann also die Steuerung über RS-232 gar nicht möglich? Die Schnittstelle quasi nur für Debug Zwecke?

WIe kann ich mein Modul umprogrammieren? Ist das einfach zu machen, und auch wieder zu wechseln?

Hintergrund ist, das Modul wird später am I2C-Bus laufen, im Moment steht aber die komplette Schaltung noch nicht und ich wollte meinen Roboter schonmal nur so mit den Schrittmotoren an der RS-232 testen. I2C ist leider in Java nicht machbar im Moment, obwohl ich mich glaube ich an die Fertigstellung der Klassen im rxtx Packet dann bald machen werde.

Frank
17.08.2005, 22:28
Nun hab ich aber irgendwie gepeilt, wieso es nicht gehen könnte. Ich habe die I2C Version des Boards! Ist dann also die Steuerung über RS-232 gar nicht möglich? Die Schnittstelle quasi nur für Debug Zwecke?

=D> Ja genau, so ist es! ;-)


Wie kann ich mein Modul umprogrammieren? Ist das einfach zu machen, und auch wieder zu wechseln?

Da bräuchtest du noch die RS232 Firmware, kostet aber glaub ca. 9 Euro. Ich weiss nicht ob sich das lohnt wenn du dann sowieso das Board per i2c programmieren willst. Wenn ja müsstest du an robotikhardware.de ne Mail mit Realnamen oder Kundennummer senden. (die Woche, da Ferien anstehn)

mpetz
17.08.2005, 22:39
Kann ich dann meine I2C Firmware auch einfach wieder zurückspielen (ist ja im Moment nur auf dem Chip, oder?!)?

Wie sieht es mit Copyright aus, dürfte ich für private Zwecke jemanden fragen, mir diese zu geben. 9 € würde ich eher ungern ausgeben, müsste dann aber mind 4 Wochen weiter Theoretisch arbeiten...

Frank
17.08.2005, 23:12
Nein mpelz, die Firmware darf in keinem Fall weitergegeben werden. Gerade die Firmware ist das was immer am meisten Entwicklungszeit kostet, daher die geringe Gebühr. Irgendwie muss sich das ja finanzieren.
Die I2C Firmware wäre weg wenn du die rs232 Firmware einspielst. Du könntest Alternativ auch noch einen zweiten programmierten CHip RNST01 beziehen (ca. 12 Euro) und je nach Bedarf einfach Chip wechseln.

mpetz
17.08.2005, 23:26
Okay, sehe ich selbst als Softwareentwickler auch ein...das mit dem austauschbaren Chip hört sich praktikabel an, werde ich mir überlegen!