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.
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.