- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 16

Thema: Mein erster Hexapod

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Ich denke auch es sind Belastungsspitzen. Du hast Externe Versorgung für die Servos, woher kommt die?
    Ich würde vorschlagen Du trennst vorerst die Versorgungsspannung µC und Servos - falls noch nicht oder nicht korrekt. Weiter sind Stützkondensatoren in den Versorgungsleitungen, und auch zum µC eine Gute Idee.
    Du besorgst Dir einen LiPo Akku mit mindestens 2000mAh 11,1V (10C) dazu eine kleine Schaltung mit dem 7805 der dir 5V liefert.
    Der 7805 den du verbaut hast welche Leistung kann der vertragen 1A oder 2A? -oder mehr? Wird der besonders warm?

    Wenn ich mal wüßte was beim BrownOut detection konkret passiert?

    Wenn es anfangs lief, was hast Du verändert das es nun nicht mehr richtig läuft?

    Als allerersten versuch das nochmal einzu grenzen würde ich alles Servos abnehmen, und nur das bein welches am meisten mit dem Fehler auffällt dran lassen, dann ganz normal das Programm laufen lassen und wenn da dann immer noch etwas hackt und zuckt ist der Fehler höchstwahrscheinlich im Programm, da Du ja sagst deine Leistung sollte eigentlich für 18 Servos ausreichen, dann sollte es kein Problem bei 2-3 Servos mit der Versorgung geben und wenn der Fehler immer noch auftritt müsste er ja aus dem programm kommen. Probier das vielleicht seperat mit allen Beinen durch.
    Geändert von HeXPloreR (18.09.2012 um 17:30 Uhr)

  2. #2
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    42
    Beiträge
    4.534
    Blog-Einträge
    1
    Wenn schon ein Osizi da ist dann mess mal die Spannung nach und kuck ob nicht dort ein ungewollter Spanungseinbruch ist. So wie du das Beschreibst und die Kollegen das schon richtig erkannt habe, lässt es eher auf einen Fehler in der Stromversorgung schliessen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    18.09.2012
    Beiträge
    7
    Argh
    also zu allererst:
    @HeXPloreR:

    ich habe nen Schaltplan hochgeladen, sowie gesagt, dass die Servos von einem PC Netzteil oder auch schon mit Akku bestromt werden.
    Weiter habe ich auch erwähnt, dass ich schon Kondensatoren zwischengeschaltet habe und dies keinen Unterschied ergeben hat.
    Was meinst du jetzt mit der Brown Out Detection?
    Meines Erachtens habe ich auch nichts geändert. Ich habe die Platine genommen, sie von dem Prototyp Hexapod auf meinen neuen gesetzt, der etwas größer und stabiler gebaut war und bessere Servos hat, habe die angeschlossen und seitdem Problem.
    Die Platine habe ich seitdem paarmal neu geätzt und auch verbessert(meines Erachtens). Die einzigen Änderungen waren jedoch dickere Leiterbahnen und eine LED ^^
    Ich habe schon alle Servos einzeln getest, einzelne Beine, nur eine Seite: das Ergebnis ist immer dasselbe. Es ruckelt.
    Wenn ich jedoch ein Programm schreibe, was einen Servo auf einer Position halten soll und nicht mehr macht mit derselben Stromversorgung, dann funktioniert das. Bzw. es hat vor einigen Wochen mal funktioniert. Ich werde es nachher nochmal ausprobieren.
    Meine Vermutung ist ja auch das Programm. Jedoch weiß ich leider nicht wo. Und wie gesagt, ich habe auch schon die "webbotlib" ausprobiert, die dafür geschrieben wurde und genau derselbe Fehler ist aufgetreten. Aber auf eine Lösung bin ich bisher noch nicht gekommen, deswegen frage ich ja hier nach einer Idee. Ich wüsste nicht wie ich eine saubere Versorgungsspannung als mit einem Akku hinbekommen soll.

    @ HannoHupmann

    Wo ist denn der Fehler dann in der Stromversorgung?
    Der Fehler tritt, wie schon oben beschrieben, immer an derselben Stelle auf wenn die Beine von oben nach unten gehen ungefähr mittig.
    Wieso sollte genau da die Spannung weg brechen? Die Last ist doch von unten nach oben stärker dachte ich.
    Ich habe auch schon im Akkubetrieb versucht die Servos zu steuern und bei einem Akku kann die Spannung doch ansich nicht weg brechen?

    Also ich weiß nicht, ob ich mich jetzt mehr mit einem Programmfehler auseinandersetzen muss oder doch das Problem an der Hardware liegt.bzw. Stromversorgung liegt oder ob sogar der Takt vom AtMega einfach falsch ist oder sonstwas.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    hmm, im programm fällt so auf den ersten blick nur auf das Du 20 PWM channels angibst, kann es möglich sein dass das bei 18 Servos zwei zuviel sind? Ist ein Servo vielleicht doppelt angesteuert?-ausversehen?
    ...benötigst Du diese momentan für etwas, sonst kannst Du sie vielleicht kurzfristig auf 18 ändern. Möglicher wird dadurch tatsächlich ein (timer)Überlauf irgendwo produziert. Oder dadurch Servopositionen bzw (PWM-frequenz) an den falschen Ports ausgegeben?

    Wie meinst Du dass das ein Akku nicht einbrechen kann?
    Ein normaler Akku kann gegebenfalls nicht so schnell auf die wechselnde Last der Servos reagieren, dadurch bricht die Spannung kurzfristig ein (die Kapazität kann nicht schnell genug abgegeben werden, ohne das der Akku schaden nimmt), das zucken entsteht. Stützkondensatoren können soetwas anfanglich kompensieren. Abhilfe schafft aber wohl nur ein Akku, getrennt von der Versorgungsspannung des µC, mit den überragenden Eigenschaften eines LiPo's genug Kapazität schnell zur Verfügung zu stellen.

  5. #5
    RN-Premium User Roboter Genie Avatar von 5Volt-Junkie
    Registriert seit
    05.03.2008
    Alter
    38
    Beiträge
    947
    Alternative wäre mit einem einfachen Programm alle Servos anzusteuern. Ohne Berechnung etc. Sollten sie sich weiterhin komisch verhalten, würde ich die SW fast ausschließen.

    BTW: die Leiterbahnen sind aber ziemlich dünn ausgelegt

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    18.09.2012
    Beiträge
    7
    Danke schonmal, ich werde das Programm mal ausprobiern und auch die Idee mit der einfachen Servoansteuerung von allen nochmal.

    @HeXPloreR

    ich habe es auf 20 Servos gemacht, da das D Register nur 6 nutzbare pins hat und die anderen beiden belegt sind. Diese werden halt mit irgendnem Mist angesendet, was ich aber dachte ansich egal sein sollte. Kanns aber ändern, war nur leichter, um die Masken für die Register zu verwenden.
    Ich wusste nicht, dass Akkus da Probleme machen können. Ich weiß nicht, wie es sich da mit Netzteilen verhält, aber ich werde mal nen Lipo benutzen, um diese Fehlerquelle schonmal ausschließen zu können.

    @5Volt-Junkie

    ja, teilweise sind die wirklich sehr dünn. Ich dachte aber, da nicht viel Spannung da drüber läuft, sollte das egal sein.

    Morgen weiß ich mehr und werde es mal hier berichten

  7. #7
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    42
    Beiträge
    4.534
    Blog-Einträge
    1
    Die Stromversorgung der Servos würde ich auf jedenfall dicker machen, da hier leicht mal 2Amper fliessen können. Der Strom bestimmt den Leitungsquerschnitt und nicht die Spannung. Optional könnte man allen Signalleitungen einen 100Ohm Widerstand spendieren zur Absicherung.
    Deine GND Leitung führt zudem erst mal über die Servos und dann erst an die Logik, d.h. sie kann sich leicht Störungen einfangen.

    Weiter fürchte ich, dass es mit einem Spannungsregler nicht funktionieren wird, meine Erfahrung ist, dass diese nicht in der Lage sind mit den Lastspitzen der Servos zurecht zu kommen. Die einzige Möglichkeit wäre es hier mit sehr vielen Kondensatoren zu arbeiten, die die Spitzen auffangen. Bei meinem neuen Vinculum läuft die Stromversorgnung der Servos komplett unabhängig von der Logik, die ist nicht mal auf der selben Platine.

    Bei dir ist sogar noch die Logik mit der Leistungsseite verbunden und nur mit ein paar 100nF gepuffert.
    Bei der Platine muss ich leider sagen, dass es mich gar nicht wundert, wenn die Signale nicht sauber bei den Servos ankommen.

    Trenn mal die Logik von der Servosstromversorgung (auf der Platine) und miss die Spannung mit einem Oszi (Multimeter ist zu langsam).

    Ich hatte ein gleiches Problem bei meinem ersten Hexabot auch und immer wieder an der gleichen Stelle hat er angefangen sich willkührlich zu bewegen. Als ich die Spannung dann mit dem Oszi gemessen hab wurde klar, dass die Logik unter 5V fällt. Seid dem (und weil mir der Labormeister das so empfohlen hat) trenne ich Logik und Servos so gut es geht. D.h. Ich betreibe die Logik mit einer 9V Batterie (natürlich über Spannungswandler) und die Servos über die 7,2V des LiPo. Sie teilen sich nur eine gemeinsame Masse (wobei ich im Moment die vollen 7,2V auf die Servos gebe und sie nicht auf 6V herunter regel. Bei den HiTec Servos ging das bisher gut und bei den BlueBirds wird es sich zeigen)

    Hier die Platine für mein Vinculum. Im unteren Bereich sind die Servo Signalleitungen angeschlossen. Wie du siehst hab ich sehr dicke GND Flächen (keine Leitungen sondern eben der Rest der Platine). Es gibt nur eine Leitung die ich dünn machen muss, da sie zwischen den Pins entlang läuft und die überträgt nur ein Logiksignal. Ich komm auf der Platine mit zwei Brücken aus.

    Klicke auf die Grafik für eine größere Ansicht

