PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RNSX und Ansteuerung. Benoetige Hilfe.



Fennec
14.10.2006, 21:05
Hallo

Bei mir laeuft der RNS1 mit 2 Servos. Das ist uebers Internet steuerbar.
Nun haben wir ja hier das bekannte Problem mit dem Drehwinkel der standard Servos. So schlau wie ich bin habe ich mir den RNSX geflasht, der ja ueber den "normalen" Drehwinkel hinaus kann. Eingebaut, funktioniert.
ABER und jetzt der Haken, wie bringe ich dem terminal bei, das er mehr als 90° drehen kann,soll, darf ?

In der Doku, hier aus dem Downloadbereich steht:


RNSX V1.0 ist ein Kontrollerprogramm für den CoProzessor AT90S2313 auf dem RNBFRA 1.2 Board. Er unterstützt die Verwendung der Befehle des RNS1, bietet aber einige zusätzliche Befehle (Alle Befehls Sequenzen können gemischt auftreten).

* Eingabe der Position 0-255 (= RNS1-Standard)

* Eingabe von µS als Positionswert (550 – 2100). Dadurch können volle 180° erreicht werden.

* Speicherung der Servopositionen im EERAM. Diese Positionen werden auch dann nach dem RESET als Default-Wert eingenommen.

* Zurückladen der EERAM-Werte

Die Ansteuerung erfolgt über eine einzige RS232 Leitung mit 9600 Baud.
Braucht man die normale RS232 nicht, bzw. wenn es dort nicht stört, daß ab und zu Servo Befehle ausgegeben werden, dann kann man den normalen PRINT Befehl nutzen. In diesem Fall muß nur ein Jumper auf JP16 schräg eingesteckt werden:
Dadurch ist TX des AtMega32 nicht nur mit dem MAX, sondern zusätzlich auch mit dem RX des CoProzessors verbunden, der dadurch immer mithört.

1Befehls-Sequenzen

2Standard-RNS1

DIM ServoNr as Byte
DIM Servopos as Byte

PRINT „#s“ ; ServoNr ; Servopos ;

ServoNr Byte 1 – 10
Servopos Byte 0 – 255

Ein eventuell abgesendetes <CR><LF> wird nicht benötigt und auch nicht beachtet oder geprüft

3Advanced

4Servoposition Mikro-Sekunden

DIM ServoNr as Byte
DIM Servopos as Word

PRINT „#s“ ; ServoNr ; Servopos ;

ServoNr Byte 65 – 74 ( „A“ = Servo1, „J“ = Servo10)
Servopos Word 550 - 2100 das entspricht beim RN Standard-Servo ~180 Grad

Die Servo-Nummer entspricht der 1-10 , mit gesetzten Bit 6 ( &H40, dezimal 64 ). In diesem Fall wird die Position als 16-Bit Word erwartet (Lsb first)

5Position > EEPROM


PRINT „#s“ ; „S“ ;

Die augenblickliche Position aller Servos wird im EEPROM gespeichert

Nach dem Einschalten oder bei RESET werden diese Servopositionen sofort gesetzt

6 EEPROM > Position


PRINT „#s“ ; „L“ ;

Die augenblickliche Position aller Servos wird aus dem EEPROM geladen


Nur wie bringe ich dem Terminal nun das hier bei ?


ServoNr Byte 65 – 74 ( „A“ = Servo1, „J“ = Servo10)
Servopos Word 550 - 2100 das entspricht beim RN Standard-Servo ~180 Grad


Normal habe ich das immer so gemacht. Um den Servo in Mittelstellung zu fahren:

0x23 ( 35 )
0x53 ( 83 )
0x01 ( 1 )
0x7F ( 127 )

Und wie erweitere ich jetzt den Drehbereich ?

Danke schon mal an alle die sich wenigstens schon mal die Zeit nehmen diesen Text zu lesen.