- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: mehrere ATtiny13 über PC steuern

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2010
    Ort
    Siegsdorf
    Alter
    59
    Beiträge
    5

    mehrere ATtiny13 über PC steuern

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken steuerung.png  

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.08.2008
    Ort
    Hallein
    Alter
    33
    Beiträge
    802
    Ich würde eher am PC einen Seriell zu I2C Wandler benutzen und die ganze µC über I2C vernetzen. dann kannst du auch schön praktisch adressen vergeben.
    Kultuverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2010
    Ort
    Siegsdorf
    Alter
    59
    Beiträge
    5
    Zitat Zitat von TheDarkRose
    Ich würde eher am PC einen Seriell zu I2C Wandler benutzen und die ganze µC über I2C vernetzen. dann kannst du auch schön praktisch adressen vergeben.
    Danke für den Tip, aber TWI wollte ich eigentlich nicht verwenden.
    - Erst mal habe ich nur einen freien Pin je MC und bräuchte aber zwei (SDA und SCL).
    - die Entfernung beträgt bis zu 1 m
    - die Störanfälligkeit ist mir zu groß

    Gruß
    Bruno
    Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
    Georg Christoph Lichtenberg

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    @ kmsoftly

    Wenn du eigenes Protokol für die Datenübertragung benutzen könntest, kannst du zu immer zwei Bytes schicken: Adressbyte und Steuerbyte.

    Jeder µC sollte nur die Steuerbytes für Weiterverarbeitung nehmen, die mit seiner Adresse für ihn geschickt wurden. Somit kann man bis zu 256 µCs am RS232 bei einem MAX232 verwenden.

    Einziges Nachteil ist, dass die Komunikation langsamer ist, was aber vielleicht mit doppelter Baudrate kompensiert werden könnte.

    MfG

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2010
    Ort
    Siegsdorf
    Alter
    59
    Beiträge
    5
    Wenn du eigenes Protokol für die Datenübertragung benutzen könntest, kannst du zu immer zwei Bytes schicken: Adressbyte und Steuerbyte.
    Genau so hatte ich mir das vorgestellt. Sollte so ähnlich funktionieren wie MPC.
    Jeder µC sollte nur die Steuerbytes für Weiterverarbeitung nehmen, die mit seiner Adresse für ihn geschickt wurden.
    Ja, und genau da habe ich meine Schwächen. Wie sage ich dem ATtiny welche Adresse er hat und wie kriege ich ihn dazu die Steuerbytes einzulesen? In der Theorie leuchtet mir das alles ein, aber an der praktischen Umsetzung hapert es

    Über ein wenig Hilfestellung wäre ich sehr dankbar.

    Gruß
    Bruno
    Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
    Georg Christoph Lichtenberg

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    Ich kann dir nur algemein helfen, weil ich als PIC Benutzer die AVRs zu wenig kenne.

    Alle an RS232 Bus angeschlossene µC müssen ständig den Bus überwachen z.B. per Interrupt von USART damit keine aus PC geschickte Informationen verloren gehen.

    Wenn jeder µC beim flaschen eigene Adresse ins EEPROM bzw. Flasch bekommt, kann er bei jeden empfangenen zwei Bytes, durch Vergleich feststellen, ob der zweite für ihn bestimmt ist und entsprechend reagieren.

    Wenn etwas unklar wäre, frag, bitte, ohne Zitaten weiter...

    MfG

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2010
    Ort
    Siegsdorf
    Alter
    59
    Beiträge
    5
    Dummerweise hat der ATtiny13 aber kein USART. Müsste ich dann wohl softwaremäßig lösen.

    Gruß
    Bruno
    Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
    Georg Christoph Lichtenberg

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Vielleicht lohnt es sich wegen Aufwand in Software, wenn Platz dafür gibt, einen anderen AVR mit USART nehmen ?

    MfG

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    18.04.2010
    Ort
    Siegsdorf
    Alter
    59
    Beiträge
    5
    Ja, das hab ich mir auch überlegt. Ich werde wohl je Arm einen ATMega8 nehmen.

    Danke & Gruß
    Bruno
    Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
    Georg Christoph Lichtenberg

Berechtigungen

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

Labornetzteil AliExpress