qube
14.03.2006, 16:55
Moinsen Jungs,
also ich bin total neu auf dem Gebiet der microcontroller Technik, möchte mir aber einen leistungsfähigen robot bauen.
Doch zunächst habe ich ein Problem in der Ansteuerung von 4 Motoren. Ich möchte zwei L298-Motortreiber benutzen. Da ich diese mit meinem PC steuern will, kann ich ja nicht die Parallele-Schnittstelle benutzen, da diese nur 8-Outports zur Verfügung stellt, und die L298er Pro Motor 3 In-Ports benötigen (PWM, In1, In2). Allerdings kam mir die Idee dieses Problem mit einem Microcontroller (ATMega16?) zu lösen und zwar folgendermaßen:
Der Microcontroller stellt ja genügend IO-Ports zur Verfügung, meine Idee war nun, den MC so zu Programmieren, dass dieser ständig über RS232 an den PC angeschlossen ist und von dort aus 5 mal pro Sekunde eine Folge von 4 mal 8bit Nummern geschickt bekommt die nach folgendem Muster angeordnet sind:
Nummer:
00 00 1000
^^ ^^ ^^^
Motornummer Drehrichtung Geschwindigkeit
Diese Message wird jeweils 4 mal hintereinandergeschickt mit den folgenden Parametern:
- Motornummer 00, 01, 10, 11 um die Motoren 1, 2, 3 und 4 zu
addressiern.
- Drehrichtung ebenfalls 2 Bit, mit 00 für Bremsung, 01 für Vorlauf,
10 für Rücklauf und 11 erneut für bremsung.
- Geschwindigkeit soll eine 4 Bit Zahl sein, die ein emuliertes PWM-
Signal in 16 Stufen (0-15) unterteilt und somit die Geschwindigkeit
regelt
Alles in Allem würde 5 mal pro Sekunde jeder Motor mit Motornummer, Drehrichtung und Geschwindigkeit addressiert geupdated werden.
Ich dachte daran die Regelung mit einem Delphi-Programm zu übernehmen, dass eben 5 mal in der Sekunde diese 4 x 8Bit-Folge an den Controller sendet.
Meine eigentliche Frage ist schlichtweg, was ihr davon haltet, beziehungsweise ob es möglich ist oder ob es einfacher, besser oder effiezienter geht.
Danke sehr.
Grüße aus Wiesbaden
qube
also ich bin total neu auf dem Gebiet der microcontroller Technik, möchte mir aber einen leistungsfähigen robot bauen.
Doch zunächst habe ich ein Problem in der Ansteuerung von 4 Motoren. Ich möchte zwei L298-Motortreiber benutzen. Da ich diese mit meinem PC steuern will, kann ich ja nicht die Parallele-Schnittstelle benutzen, da diese nur 8-Outports zur Verfügung stellt, und die L298er Pro Motor 3 In-Ports benötigen (PWM, In1, In2). Allerdings kam mir die Idee dieses Problem mit einem Microcontroller (ATMega16?) zu lösen und zwar folgendermaßen:
Der Microcontroller stellt ja genügend IO-Ports zur Verfügung, meine Idee war nun, den MC so zu Programmieren, dass dieser ständig über RS232 an den PC angeschlossen ist und von dort aus 5 mal pro Sekunde eine Folge von 4 mal 8bit Nummern geschickt bekommt die nach folgendem Muster angeordnet sind:
Nummer:
00 00 1000
^^ ^^ ^^^
Motornummer Drehrichtung Geschwindigkeit
Diese Message wird jeweils 4 mal hintereinandergeschickt mit den folgenden Parametern:
- Motornummer 00, 01, 10, 11 um die Motoren 1, 2, 3 und 4 zu
addressiern.
- Drehrichtung ebenfalls 2 Bit, mit 00 für Bremsung, 01 für Vorlauf,
10 für Rücklauf und 11 erneut für bremsung.
- Geschwindigkeit soll eine 4 Bit Zahl sein, die ein emuliertes PWM-
Signal in 16 Stufen (0-15) unterteilt und somit die Geschwindigkeit
regelt
Alles in Allem würde 5 mal pro Sekunde jeder Motor mit Motornummer, Drehrichtung und Geschwindigkeit addressiert geupdated werden.
Ich dachte daran die Regelung mit einem Delphi-Programm zu übernehmen, dass eben 5 mal in der Sekunde diese 4 x 8Bit-Folge an den Controller sendet.
Meine eigentliche Frage ist schlichtweg, was ihr davon haltet, beziehungsweise ob es möglich ist oder ob es einfacher, besser oder effiezienter geht.
Danke sehr.
Grüße aus Wiesbaden
qube