PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega2650 mit Microservoboard



ShangTsung
27.10.2007, 16:45
Hi!

Gleich mal vorweg: Reiner Anfänger!
Habe mir zusammen mit dem Atmega2560 das Microservoboard besorgt.
Nun wollte ich das Microservoboard ansteuern und mir dazu die mitgelieferten Vorlagen als Beispiel nehmen.
Geht aber nicht wirklich, da diese alle auf das RN-Controlboard zugeschnitten sind.
Nun weiß ich nicht, wie ich die Servos mit dem Printbefehl ansteuern soll, da ich einen anderen Ausgang verwende. Hier mal mein Programm:

$prog , 255 , &B11011001 , 'Quarz an / Teiler aus / Jtag aus

$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 '64
$swstack = 68 '44

$crystal = 16000000 'Quarzfrequenz

Config Pine.5 = Input 'Ist 1 wenn USB angeschlossen
Usb Alias Pine.5

Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "com4:" For Binary As #4 'USB Buchse

Open "COMC.0:9600,8,n,1" For Output As #9

Dim Servonummer As Byte
Dim Servodevice As Byte
Dim Servocommand As Byte
Dim Servodata1 As Byte

Do

Servodevice = 1 'Jedes Servoboard hat eine Device-Nummer
Servonummer = 7 'Servonummer 0 bis 7
Servocommand = 2 'Befehl: Setze Position (0 - 127)
Servodata1 = 127 'Position
Print #9 , Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1)

Wait 100

Servodevice = 1
Servonummer = 7
Servocommand = 2 'Befehl: Setze Position (0 - 127)
Servodata1 = 0 'Position
Print #9 , Chr(128) ; Chr(servodevice) ; Chr(servocommand) ; Chr(servonummer) ; Chr(servodata1)

Wait 100

Loop

End

Nun ist meine Frage, warum ich diese Servos so nicht ansteuern kann?
Bzw. geht die Ansteuerung dann ganz anders?
Habe nicht's wirkliches dazu im Netz gefunden.

Dank und Gruß
Karli

Jaecko
23.11.2007, 21:02
Wie genau sieht der Anschluss aus?
Ist der ATMega2560 auf dem Modul von Robotikhardware.de? So wie's im Programm steht, wird COM4 verwendet, was auf diesem Modul dem USB-Anschluss entspricht. Und das Servoboard läuft aber nicht über USB.
Du müsstest also nen anderen COM verwenden. Beim ATMega2560-Board gibts ja AFAIK noch den COM3, der ebenfalls als Stiftleiste seitlich nach aussen geführt ist.

ShangTsung
24.11.2007, 11:23
Danke für die Antwort Jaecko

Ja, der Atmega2650 ist der von Robotikhardware.de.
In diesem Falle hab ich das Problem auch schon gefunden gehabt. Ich hatte einfach die Kabel falsch verlötet und das Programm funktioniert so wie es hier steht auf PinC.0.

Am Anfang wird zwar der USB-Port definiert, aber nicht im Programm verwendet.
Für das Servoboard ist hierfür folgende Zeile wichtig:
Open "COMC.0:9600,8,n,1" For Output As #9

Greetz
ShangTsung