- LiTime Speicher und Akkus         
Ergebnis 1 bis 9 von 9

Thema: Motorcontroller mit 2xL298 über RS232

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2006
    Ort
    Wiesbaden
    Alter
    36
    Beiträge
    14

    Motorcontroller mit 2xL298 über RS232

    Anzeige

    Powerstation Test
    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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    35
    Beiträge
    1.614
    es ginge einfacher, wenn du den parallelport benutzt, und du legst einfach alle L298 auf die selben pins (3 stück) und nimmst dann weitere 3 pins zum multiplexen, so dass du mit diesen pins die L298 enablen kannst, oder eben nicht ^^

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    58
    Beiträge
    984
    EIn Microcontroller hat den Vorteil, dass der ja zwischendurch, also dann 200ms lang schritte erzeugen kann, soviele, wie du ihm halt sagst..
    Somit hat der µC seine Existenzbereichtigung allemal.

    Ansonsten geht es natürlich auch direkt vom PC, z.B. indem du ein oder 2 Latches (z.B: 74HC373) nimmst, und z.B. die Infos für die Drehrichtung (IN-1 und IN-2) dort speicherst, da diese sich ja nicht oft ändern. Dann brauchst du die meiste Zeit nur noch die PWM Leitungen der Motoren zu steuern. Und bei Änderung eben das Latch neu schreiben. Wegen konstanter Taktzeiten kannst du natürlich auch jedesmal das Latch updaten, dann den Rest der Zeit PWM machen...

    Sigo

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    32
    Beiträge
    995
    Du könntest auch via serieller die daten an den uC schicken und der AVR nimmt dann die daten entgegen und lässt dann die motoren so laufen. Du müsstest auch nur die abgeänderten daten übertragen, denn die alten bleiben ja im uC gespeichert, bis neue kommen. So hättest du dann auch mehr pins frei, welche du später auch als inputs verwenden kannst (wenn du dann auch daten an den PC schickst).

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2006
    Ort
    Wiesbaden
    Alter
    36
    Beiträge
    14
    danke, jetzt hab ich allerdings die frage, wie sende ich daten an den uC, hab ich spezielle Pins, TX und RX? Gibts da ne dll, mit der ich arbeiten kann um mit delphi die daten zu senden? Oder kennt sich jemand mit Delphi aus, wie man das machen kann? Im Moment bin ich nur Theoretiker und habe keinerlei Praxiserfahrung, nur mitm Parallelport... will aber unbedingt den seriellen port freihaben, hab andere sachen mit dem Parallelport frei.

    Danke.

    qube

    Danke

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    32
    Beiträge
    995
    Zitat Zitat von qube
    Im Moment bin ich nur Theoretiker und habe keinerlei Praxiserfahrung, nur mitm Parallelport...
    Dann empfehle ich dir mal mit einfachen uC sachen anzufangen. mal ein lauflicht auf einen avr/pic zu programmieren.
    daten an den uC kannst du mit einem terminal (hyperterminal zb) machen. natürlich seriell. aber müsste auch mit parallelen port gehen. man kann ja auch 2 comp mit dem parport verbinden.
    am uC hast dann die pins Rx und Tx zur kommunikation. wie du sie verwendest hängt vom compiler ab. mit Bascom dürfte es nicht so schwer werden, auf irgendwelche seriellen befehle zu reagieren.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    74
    Beiträge
    2.063
    Wenn Du einem Controller mit Schrittmotor-Endstufen vom PC aus sagen möchtest, wieviel Schritte in welcher Richtung SM Nr. 2 drehen soll oder ob SM 1 seinen Nullpunkt suchen muß, kannst Du etwas 'Vorarbeit' von mir down-loaden, alles mit SMOST = SchrittMOtorSTeuerung.
    Und hier wird Hardware dazu angeboten.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2006
    Ort
    Wiesbaden
    Alter
    36
    Beiträge
    14
    moin, x-ryder - was bist du den für ein LOL, wenn ich 4 motoren unabhängig voneinander steuern will, geht das mit sicherheit nicht nach deiner Vorstellung.
    Ich denke mal, ich werde die 4x8Bit jetzt über die Parallelschnittstelle senden, da ich die RS232 nicht raffe... zumindest unter delphi nicht. na ja, egal...

    mfg

    qube

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    35
    Beiträge
    1.614
    ehm ma ne frage, hast du dir das angeschaut, aufgrund der trägheit des eisenkerns werden die motoren einfach weiterdrehen, der parallelpost arbeitet schnell, wenn die programmierung auch gut ist...

    damit lässt sich wohl ne recht gute motorsteuerung bauen, du kannst das ganze sogar noch mit nem zähler verbinden, dann lassen noch mehr motoren anbringen, aber wenn du die lösung nicht verstehst iss das auch ok.

    aber es wäre noch freundlich, die, die dir helfen wollen nicht zu beleidigen, nur mal son tipp

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus