Roboter bewegen für Anfänger

Das könnte Dich auch interessieren …

15 Antworten

  1. Werner sagt:

    Hallo,
    ich möchte ein mit dem Handy ferngesteuertes Fahrzeug bauen. Mit Arduino/Bluetooth funktionierts, aber es gibt ständig Störungen und die Reichweite ist gering. Also möchte ich gern RaspPi über wlan benutzen, am liebsten auch über Internet und mit Kamera am Fahrzeug. Bis jetzt schaffe ich es aber nur, über ssh mit einfachsten C-Programmen LEDs ein und aus zu schalten. Kann man über ssh in einem auf dem RasbPi laufenden Programm Variablen verändern? Wenn ja, wie? Bin für jeden Tip dankbar.
    Gruß
    Werner 🙂

  2. hoerbi10000 sagt:

    hallo,
    ich habe nun das gleiche Setup wie auf den Bildern zu sehen ist.
    nur leider wenn ich das programm starte dehen die 4 motoren an.

    rechts bleibt nach 1 sek stehen, und rechts nach 2 sek, dann gehn die LED’s am Board aus, und man hört wie das Board wegen der Spannung pfeifft.
    Der Pi läuft weiter nur das Board fällt aus.

    Hat jemand eine Idee was das sein könnte?

    ich hab sicherheits halter noch Bilder gemacht
    http://postimg.org/image/rqstug9xn/
    http://postimg.org/image/413e5rbkb/
    http://postimg.org/image/6wghcmfkb/
    http://postimg.org/image/4t624yfrf/

    danke schon für Tipp’s

    • Werner Ziegelwanger sagt:

      Hallo Herbert, ich habe mal die Bilder mit meinem Setup verglichen und sehe da im ersten Moment keinen Unterscheid. Mir fällt auf du verwendest einen Raspberry Pi 3, ich einen Pi 1 B+… ich werde das auch mal mit dem 3er probieren – es gab da ja ein Update der GPIO Schnittstelle. Hängt dein Pi an einer Powerbank oder direkt über einen Netzstecker an der Steckdose?

  3. Stefan sagt:

    Hallo,

    vielen Dank für die tollen Anleitungen! Eine Frage (und die Bitte um Hilfe 🙂 ): Wie kann es sein, dass bei mir auf der rechten Seite (d4 – d5) die Motoren sich nicht rückwärts, aber stattdessen vorwärts drehen, obwohl Output auf „false“ ist? Links klappt alles einwandfrei… Ich verwende folgende Verkabelung (PINs nach BCM, Raspi3):
    d4: 26
    d5: 12
    d6: 13
    d7: 6

    Danke!

    • Werner Ziegelwanger sagt:

      das Problem hatte ich anfangs auch! In dem Fall musst du am Roboter die Kabel zum Motor umdrehen. Das geht am einfachsten oben auf der Platine, dort wo du die Kabel an zum Beispiel M1 (siehe Bild im Artikel) angeschraubt hast. Also einfach die beiden Schrauben aufdrehen, Kabel raus ziehen, umdrehen und wieder rein stecken und Schrauben fest ziehen.

      • Stefan sagt:

        vielen Dank für den Tipp! Ich habe bei M3 und M1 die Kabel vertauscht, allerdings habe ich das Problem nun auf der anderen Seite. Es scheint mir, als könne der Motor nicht +/- tauschen…

        • Werner Ziegelwanger sagt:

          du könntest alternativ noch mal probieren im Code mit den True und False herumzuspielen und diese zu ändern…
          def right():
          GPIO.output(M1, False)
          GPIO.output(M1_PWM, True)
          GPIO.output(M2, True)
          GPIO.output(M2_PWM, True)

          ich habe einige Anfragen mit dem Projekt weiter zu machen, leider liegt mein Roboter aktuell im Regal und setzt Staub an und ich habe noch jede Menge cooler Sensoren die ich da anbauen möchte. Ich werd schauen da zeitnah neue Artikel zu schreiben… um dein Problem zu lösen: schickst du mir mal deinen Code und Bilder deiner Verkabelung. Ich werd sehn was ich machen kann.

  4. Stefan sagt:

    Hallo Werner,

    der Quellcode: http://pastebin.com/TwEDDYWr
    die Verkabelung: https://postimg.org/image/xybsqha6l/

    Vielen Dank für deine Hilfe!

  5. Stefan sagt:

    Endlich funktioniert der Roboter! 🙂 Vom Hersteller habe ich einen neuen Bausatz erhalten, da bei dem Board der Motortreiber defekt war.

  6. Jens sagt:

    Guten Abend,
    ich Steuere mit ihrem Programm und dem Raspi3 zum test vorerst nur 4 LED’s an.
    Das funktioniert auch insofern das die LED’s angehen sobald ich die zugewiesene Taste drücke.
    Die LED’s bleiben aber an. Ich kann lediglich das Programm über q beenden.
    Ist es so vorgesehen das eine einmal aktivierte Richtung beibehalten wird?
    Mein Ziel wäre es die Taste zu drücken -> LED leuchtet, die Taste loslassen -> LED erlischt.

    Ich bin über jede informative Antwort sehr dankbar.

    • Werner Ziegelwanger sagt:

      Hey, die digitalen Pins können den Status ein oder aus haben. Einmal auf 1 gesetzt bleiben sie auch in diesem Zustand bis du sie anders setzt oder ein cleanup machst. Ja, mein Roboter ändert den Zustand nur auf Knopfdruck, d.h. er fährt so lange vorwärts, bis ich eine andere Richtung will.

      Was du brauchst sind onkeypress und onkeyrelease Events bei denen du immer den entsprechenden Status setzt. Sie mal dazu https://pythonhosted.org/pynput/keyboard.html

  7. Dominik Rau sagt:

    Hallo Herr Ziegelwanger,

    Vielen Dank für Ihre ausführlichen und bildreichen Anleitungen.
    Ich bin gerade dabei einen Roboter mit 2 Motoren aufzubauen. Dazu verwende ich Schrittmotoren, die über einen Motorkontroller gesteuert werden. Das ansteuern klappt bisher gut. Im nächsten Schritt möchte ich die Motoren durch Tastatureingaben steuern. Dazu habe ich versucht Ihre getch() Funktion zu übernehmen. Den Quellcode habe ich in die Thonny Python IDE kopiert in der ich meinen Code schreibe. Leider erhalte ich beim Ausführen einen Fehler, den ich weder zuordnen kann noch im Internet eine Erklärung finde, was er bedeutet.
    Der Fehler lautet: „termios.error: (25, ‚Inappropriate ioctl for device‘).
    https://ibb.co/cMuDEd
    Ich hoffe Sie können mir weiterhelfen.
    Viele Grüße, Dominik Rau

    • Werner Ziegelwanger sagt:

      schon mal probiert das script mit root rechten (sudo) auszuführen? Sieht aus als ob die Terminal Eingabe nicht gelesen werden kann.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.