Roboter_Python_X-BoxController

  • Guten Tag meine lieben Forumfreunde,

    ein paar kurze, einleitende Worte zu meiner Person:
    Ich bin Schüler und beschäftige mich seit Februar 2014 mit dem Raspberry Pi. Ich habe großes Interesse immer wieder neue Sachen zu erlernen und bin um jeden konstruktiven Tipp oder Hinweis dankbar. :danke_ATDE:


    __________________________________________________________________________

    Allgemein


    Dies ist mein erstes Projekt das ich euch vorstellen möchte. Da ich selbst noch lange kein Profie bin und wie jeder am Anfang seine Probleme hatte, wollte ich -falls ich ein Projekt oder Tutorial schreibe- dies so verständlich und nachvollziehbar wie möglich schreiben. Wie der Name schon sagt, handelt es sich um ein Raupenfahrzeug welches mithilfe eines Wireless X-Box-Controllers gesteuert werden soll. Zu Beginn waren meine Ansprüche auf die Grundfunktionen begrenzt, sprich vorwärts/rückwärts, rechts/links. Schnell wollte ich mein Fahrzeug noch erweitern, und habe noch Scheinwerfer hinzugefügt. Zum Zeitpunkt der Projektvorstellung, arbeite ich gerade daran mit der Pulsweitenmodulation eine Kurvenfahrt ermöglichen zu können.

    Vorweg nochmal HERZLICHEN DANK!!! an LieberScholli für seine Hilfe und kompetente Beratung.
    :danke_ATDE:


    __________________________________________________________________________

    Funktionen und Planung


    Welche Funktionen hat er:

    - Grundfunktionen des Fahrens
    - Steuerung durch einen Controller
    - Scheinwerfersteuerung
    - Pi als Wlan Hotspot eingerichtet, sodass ich ihn mobil über das Handy per ssh erreichen kann


    Welche Funktionen sind in Arbeit

    - PWM mithilfe eines Controllers [---->20%----------------]
    - Karosserie erstellen und verfeinern (vll kann mir da einer einen Tipp geben)[-->10%----------------]
    - eventuell noch eine kleines LCD Display für Datum/Uhrzeit etc. als nice-to-have [>0%----------------]


    _________________________________________________________________________

    Die Materialliste


    - Raspberry Pi Modell B Revision 2 [Anzeige]
    - Duale H-Brücke L298N (Motortreiber) [Anzeige]
    - Spannungsversorgung für die Motoren - Ich hab einen Bohrmaschinenakku
    - 2 Motoren - sind im Makeblock Starter Kit vohanden
    - 5V Powerbank [Anzeige]
    - Makeblock Starter Kit
    - wireless X-Box-Controller
    - 2 Mosfets
    - 4 LEDs + Halterung
    - diverse Kabel und Stecker

    _________________________________________________________________________

    So dann fang ich mal an....


    Zuerst möchte ich euch mal einen Überblick über meine Schaltungen geben.
    Wenn ihr Verbesserungsvorschläge und Anmerkungen habt, sind diese gerne gesehen.

    Zu Beginn die Verbindung der Dualen H-Brücke mit dem Raspberry Pi:

    untitledsketchwyza7rok0t_thumb.jpg


    Der Anschluss

    Die Motoren

    Der Motor A wird mit seinen zwei Anschlüssen an OUT1 und OUT2 und der Motor B an die entsprechenden OUT3 und OUT4 angeschlossen.
    Die Spannungsversorgung der Motoren werden an VCC (manchmal auch VS oder VSS) der H-Brücke angeschlossen. Der Groundanschluss an GND. Von diesem GND muss auch eine Verbindung zum Ground des Raspberry Pi gesetzt werden.


    Verbindung H-Brücke und Raspberry Pi

    In meinem Programm, welches ich in Python geschrieben habe, verwende ich zum Ansteuern der beiden Motoren 4 Pins. ENA und ENB sind bei mir mit 3,3V gebrückt, da ich den sofortigen Stop der Motoren bis zu diesem Zeitpunkt noch nicht benötigt habe.

    2 Andern gehen von CE0 und SCLK des Pis an IN1 und IN1 des Motortreibers.
    2 Andern gehen von MOSI und MISO des Pis an IN3 und IN4 ".


    __________________________________________________________________________


    Was ich hier gerne einmal anmerken möchte

    Wie oben muss die Groundverbindung zwischen Brücke und Raspberry Pi vorhanden sein. Optional kann man den Pi auch über den VLS der Brücke mit seinen 5V (an Pin 2) versorgen, jedoch übergeht man damit den Verpolungsschutz und kann somit den Pi grillen. Der Vorteil hiervon wäre, dass man unkompliziert nur eine Spannungsversorgung bräuchte. Da der Pi gegen Spannungsabfall sehr empfindlich reagiert (schon unter 4,78V), hab ich mich für die oben genannt Powerbank entschieden. Mit einem Oszilloskop hab ich die Spannungsstabilität gemessen - auch unter Höchstlast mit allen USB Schnittstellen und der RaspberryPi Cam. Sie arbeitet zuverlässig am 2,1A Ausgang.


    _________________________________________________________________________


    Nun ein paar Worte zum Programm

    Vorneweg möchte ich mich an dieser Stelle nochma bei LieberScholli bedanken, der mich vor allem bei der Kommunikation zwischen dem RaspberryPi-Python-Controller geholfen hat.
    Hier ist der Link zu seinem Thread zur Abfrage von Joypadbefehlen, in dem alles sehr gut erklärt wurde.

    Mein Programm besteht - wie meinstens - aus einem Initialisierungs- und einem Ausführbereich.
    Zum Auswerten meiner X-Box Kommandos, importiere ich das Modul von LieberScholli.
    Wenn Interesse besteht, werde ich das Program noch hochladen.


    __________________________________________________________________________


    Zum mechanischen Aufbau

    Da ich vom Interessenfeld eher elektrotechnisch veranlagt bin, habe ich mich am Anfgang von der mechanischen Seite etwas distanziert - aber irgendwann geht dies einfach nicht mehr :P (Vor allem nicht wenn man Ergebnisse verzeichnen will). Das Chassis besteht aus dem Makeblock Starter Kit, welches ja schon ein paar mal hier erwähnt wurde. Zur Montage habe ich zur Zeit einen Mix aus Kunststoff und Holz in Gebrauch. Der Aufbau wurde zuerst in einem CAD Programm (CATIA) erstellt, um die Dimensionen etwas besser einschätzen zu können.
    Das Kunstoff-Holz-Konstrukt wird - wenn es die Zeit zulässt - von einem 3D Druck ersetzt. Da ich einige Leute mit solch tollen Objekten kenne, sollte dies kein Problem sein.


    __________________________________________________________________________


    Einige Impressionen vom 19.05.2014
    imag0565lu1sfwzn27_thumb.jpg
    imag0564u20aetv9n8_thumb.jpg


    Hier endlich das erste Video:

    Externer Inhalt youtu.be
    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.

    Schaltplan für die Lichtersteuerung (könnte sein, dass hier ein paar Fehler in der Darstellung sind, komm mit fritzing noch nicht so gut klar:P:
    lichtsteuerungzly3qr68ip_thumb.jpg

    Hier sind es stats NPN Transistoren, MOSFETS - N-Kanal - selbstsperrend
    tcad1pkq8y6g27x_thumb.jpg

    Ausblick

    Was kommt hier noch rein?


    - Schaltplan und Bilder der Scheinwerfersteuerung
    - sobald etwas von oben fertig gestellt wurde, ergänze ich das Projekt


    Es hat mir mit diesem Projekt sehr viel Spaß gemacht und ich bin um einige Erfahrungen reicher. Daher bitte ich euch, mir Rückmeldung über meine bisherige Arbeit zu geben. Sei sie nun positiv oder negativ. Jedoch hoffe ich dabei auf Sachlichkeit. Berücksichtigt, dass ich kein Experte bin. Ich habe hierbei nach bestem Wissen und Gewissen gehandelt und bin zum Glück auch nur ein Mensch :D


    Liebe Grüße

    Neolinga

    Einmal editiert, zuletzt von RapidDawn12618 (18. Mai 2015 um 11:40)

    • Offizieller Beitrag

    Hi, ohh mal ein Projekt was über die Planungsphase hinausgekommen ist und schon dokumentiert :bravo2:

    Das Script darfst du natürlich gerne anhängen ;)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Werde ich noch machen, wenn die Lichtsteuerung im Programm etwas aufgeräumter ist. Weitere Anmerkungen sind gerne erwünscht.

    Liebe Grüße

    Neolinga

  • Guten Abend,
    UPDATE #1

    Habe meinen Roboter jetzt als AcessPoint eingerichtet und kann so mobil mit dem Handy darauf zugreifen.
    Wen es interessiert mit welcher Anleitung ich es gemacht habe, der schaut > HIER < .

    Liebe Grüße

    Neolinga

  • Guten Abend,
    UPDATE #2

    Das erste Video wurde ergänzt.

    Liebe Grüße

    Neolinga

    Einmal editiert, zuletzt von RapidDawn12618 (21. Mai 2014 um 00:00)

  • Guten Morgen,
    UPDATE #3

    Die Lichtersteuerung wurde eingebunden, und der Programmcode angehängt. Bei Fragen oder Anmerkungen immer raus damit. Auch wäre ich um Verbesserungsvorschläge oder Kommentare jeglicher Art dankbar. Das Thema PWM mit dem MSP430 liegt im Moment auf Eis, weil ich mich gerade versuche in die Materie reinzulesen und naja, ich kenn niemand der mir da helfen kann. Das heißt es kann noch etwas dauern.

    Liebe Grüße

    Neolinga

  • hallo,

    möchte sowas ähnliches machen:

    zusätzlich:
    Verbindung über UMTS mittels USB Modem
    Video (MJPEG) mittels Pi Camera


    bin mir noch nciht sicher ob ich ein Raupenmodell als Grundbau nehme, oder ein normales RC Fahrzeug

    Ich möchte eine längere Distanz damit überbrücken können.
    Power für Raspi und UMTS Modem durch eine 1000mAh Powerbank mit 1A und 2A Output
    Power für Motoren über normales Akku oder Batteriepack

    Motor Driver:

    http://www.amazon.de/L298N-Doppelte-H-Br%C3%BCcke-Schrittmotor-Treiber-Steuerungsplatinemodul/dp/B008KYCDTY/ref=sr_1_3?ie=UTF8&qid=1413985792&sr=8-3&keywords=raspberry+pi+motor&tag=psblog-21 [Anzeige]


    was meinst du dazu?

  • Hey das gefällt mir. Ich überlege auch gerade mich mit so einem roboter Pi zu beschäftigen. Das mit der controllersteierung gefällt mir auch. Was mich jetzt interessieren würde, kann man sowas auch mit nem kabelgebundenen controller machen? Hab hier nämlich erst mal nur kabel gebundene controller und würde das zu beginn erst mal so probieren. Oder ist das aufgrund der unterschiedlichen übetragubgswege zu verschieden?

    Gruß Theo

  • Dem Tool, welches neolinga verwendet hat um den Controller abzufragen, ist es egal wie das Pad angeschlossen ist.
    Evtl. muss man die Konfiguration etwas anpassen, um mit Deinem Pad zu arbeiten.
    Momentan läuft das nur mit X-Box Controller (Kabel oder Funk) und einem PS2 Nachbau von HAMA.
    Ich hoffe ich hab das ausreichend Dokumentiert, so das man vllt. selber darauf kommen kann, wie man sich die Konfiguration alleine zusammenschustert.
    Wenn Fragen zu dem Tool offen sind, melde Dich einfach in dem Tread.

    Viel Erfolg!

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

    Einmal editiert, zuletzt von LieberScholli (26. November 2014 um 20:35)

  • :thumbs1:hey, erstmal super projekt! wilst du den roboter eigendlich noch weiter ausbauen? Ich mein das is eine super basis die du da gebaut hast.:thumbs1: ich könnte mir da gut eine art autonomiemodus vorstellen.

  • Autonom mit XBOX-Controller ist eigentlich ein Widerspruch :fies:

    Ein Autonomer Roboter agiert selbstständig, trifft eigene Entscheidungen usw und ein Controller wird nur optional für den Notfall benötigt.

    Für einen Autonomen Roboter bedarf es etliches an Sensoren und weitaus mehr Programmieraufwand als etwas mit einem Joystick o.ä. manuell zu steuern ;)

  • Hey Sirtar,

    entschuldige die Verspätung, muss ich wohl irgendwie übersehen haben. Also bis jetzt habe ich noch keine weiteren Pläne was in Richtung autonomes Fahren geht. Hatte nur einmal mit dem Gedanken gespielt eventuell einen Helligkeitssensor der Lichtersteuerung hinzuzufügen.
    Die Steuerung würde ich auch lieber manuell über meinen Controller beibehalten.


    Liebe Grüße

    Neolinga

    Einmal editiert, zuletzt von RapidDawn12618 (10. Januar 2015 um 12:46)

Jetzt mitmachen!

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