- 3D-Druck Einstieg und Tipps         
Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 68

Thema: RING-O I -- first moves

  1. #41
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Anzeige

    E-Bike
    Hallo Sigo
    Habe erst jetzt genau geschaut.
    Mit welchen Chip steuerst Du den den Motor an?
    Der Schaltplan ist leider zu klein, um das zu erkennen.
    Mit welchen Regelalgorithmus regelst Du den den Motor?
    Ich kenne da ein anderes Selbstbauprojekt (UHU). Da wird es mit modifiziertem PID gemacht..

    l.G. Roberto

  2. #42
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984
    dass der Schaltplan so klein ist, liegt daran, dass weiter oben im Chat irgendein vorlauter Halbstarker über einen zu großen Schaltplan gemoppert hat. Jetzt gibt es hier nur noch Pläne, die auf's Bild passen. So issas.

    Ich habe auf der Endstufe 2 Chips:

    1 x ATtiny2313 als mehrstufigen digitalen - Regler
    1 x L6205 als Endstufe

    Per Jumper kann man wählen, ob der L6205 mit einer Brücke (nominell 2,8A) oder 2 Brücken parallel (nominell 5,6A) arbeitet. Der Spitzenstrom ist jeweils doppelt so hoch. Thermisch dürfte es allerdings eher bei ca. 2,8A / 4A liegen. Ich habe die Grenzen noch nicht ausgelotet.

    Der ATtiny kann Inkrementalgebersignale bis ca. 120kHz verarbeiten und macht auch die Quadraturdecodierung und Impulsvervierfachung, sowie den +/- 30Bit Positionszähler.
    Der Regler hat eine Sampletime von ca. 800µs.
    Die PWM-Frequenz beträgt aktuell ca. 15,5kHz.
    Es ist ebenfalls ein modifizierter mehrstufiger PID-Regler. Mit unterlagerter Drehmoment, Drehzahl und Stromregelung. Der Strom wird übrigens nicht gemessen, sonder aus den Systemdaten des Motors etc nur errechnet.
    Das spart Schaltungsaufwand, aber man MUSS den Regler sehr gut parametrieren. Wenn das aber erfolgt ist (mit vorhandenen Motorkenndaten kein Problem), kann man den Strom exact auf einige mA genau ermitteln. Als Messwiderstand dient die Motorwicklung..
    Da der L6205 über eine eigene Strombegrenzung verfügt, kann zumindest nichts anbrennen, wenn der Regler noch nicht optimal paramtriert ist.

    Er hat 4 bzw. 6 Modi:
    PWM: einfach fixe PWM ausgeben
    Drehmoment: geregeltes konstantes Drehmoment
    Drehzahl: geregelte Drehzahl
    Position: geregelte Position mit programmierbaren Beschleunigungsrampen und Drehzahl
    Servo: übergebene Positionen werden ständig mit max. Power nachgeführt bzw. gehalten.
    Sowie Takt+Richtung (TTL):
    Hier kann man die Position per Takt und Richtung wie bei einer Schrittmotorsteuerung reintakten.

    Die Kommunikation mit dem ATtiny erfolgt via (TTL-) RS-232 @ 19,2kBit/s oder auch 38,4kBit/s. Wenn man einen RS-232-Treiber braucht, kann man den als Modul zwischenstecken, ggf. auch galvanisch getrennt.

    Ich hatte versucht, den I2C zu implementieren, dazu fehlt mir aber der Speicherplatz und auch die verbleibende Verarbeitungszeit. Egal, so geht es ja auch.

    Gruß Sigo

  3. #43
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Hallo Sigo
    Es ist ebenfalls ein modifizierter mehrstufiger PID-Regler. Mit unterlagerter Drehmoment, Drehzahl und Stromregelung.
    Da bist Du ja gut drauf im Programmieren
    In was programmierst Du und würdest Du den Quellcode eventuell auch weiter geben?

    l.G. Roberto

  4. #44
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984
    Hallo Roberto,


    Programmiersprache:
    Assembler, sowas geht bei einem 8-Bitter nur in Assembler, wenn man diese Performance erreichen will

    Programmierer:
    Geht so. Ich verwende einige Code-Schnipsel und Scipte.
    Ich hatte gute 15 Jahre Pause, seit meiner aktiven Zeit in der Entwicklung, von Motorsteurungen und (Brushless-)Motorendstufen. Jetzt fange ich mühsam wieder als Hobby an.

    Sourcecode:
    Ich verstehe ja deine Frage, aber ...sorry

    Jedoch:
    Ich könnte dir evtl. geproggte Controller anbieten.
    Und ggf. auch unbestückte, ungebohrte, einseitige, selbstgeätzte Platinen.
    Bei Interesse PN an mich.

    Ach ja, es gibt auch ein Open-Servo-Projekt. (googlen oder hier im Board suchen), da wird ebenfalls ein AVR Controller genommen, um damit digitale Servos mit I²C-Ansteuerung zu bauen. Interessantes open-source Projekt. Evtl. findest du da verwendbaren Code.

    Gruß Sigo

  5. #45
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Halo Sigo

    Ich verstehe ja deine Frage, aber ...sorry
    Kein Problem , akzeptiere ich voll.
    Konnte es halt einfach nicht lassen und mal fragen

    Ich könnte dir evtl. geproggte Controller anbieten.
    Und ggf. auch unbestückte, ungebohrte, einseitige, selbstgeätzte Platinen.
    Bei Interesse PN an mich.
    Danke, aber werde ich nicht brauchen.
    Wollte es nur eventuell in eigene Projekte einbinden...
    Aber das dauert alles noch...
    Jetzt muss ich erstmal meine zweite Fräse (zum Platinenfräsen) fertig machen...

    Ach ja, es gibt auch ein Open-Servo-Projekt. (googlen oder hier im Board suchen), da wird ebenfalls ein AVR Controller genommen, um damit digitale Servos mit I²C-Ansteuerung zu bauen. Interessantes open-source Projekt. Evtl. findest du da verwendbaren Code.
    Ja, werde mal schauen

    l.G. Roberto

  6. #46
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984
    2 neue Fotos:

    Bild hier  

    Bild hier  

    Ich habe die 3 Servoverstärker zusammen mit dem Motioncontroller jetzt auf den Bot montiert. Da die 4 Module irgendwie zusammengehören,habe ich sie auf eine gemeinsame Grundplatte geschraubt. So kann man zum Programmieren die Module ohne das Chassis auf den Tisch legen.

    Der Motioncontroller kann nun schon einen Vektor (Länge in mm, Winlel in Grad) in die nötigen inkremente der einzelnen Motoren umwandeln und diese an die Motoren schicken, sodass diese den Punkt anfahren.

    Als nächstes muss die Geschwindigkeit aller 3 Motoren noch so errechnet werden, dass sie gleichzeitig ihr Ziel erreichen.

    Problem:
    Idealerweise sollten auch die Beschleunigungen so abgestimmt werden, dass bei einem trapezförmigen Fahrprofil die Knicke im Geschwingkeit-Zeit-Diagramm (Beschleunigungssprünge) aller 3 Achsen zur gleichen Zeit stattfinden, sodass wirklich eine Linie gefahren wird. Hmm...grübel....
    Any ideas? Ist schon reichlich lange her...

    Nächstes Ziel:
    Ein Video, auf dem der Bot endlich ein paar Figuren fährt.
    Z.B. ein Quadrat, Dreieck und (hoffentlich) auch einen Kreis (360-Eck).

    Perspektive:
    Sensor-controller, der die div. Sensorsignale vorverarbeitet.
    (3 bzw. 6 IR-Bumper, 1 Sharpsensor, 1 Rundumbumper, 2 US-Sensoren...
    Mission-controller, der mit den Sensorsignalen und dem Motioncontroller irgendwas (un-)sinnvolles anfängt...

    Sigo

  7. #47
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984

    Ring-O --- first moves

    Erste Bewegungen:

    http://www.silbergold.de/fotos/26022008-13s.mov

    Zunächst nur 3-Eck und Rotation
    Die Motorauslegung passt.
    Gewogen habe ich ihn auch: 2,1kg

    EDIT: Hier noch ein längeres Video (30MB):
    http://www.silbergold.de/fotos/26022008.mov

    Sigo

  8. #48
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984
    Ich habe mich jetzt mal an einem Quadrat 100mm x 100mm versucht:

    Bild hier  

    Mehr war auch nicht zu erwarten, denn die Motoren drehen sich nicht synchron, sondern fahren alle ein eigenes Bewegungsprofil, nur die Positionen sollten wieder stimmen. Zwischendurch gibt es gravierende Verschiebungen, d.h. über die Zeit fahren die Motoren keine zueinanderpassenden Positonen oder Drehzahlen an.
    Daher auch der Schwung in den Linien.
    Aber das ist ja auch nur ein Anfang..

    Sigo

  9. #49
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    58
    Beiträge
    576
    Hallo Sigo

    Gratuliere!!
    Schaut ja gut aus
    Fehlt vielleicht noch so eine Lasermaus zur Positionsbestimmung

    Wie lässt Du das eigentlich berechnen ? Algorithmus?

    Ich bin da mal bei meinen Roboterarm nicht weiter gekommen.
    Da hätte ich auch für jede Achse den richtigen Winkel berechnen müssen, dass der Arm z.B. senkrecht nach unten fährt..

    Vielleicht mache ich da irgendwann mal weiter...?!
    l.G. Roberto

  10. #50
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984
    @ Roberto:
    Ich habe die folgende Formeln irgendwo gefunden, um die Drehzahlen der 3 Räder zu berechnen:

    V0 = Vx - omega * R
    V1 = -1/2 * Vx + Wurzel (3) / 2 * Vy - omega * R
    V2 = -1/2 * Vx + Wurzel(3) / 2 * Vy - omega * R

    Vx und Vy sind die x- und y-Komponenten des Geschwindigkeitsvektors
    V0, V1, V2 die Geschwindigkeiten (umzurechnen in Drehzahlen) der 3 Räder.

    Der letzte Term (- omega * R) ist der Drehwinkel * Radius des Rades zur Fahrzeugmitte. Damit wird eine Rotation des Bots umseine Achse beschrieben. Diese lasse ich erstmal weg, bzw. mache das nicht gleichzeitig.

    Mein aktuelles Problem ist, dass ich die Räder nicht im Drehzahlmodus betreibe, sondern im Positioniermodus. Ich kann natürlich auch statt der Geschwindigkeit (Drehzahl) Positionen eingeben. Diese verhalten sich ja theoretisch genauso, wenn man von einer konstanten Geschwindigkeit ausgehen könnte.

    Wenn du genau hinsiehst, kann man feststellen, dass 2 Strecken ziemlich gerade sind, die beiden anderen aber geschwungen. Das liegt daran, dass 2 Strecken mit 2 Rädern gefahren werden, die die gleichen Wege fahren. Dagegen werden die beiden anderen Strecken mit 3 Rädern gefahren, die alle unterschiedlich weit fahren. Ich kann aber aktuell noch nicht die Drehzahl und die Beschleunigungsrampe so berechnen, dass alle 3 Achsen gleichzeitig ihre Fahrt beenden, zur gleichen Zeit (Weg) ggf. von Beschleunigen auf konstante Geschwindigkeit gehen, etc..

    Evtl. wäre es ja besser, alles im Drehzahlmodus zu machen und selbst einen Generator für die Drehzahl (t) - Sollkurve zu erstellen, sodass dann alle 3 Achsen möglichst oft eine neue berechente Solldrehzahl bekommen und so immer im richtigen Verhöltnis zueinander drehen.../ fahren, ankommen...Dann wird es auch ein schönes Viereck und ich kann mich an das Haus vom Nikolaus machen...

    Tja, meine Unizeit ist schon 20 Jahre her....

    Daher erstmal ein paar andere Arbeiten:
    IR-Bumper montieren, eine Akkuüberwachung und-ladeschaltung entwerfen und vor allem bessere Räder besorgen.

    Zu den Roboterkoordinaten weiß ich nur noch, dass da viele Matrizen reinspielen. Rechnen könnte ich das auch nicht mehr.
    Dazu wird sich doch sicher was im Web finden. Hast du z.B. schon unter Wikipedia z.B. unter Scara-Roboter geschaut?

    Offenbar hängen wir an einem ähnlichen Problem fest..

    Wenn ich was finde, maile ich es dir.

    LG Sigo

    Ach ja, die Lasermaus würde mich auch sehr interessieren, bzw. genauer gesagt gleich 2 davon. Denn ich möchte ja auch den Drehwinkel erfassen.

    Eine andere Möglichkeit wären 2 bzw, 3 weitere kleine Omniwheels in x/y-Anordnung mit Inkrementalgebern, die in der Mitte des Bots mit ihrem Eigengewicht an einer vertikalen Führung gegen den Boden drücken und dann wie eine klassische Maus arbeiten würden. Laser ist aber natürlich eleganter.

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress