6 Motoren einzeln steuern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Tag,

    ein Freund und ich möchten ein Gefährt, ähnlich wie ein Mars-Rover bauen mit dem Raspberry Pi 2.
    Dieser soll 6 Räder+Motoren haben, die man alle unabhängig bewegen kann. Nun wissen wir aber nicht wie man mit dem PiFace Digital 2 die Motoren drehen zu lassen mit unterschiedlicher Geschwindigkeit(ich denke das funktioniert nicht, weil ich ja nur ein Ausgang ein bzw. ausschalten kann).

    Hat ihr eine Idee/ Möglichkeit, wie wir jeden Motor einzeln steuern kann und unser zweites Problem ist, da mein Kumpel im Beruflichengymnasium als Schwerpunkt Datenverarbeitung hat, wollten wir als Programmiersprache C++ benutzen, wisst ihr wie man die GPIO´s ansteuern kann oder kann jemand uns ein Beispielprogramm zur verfügung stellen?
    (Betriebssystem: Windows iot core 10586)


    Schon mal vielen Dank für eure Hilfe!

    Mit Freundlichen Grüßen
    Skanu

  • Da gibt es eine Menge offener Fragen.

    Was fuer eine Sorte Motoren wollt ihr ansteuern? Normale Elektromotoren, oder Schrittmotoren? Wenn erstere, wie erfasst ihr die Geschwindigkeit der Motoren? Wenn nicht, dann ist der Traum von der unterschiedlich schnellen Ansteuerung schon geplatzt, da man dafuer eine Regelung braucht.

    Bei sechs Motoren an einem Rover frage ich mich zusaetztlich, wie die angeordnet sein sollen - zwei machen in meinen Augen Sinn, mehr nur wenn man auf mehr Gesamtkraft moechte, und sie mechanisch koppelt. Oder habt ihr da eine besonders ausgefuxte Anordnung?

    Zu Windows kann ich nichts sagen - fuer C++ unter Linux waere wiringPI wahrscheinlich euer Freund, auch wenn ich beim letzten mal beim Blick in den Code zur Unterstuetzung des PiFace dort einige meiner Resthaare in grau getaucht habe...

  • Also wir wollen normale Elektromotoren verwenden (im Moment sind es noch provisorisch welche aus alten CD-Laufwerken).
    Die Geschwindigkeitsänderung hatte ich nur gedacht für Kurven, sodass die eine Seite langsamer läuft als die andere(ich bin gerne offen für andere Vorschläge).

    Die Motoren sollen wie z.B. bei Curiosity angeordnet sein.

    Einmal editiert, zuletzt von Skanu (15. Mai 2016 um 17:34)

  • Der Curiosity-Rover hat lenkbare Raeder. Die habt ihr denke ich mal nicht. Grundsaetzlich kann man natuerlich drei Motoren pro Seite verbauen, die liefern dann halt irgend eine kombinierte Kraft, die sich dann in einer Geschwindigkeit niederschlaegt.

    Und ohne ausreichnend hoch aufgeloeste Geschwindigkeitsmessung der Motoren bringt es nichts, die Geschwindigkeit regeln zu wollen. Ihr habt dann also 7 Fahrmodi:

    - stop
    - forwaerts
    - rueckwaerts
    - links mit stehenden motoren
    - rechts mit stehenden motoren
    - links mit gegendrehenden motoron (auf der stelle)
    - rechts mit gegendrehenden motoron (auf der stelle)

    Damit braucht ihr am Ende nur vier Pins: Richtung und An/Aus, fuer links und rechts. Und einen "Vierquadrantensteller": https://de.wikipedia.org/wiki/Vierquadrantensteller. Viele Hinweise und konkrete Bauteile dazu finden sich hier: http://rn-wissen.de/wiki/index.php…mit_Treiber_ICs

    So zumindest ist mein simplen Intronix-Roboter aufgebaut.

  • Ohne Regelung - nein. Man kann zwar eine sogenannte PWM benutzen, das ist ein schnelles ein/aussschalten des Motors, gemessen in Prozent eines Arbeitstaktes. Also zB 80% bei 10ms Arbeitstakt bedeutet das 100 mal in der Sekunde fuer 8ms der Strom an- und dann fuer 2ms ausgeschaltet wird.

    Und dann dreht sich der Motor auch langsamer.

    Nur ist das resultierende Verhalten sehr nichtlinear. Soll heissen: wenn du den Motor frei drehen laesst, und zB rausgefunden hast, dass er bei 73% genau halb so schnell dreht, und ihn dann auf den Boden stellst um zu fahren, braucht der Motor mehr Kraft, weil jetzt der Roboter bewegt werden soll - und kriecht nur noch mit einem Bruchteil der Geschwindigkeit daher.

    Wenn du dann rausgefunden hast, dass der fahrende Roboter 81.25% braucht fuer halbe Geschwindigkeit, dann kommt eine kleine Steigung - und nix geht mehr.

    Lange Rede, kurzer Sinn: geht. nicht.
    Automatisch zusammengefügt:
    Ich habe auch noch ein Kit hier liegen, dass demnaechst mal zum Einsatz kommen soll: http://www.robot-electronics.co.uk/products/drive…obot-drive.html

    Damit braucht man dann nur noch I2C, und hat schon gleich eine Motorregelung drin.

  • ok
    Aber bei z.B. Lüftern von Computern gibt es doch ein + und ein - pol und das dritte Kabel ist doch für die Drehzahlregelung zuständig. Kann ich das nicht mit einem Modul machen, damit man die Drehzahl programmieren kann?

  • Das dritte Kabel ist ein *Sensor*. Der liefert die Drehzahl des Motors zurueck. Und dann wird der Luefter mit - *trommelwirbel* - einer PWM angesteuert.

    Also immer noch: ohne Sensor geht es nicht. Ich erzaehle das nicht, um dich zu aergern, weisst du....

  • Ja ich weiss, du möchtest mir ja helfen :thumbs1:

    Also ich werde es jetzt erstmal versuchen wie du es vorgeschlagen hast...

    Vielen Dank für deine schnellen Antworten und Hilfe, DANKE!

  • Und noch ein Nachtrag: ein Luefter ist in dieser Beziehung sehr simpel und vergebend - denn der hat ja keinen Variablen Widerstand gegen den er arbeiten muss (wie es ein Roboter-Motor hat).

    Darum kommt man da mit einem sehr groben Sensor (wenige Takte/Umdrehung) aus.

    Ein Motor fuer einen Roboter braucht allerdings schon einige 100 bis 1000 Impulse pro Radumdrehung, damit das vernuenftig wird. Gerade, wenn man nur geringe Geschwindigkeiten fahren will. Ich habe mal einen alten Lego Mindstorm mit seinen ich glaube ~100 Impulsen pro Umdrehung geregelt - und da war ich schon froh, dass ich damit allen Motoren wenigstens eine gleichmaessige Geschwindigkeit verpasst bekommen habe. Mehr als an/aus war dann aber auch nicht mehr drin (dafuer wenigestens immer gleich an, auch wenn die Batterie leerer wurde).

  • auf einer Seite mehr als 2 Motoren unterschiedlich zu steuern macht für mich keinen Sinn,

    was soll das werden 2 laufen vorwärts und einer Rückwärts auf der selben Seite?

    Bei 4 Motore, 2 rechts 2 linkks 2 vorne 2 hinten würde ich das noch verstehen aber bei 6?

    Auch den Gleichlauf hinzubekommen ist nicht trivial, für 4 aber für 6?

    Dann braucht man an jedem Drehgeber um die Umdrehungen zu zählen um den Schlupf auszugleichen oder wenn ein Rad in der Luft hängt, Drehmomentaufnehmer.

    Welche Überlegungen habt ihr schon angestellt um auf eure 6 zu kommen?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (15. Mai 2016 um 19:15)

  • Wir möchten sozusagen ein Mars-Rover nachbauen und wegen Standhaftigkeit und so wollen wir auch 6 Räder benutzen.
    Außerdem wird praktisch nur immer eine komplette Seite gesteuert um zu lenken bzw. zu drehen.

    Ich hatte mir auch schon Überlegt, dass die zwei motoren in der Mitte synchron laufen und beim lenken garnicht angesteuert werden und nur fürs grade und rückwaerts fahren mitdrehen.

  • dann koppelt die 2 hinteren mit einer Kette (auch innen verdeckt wenns um die Optik geht) und macht 4 angesteuerte Motore draus

    wird schwer genug.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • ok ist auch eine Möglichkeit.
    Mal schauen...


    Welche h brücke kann ich dann am besten verwenden bzw. was brauche ich noch alles und welche Motoren würdet ihr mit empfehlen?


  • Welche h brücke kann ich dann am besten verwenden bzw. was brauche ich noch alles und welche Motoren würdet ihr mit empfehlen?

    ???

    Du fragst nach Brücke, Motoren aber immer noch ohne das das Konzept steht?

    Sieht für mich aus als wenn du was fertiges nachbausicheres suchst?
    Da muss ich mich raushalten.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Also der Hintergrund ist ich will nur bedingt nachbauen... Wir möchten ein Orientierungssystem entwickeln, damit der Mars-Rover selbst entscheiden/abwegen kann welche aktion er durchführt und dafür muss ich nun erstmal mit den motoren anfangen, dass er überhaupt sich bewegt und später wollen wir eine virtuelle karte erstellen, die er selbst durch ausmessen und abfahren erstellt. Oder halt mit anderen möglichkeiten da wissen wir nch nicht genau wie wir das machen.

    Aber als erstes steht auf dem Plan, dass er sich bewegt möglichst mit 6 rädern.


  • Also der Hintergrund ist ich will nur bedingt nachbauen... Wir möchten ein Orientierungssystem entwickeln, damit der Mars-Rover selbst entscheiden/abwegen kann welche aktion er durchführt und dafür muss ich nun erstmal mit den motoren anfangen

    Falsch, erst muss man ein Konzept entwickeln, dann zur Detaillösung und dann zu Motoren und Ansteuerung.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Wenn du meinst...
    Auch wenn wir das Programm modular aufbauen?
    Wir wollten das so machen, dass ich ein teil für die Bewegung habe, einen für einlesen der Daten, einen für die Verarbeitung/Ausführung und dann halt immer auf die passende Bewegungsfolge verweise... und deswegen ist erstmal was ich wie einlese egal bzw. wir vollen per laserscan und entfernungsmessungn das machen und haben auch schon ein Hersteller gefunden, der die passenden Gerate verkauft.

  • Nur mal aus Interesse, soll das von der Kinematik so ähnlich werden? Da würden die 6 Räder dann auch Sinn machen.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!