Der Rabe baut sich... LISA, ein Self Leveling Vehicle

  • Ein verdammt interessantes Projekt, da bleibe ich mal dran :popcorn:


    Eine Frage: Weshalb genau benötigst du so viele Arduinos? Wenn es nur um das generieren der PWMs für das Servoprotokoll an die entsprechenden Regler geht, wäre doch ein PCA9685 sinnvoll... Der gibt dir die 16 Kanäle PWM und ist über I2C sehr einfach anzusteuern. Damit sparst du dir doch die gesamte Architektur und Aufgabenverteilung und Synchronisation zwischen den einzelnen Ardus? Oder verstehe ich da jetzt irgendetwas an deiner Planung nicht? :D


    Gruß,
    Felix


    Nachtrag: Zu dem Sensor-"Problem": Wenn du den Strom zu deinem Radantrieb misst, solltest du mit entsprechender Kalibrierung doch recht zuverlässig erkennen können, ob dein Rad Bodenkontakt hat (-> höhere Stromaufnahme bei bestimmter Drehzahl) oder frei hängt (-> niedrigere Stromaufnahme)

    Wo ich fahre bleibt eine unverkennbar tiefe Reifenspur, gespickt mit defekten Teilen...

  • Willkommen :bier:


    Ich sach doch, es wird spannend. Ich habe null Vorkenntnisse was Elektronik und/oder regelungstechnik angeht. Ok, ich weiss welche seite vom lötkolben ich anfassen sollte :D
    Das war es aber auch schon.
    Ich bin auch nicht im Bilde was es sonst noch für Bauteile auf dem Markt gibt.
    Mir ist auch vollkommen bewusst , daß sich kenner der Materie gruseln müssen.


    Aber so versuche ich das ganze mit den Mitteln, die ich kenne und (vermeintlich) beherrsche, zu lösen.


    Das vorliegende Konzept hat für mich folgende Vorteile:


    Aufteilung des Codes auf mehrere Baustellen macht das ganze, für mich, übersichtlicher.
    Mehr arduinos = mehr platz für code.


    Der master bekommt die signale vom empfänger und evtl noch die vom gyro.


    Die slaves behandeln jeweils 8 aktoren. Evtl noch die Rückmeldungen von sensoren etc.


    (Wie gesagt ist der dritte slave nur evtl für ein display angedacht)


    Ich denke mal damit sind alle beteiligten gut beschäftigt aber nicht überlastet.



    Nachklapp zu deinem Nachklapp: gute idee. Kommt auf die liste.

  • Hut ab vor Dir, Ralf das ist ein echt klasse und ehrgeiziges Projekt. Ich hoffe das Du daraus etwas fahrbares machst. Vielleicht kannst du mal die NASA nach ner Software fragen, die ham bestimmt was brauchbares. :D Ansonsten ist warscheinlich neben dem Fahrakku auch ein Computerakku nötig. gamer


    Gruß Carsten

  • bestimmt jeck

    Bestimmt jeck bist Du wohl auch !


    ( Soll ein Kompliment sein, nicht mißverstehen, bitte ! )


    Ich bleibe hier auf jeden Fall dran !


    Gruß!
    Frank

    Der tut nix, der will nur spielen...


    Ich bin sehr spontan - man muß mir nur genügend Zeit geben!

  • Wer in diesen erlauchten Kreisen ist nicht ein büschen bluna? :D



    Sodele. Teile sind bestellt. Nächste Woche wird es dann hoffentlich intensiv losgehen.
    Bis dahin kommen noch die Basics. Die Bandsäge steht zu exponiert und ist zu laut für Sonntagsbetrieb. Also gab es heute vorratssägen. Fräsen kann ich sonntags problemlos.


    Stückwerk für drei arme und die sechszehn Servohalter.


  • tach


    Derzeit fliegen eher gehirnspäne <X


    MasterSlave ging nicht weil die bibliotheken sich nicht mochten.


    Plan g: funktioniert soweit:


    Ein sekundärregler (dreh- oder schiebepoti) sagt was zu steuern ist und ein anderer knüppel bewegt dann das oder die ziele.


    Klappt auch inzwischen. Pro arduino eine funktion wie zb lenkung oder gas.


    Ein Beispiel: Gasgeben. Poti kanal 6 steht auf 3 Uhr. = nur die vorderachse bekommt strom.
    4 uhr = nur vorne links
    5 uhr = nur vorne rechts
    Soweit Klar? Na klar :)


    Beim gas ist das einfach weil der knüppel immer auf null zurück kommt. Somit immer null als startpunkt. Wenn ich das poti von 3 auf 5 stelle kann vorne rechts nichts passieren solange ich den knüppel nicht bewege.


    Wenn ich das bei servos mache, die ja ihre eingestellte position halten sollen ( bis auf die lenkungen) würde das schiefgehen da ja jedes servo eine andere position einnehmen kann.
    Wenn ich nichts mache geht bei dem beispiel von 3uhr auf 5 uhr plötzlich bei 4uhr der seitenausleger vorne links auf irgendeine position die der sender gerade inne hat.


    Also brauche ich einen timeout der kurzeitiges anspringen eines modus ignoriert und den modus nur wechselt wenn der neue modus länger als 1 sekunde angewählt wurde.


    Auch klar? Schön.



    Nun komme ich von 5uhr unfallfrei wieder zurück zu 3uhr warte eine sekunde und der arm macht plötzlich einen Ruck und wechselt in die position die der knüppel gerade hat. Die position ist ja die von 5 uhr und gut merken kann man sich die postionen auch nicht. Kann gut gehen, muss aber nicht.



    Also müssen die knüppelbewegungen relativ vom punkt des einschaltens berechnet und an den empfänger weitergegeben werden.


    Immer noch alles klar? :D


    Je länger man über das thema nachdenkt um so verschwurbelter fühlt man sich
    pillepalle


    Zur ablenkung noch ein aktualisiertes bild einer funktionssteuerung. Hier zb die lenkung mit ihren vier servos.

    Die ledstrips dienen der visualisierung der aktuell angesteuerten positionen.

  • Das Problem, dass dir die "Stellantriebe", sofort wegsausen, wenn du sie anwählst und der Knüppel nicht gerade genau die Position hat, wo der Antrieb gerade steht, könnte man lösen, wenn man das Eingangssignal des steuernden Knüppels nicht direkt zum Ausgang durchschleift sondern stattdessen noch ein klein wenig "Intelligenz" dazwischen baut:
    Du könntest dir den aktuellen Wert des Ausgangs in einer Variable merken und den Ausgang nur dann wenn der steuernde Knüppel sich aus der Mittelstellung bewegt, entsprechend der Richtung in kleinen Schritten rauf bzw. runter zählen lassen. So kannst Du dein Auswählpoti beliebig verdrehen und auch an jeder Position stehen lassen und die Antriebe bleiben da stehen, wo sie gerade sind (solange der Steuerknüppel in Mittelstellung ist!). Wenn man das hoch und runterzählen in relativ kleinen Schritten macht dürfte das auch sehr schöne, flüssige Bewegungen geben.
    (Die nächste Stufe wäre dann, das Zählinkrement abhängig vom Knüppelausschlag zu machen, also Knüppel nur bisschen gedrückt, Ausgangswert steigt laangsam, und je weiter man drückt, desto schneller wirds)


    Was man bei dem Ansatz verliert, ist natürlich die automatische Rückstellung in die Mitte, sollte aber so wie ich das Konzept der beweglichen Arme verstehe, ohnehin nicht gebracuht werden?!
    Wenn mans doch braucht, ließe sich das leicht über einen Zusatzkanal als "Reset auf Anfang" realisieren, ist ja nur ein Setzen der Ausgänge mit fixen Werten.


    Ich hoffe ich habe das Problem richtig verstanden und die Lösungsidee ist halbwegs verständlich hmm