Name:	Platine.jpg
Hits:	11
Größe:	145,2 KB
ID:	23290
    Wenn du dir beim Routing der Platine etwas mehr Mühe gibst, bekommst du das Layout garantiert fast ohne Brücken hin. Außerdem kannst du dir Störeffekte die durch Layout entstehen können sparen.

    Mit Strom werden die Servos auf einer seperaten Platine versorgt die nochmal Kondensatoren zum Abblocken enthält. Diese Versorgung selbst hat eine 2200µF + 100µF + 100nF Kondensatorbank parallel geschaltet um alle Lastspitzen einzufangen.

    Ich beschrenke meine Hilfe jetzt nur auf der Hardware Ebene, es schauen ja auch schone in paar User auf deinen Code.
    Geändert von HannoHupmann (19.09.2012 um 08:33 Uhr)

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Mein Code für 18 Servos mit einem 16MHz Mega16:
    https://www.roboternetz.de/community...l=1#post524912

    Die Ansteuerung ist auf die zwei CompareMatch-ISR des Timer1 aufgeteilt. Die Impulse für die Servos werden jeweils nacheinander ausgegeben, dadurch werden die Anlaufströme gleichmässiger verteilt. Der Bereich der Impulslängen für meine Servos (ES05) war von ca. 200 bis ca. 500 (mit Reserve). 500 entspricht 2ms, 5000 dauert 20ms und ist die Startwiederholzeit von der während eines Zykluses die einzelnen Impulslängen abgezogen werden. Mit Impulslänge=0 wird das betreffende Servo nicht angesteuert.

    Zusätzliche Funktionen: 1/50-Sekunde Pause mit sleep() die mit den Servoimpulsen synchronisiert ist, gepufferter USART-Empfang per Interrupt und senden von Char, String und Integer (38400Baud), SPI-Ansteuerung und Terminalansteuerung für "Beine" mit drei Servos:

    ax,wert - Steuert das xte Servo im Strang A mit dem Wert wert an (x von 1 bis 9, wert von 200 bis 500)
    bx,wert - Steuert das xte Servo im Strang B mit dem Wert wert an
    cx,wert1,wert2,wert3 - Gibt an Bein x die Werte wert1, wert2 und wert3 an die Servos 1,2 und 3 aus.

    (Der letzte Wert in c() legt eine Wartezeit zwischen den Änderungen für einzelnen Servos in 1/50sek fest.)

    Das ist als Inspiration gedacht, denn auch bei der Servoansteuerung führen viele Wege zum Ziel.

    Gruß

    mic
    Geändert von radbruch (18.09.2012 um 18:30 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. Erster Hexapod (5VJ)
    Von 5Volt-Junkie im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 111
    Letzter Beitrag: 27.03.2018, 19:47
  2. Erster Hexapod
    Von High Light im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 106
    Letzter Beitrag: 29.06.2012, 07:41
  3. Erster Hexapod
    Von Wergenter im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 2
    Letzter Beitrag: 25.03.2012, 17:19
  4. Mein erster Hexapod
    Von vitja09 im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 11
    Letzter Beitrag: 12.11.2010, 06:10
  5. Mein Hexapod Projekt
    Von klucky im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 32
    Letzter Beitrag: 15.02.2005, 10:13

Berechtigungen

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

12V Akku bauen