Archiv verlassen und diese Seite im Standarddesign anzeigen : Micro Servo Board
Hallo zusammen,
mein Micro Servo Board http://www.pololu.com/file/0J37/ssc03a_guide.pdf zuckt wenn ich es starte. Was kann das sein?
Grüße
datatom
Starten heißt was?
Legst du da nur eine Spannung an oder gibst du auch was über RS232 oder UART auf das Board?
Und dann wäre eine genauere Beschreibung deines Problems hilfreich. Was auch gut wäre wäre ein Schaltplan deines Aufbaus sowie von dem was du auf das Modul an Befehlen gibst.
Starten heißt was?
Legst du da nur eine Spannung an oder gibst du auch was über RS232 oder UART auf das Board?
Und dann wäre eine genauere Beschreibung deines Problems hilfreich. Was auch gut wäre wäre ein Schaltplan deines Aufbaus sowie von dem was du auf das Modul an Befehlen gibst.
Ich habe das Micro Servo Board mit dem Rn-Mega2560 verbunden. Ich habe alle Anschlüsse für die Spannung belegt, wie in den jeweiligen hier anhängenden Dokus beschrieben ist. Der Strom kommt über einen Netzstecker mit 5 V. Beide Module sind seriell Verbunden, d.h. Tx vom Rn-Mega2560 auf den Stecker logic-level seriell input des Servoboards. Der Servo ist am Servoboard angeschlossen. Sobald ich jetzt den Netzstecker reinstecke, dreht der Servo kurz rechts herum. Erst dann dreht er sich in die per Bascomprogramm festgelegten Richtungen. Der Servo drecht auch kurz nach rechts oder versucht es, obwohl er vorher schon seine Endstellung fürs rechtsrumdrehen erreicht hatte.
' Pololu Testprogram
$regfile = "m2560def.dat"
$hwstack = 82
$framesize = 68
$swstack = 68
$crystal = 16000000 'Quarzfrequenz
'$baud = 19200
Config Pind.5 = Output
Led Alias Portd.5
Dim Servonumber As Byte
Dim Servodevice As Byte
Dim Servocommand As Byte
Dim Servogespeed As Byte
Dim Servodata1 As Byte
Config Com3 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "com3:" For Binary As #3 'Servomodul
Do
' Pololu mode
Led = 1
Servodevice = 1 'Device-Number
Servonumber = 7 'Servonumber
Servocommand = 2 'Position
Servodata1 = 90 '0 to 127
Print #3 , Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonumber) ; Chr(servodata1)
Wait 2
Led = 0
Servodevice = 1
Servonumber = 7
Servocommand = 2
Servodata1 = 70
Print #3 , Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonumber) ; Chr(servodata1)
Wait 2
Loop
End
Ich hoffe die Beschreibung reicht:cool:
Grüße
datatom
Torrentula
31.12.2011, 10:05
Ich kenne mich mit Bascom nicht so gut aus aber kannst du nicht per $baud=19200 die richtige Baudrate einstellen und die Befehle per print schicken?
Läuft das Board überhaupt mit 19200 baud oder ist es im auto-detect mode?
MfG
Torrentula
Der Befehl ist auskommentiert durch '
Das Board läuft mit 19200 baud. Ich lege es mit diesem Befehl fest:
Config Com3 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Ob das Board im auto-detect mode läuft weiß ich nicht. Wäre aber ein Ansatz. Wenn die Baudrate zweimal kommt könnte es ja zu diesem kurzen Drehen kommen. Aber wie kann ich das überprüfen?
Torrentula
31.12.2011, 11:10
Nein die Frage war ob das Servo-Board mit 19200 baud bzw. im auto-detect mode läuft. Mit dem Befehl, den du in Bascom schreibst legst du ja lediglich die baudrate des Microcontrollers fest, nicht jedoch des Servo boards fest!
MfG
Torrentula
Danke Torrentula du hast langes suchen erspart :D
Wie er schon erwähnt hat legst du mit $baud die Bauerate für den Mikrocontroller fest. Ich hab mich mal durch die Doku des Servoboards gewühlt und das hier auf Seite 5 gefunden:
http://img35.imageshack.us/img35/3601/unbenanntgop.png (http://imageshack.us/photo/my-images/35/unbenanntgop.png/)
Das heißt sobald der "Protocol Selection Jumper" gesteckt ist (laut Bild sieht es so aus als ob er das im Auslieferungszustand ist) kann das Servomodul nur mit zwei festgelegten Baudraten arbeiten.
Du musst also deine Bauerate auf 2400 oder 9600 ändern damit es funktioniert. Das Board kann keine anderen baudraten verarbeiten und im Moment empfängt es deswegen nur Datenmüll :)
Du kannst den Jumper auch entfernen dann funktionieren auch höhere Baudraten. Nur dann wird das ansteuern der Servos komplizierter (siehe Seite 6 deiner Doku). Dann reicht nämlich nicht mehr nur ein Zahlenwert für die Position und die Geschwindigkeit.
Es reicht aber eigentlich vollkommen aus das Modul mit 9600 Baud anzusprechen. Du musst nur gucken ob der Jumper steckt und dann das $baud = 19200 in $baud = 9600 umändern.
Edit: Keine Ahnung wieso aber ich konnte keinen Text aus dem PDF rauskopieren. Liegt sicher an dem dummen Foxit-Reader hier auf dem Lappi. Hoffe das Bild reicht ;)
Also, ich kann den Servo jetzt beliebig drehen:p
Aber das kurze drehen beim einstecken des Netzsteckers bleibt:(
Kommt aber angeblich vor und man kann nichts machen. So habe ichs im Pololu Forum erfahren: http://forum.pololu.com/viewtopic.php?f=16&t=4822
Danke und Grüße
datatom
Na solange es klappt ist doch ok ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.