kmsoftly
18.04.2010, 21:36
Hallo zusammen,
ich bin gerade an folgendem Projekt:
Es sollen zwei Roboterarme mit je 3 Gelenken entwickelt werden. Jedes Gelenk kann
a) an- und abwinkeln
b) drehen
D.h. es werden insgesamt 12 DC-Motoren benötigt, die mit 6 x L6205 angesteuern werden. Die Steuerung des Neige- bzw. Drehwinkels erfolgt mittels Spannungsteiler (Widerstand und Poti, das durch die Motorachse gedreht wird). Die abgegriffenen Spannungswerte werden durch einen AD-Wandler (6 x ATtiny13) mit Sollwerten verglichen. Der MC liefert dann die Steuerspannung für den Vorwärts- bzw. Rückwärtsbetrieb der beiden Motoren des Gelenks an den L6205. Ist der vorgegebene Spannungswert (also der gewünschte Winkel) erreicht, schaltet der ATtiny13 den jeweiligen Pin auf Low.
Die jeweiligen Winkelvorgaben sollen vom PC über die RS232-Schnittstelle über einen MAX232 an die jeweiligen Mc's geliefert werden. Und genau das ist mein Problem:
Wie erkennt der einzelne ATtiny13 das ein Wert für ihn gedacht ist? Ich stelle mir das so vor, dass alle ATtinys wie an einer Art Bus hängen und mit dem RXD-Ausgang des MAX232 verbunden sind. Die Kommunikation muss ja nur in eine Richtung erfolgen (PC --> MC).
Der vom PC gelieferte Winkelwert soll im MC registriert und mit dem aktuellen Winkelwert verglichen werden. Ist der gelieferte Wert kleiner/größer als der Istwert, wird der Motor solange vorwärts/rückwärts bewegt, bis Ist- und Sollwert übereinstimmen.
Jeder ATTiny hat folgende Pins belegt:
1x Reset
1x VCC
1x Ground
4x Ansteuerung L6205
es wäre als noch ein Pin übrig um die Winkelvorgaben für die 2 Motoren zu liefern.
Ein Übersichtsplan zur Erklärung ist angehängt.
Hab ich mich sehr wirr ausgedrückt? Na ja, ich glaube Ihr wisst, was ich meine. Hat jemand eine Erklärung für mich? Oder vielleicht sogar ein Beispiel? Bin über jede Hilfe dankbar. Aber wenn es geht bitte in einfachen Worten. Ich bin leider noch sehr unerfahren mit der ganzen Materie.
Danke
Bruno
ich bin gerade an folgendem Projekt:
Es sollen zwei Roboterarme mit je 3 Gelenken entwickelt werden. Jedes Gelenk kann
a) an- und abwinkeln
b) drehen
D.h. es werden insgesamt 12 DC-Motoren benötigt, die mit 6 x L6205 angesteuern werden. Die Steuerung des Neige- bzw. Drehwinkels erfolgt mittels Spannungsteiler (Widerstand und Poti, das durch die Motorachse gedreht wird). Die abgegriffenen Spannungswerte werden durch einen AD-Wandler (6 x ATtiny13) mit Sollwerten verglichen. Der MC liefert dann die Steuerspannung für den Vorwärts- bzw. Rückwärtsbetrieb der beiden Motoren des Gelenks an den L6205. Ist der vorgegebene Spannungswert (also der gewünschte Winkel) erreicht, schaltet der ATtiny13 den jeweiligen Pin auf Low.
Die jeweiligen Winkelvorgaben sollen vom PC über die RS232-Schnittstelle über einen MAX232 an die jeweiligen Mc's geliefert werden. Und genau das ist mein Problem:
Wie erkennt der einzelne ATtiny13 das ein Wert für ihn gedacht ist? Ich stelle mir das so vor, dass alle ATtinys wie an einer Art Bus hängen und mit dem RXD-Ausgang des MAX232 verbunden sind. Die Kommunikation muss ja nur in eine Richtung erfolgen (PC --> MC).
Der vom PC gelieferte Winkelwert soll im MC registriert und mit dem aktuellen Winkelwert verglichen werden. Ist der gelieferte Wert kleiner/größer als der Istwert, wird der Motor solange vorwärts/rückwärts bewegt, bis Ist- und Sollwert übereinstimmen.
Jeder ATTiny hat folgende Pins belegt:
1x Reset
1x VCC
1x Ground
4x Ansteuerung L6205
es wäre als noch ein Pin übrig um die Winkelvorgaben für die 2 Motoren zu liefern.
Ein Übersichtsplan zur Erklärung ist angehängt.
Hab ich mich sehr wirr ausgedrückt? Na ja, ich glaube Ihr wisst, was ich meine. Hat jemand eine Erklärung für mich? Oder vielleicht sogar ein Beispiel? Bin über jede Hilfe dankbar. Aber wenn es geht bitte in einfachen Worten. Ich bin leider noch sehr unerfahren mit der ganzen Materie.
Danke
Bruno