Pygame, Python 3.3 und Arduino

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
benj98
User
Beiträge: 1
Registriert: Montag 14. September 2015, 13:43

Hallo zusammen.

Ich bin ziemlich neu mit Python. Habe mir aber Python 3.3.5 und Pygame heruntergeladen und installiert. :D
Und ich bin ein Windows-Mensch.
Meine Idee/Problem ist das ich eigendlich fast nix kann :oops: aber trotzdem will ich für ein Schulprojekt ein Programm Schreiben.

Dieses Programm sollte ein Game-Controller (Trust GXT 530 für pc und PS3, also HID) auslesen und diese via Serielle-Schnittelle (via.USB) an einen Arduino weiter geben.
Die Baudrate und welcher Port (COM1, COM2 ....) sollte selber ausgewählt und flexibel sein. Kurz Manuell :wink:
Dazu auch eine anzeige welcher Knopf gedrückt ist ect. ... :)
Das ist mal so kurz was sein muss/sollte :mrgreen:

Jedoch sollte noch eine IP-Kammera angezeigt werden. Ich dachte mir wie einen kleinen Internet Explorer oder so der einfach das Bild der eingegebener IP-Adresse wiedergibt.

Also das wäre das Programm das mir fehlt :(
Der Kontroller direkt an den Arduino anschliessen geht nicht, da die Verbindung ca. +- 40m beträgt :mrgreen:

Ich kann nur Arduino und wenig Python (ganz wenig) :lol:

Wen jemand zeit, lust und Nerven hat weri ich sehr froh mir einen Code oder Beispiel code zu erklären.


Herzliche Grüsse und bester Dank im vorraus
Benjamin
BlackJack

@benj98: Irgendwie fehlt mir hier die konkrete Frage. Wenn Du fast gar nichts kannst, musst Du halt viel lernen. ;-)

Also erst einmal Python. In der Python-Dokumentation ist ein Tutorial. Für Programmieranfänger wird oft auch Learn Python The Hard Way empfohlen. Danach wäre dann Pygame zu lernen. Für die serielle Kommunikation verwendet man am besten das externe `serial`-Modul, das müsstest Du wahrscheinlich noch installieren.

Und dann zerlegst Du das Gesamtproblem in Teilprobleme und diese Teilprobleme wieder in kleinere Teilprobleme, solange bis diese Teilprobleme sich als Funktion in wenigen Zeilen code lösen lassen. So eine Funktion testet man dann (und macht erst mit anderen Sachen weiter bis die tatsächlich das tut was sie soll). Mehrere Teillösungen kann man dann zu grösseren Teillösungen zusammensetzen. Und wieder testen! Und am Ende hat man dann eine Gesamtlösung.

So ganz grob müsste man halt mit Pygame die Signale vom Controller verarbeiten in dem man sie 1. grafisch darstellt und 2. an den Arduino ausgibt.

Bei analogen Achsenwerten möchte man das vor dem weitergeben an den Arduino vielleicht noch filtern/glätten weil die technisch bedingt oft recht viele Ereignisse erzeugen mit minimalen Bewegungen auch wenn man den Stick selbst gar nicht bewegt.

Und man muss sich für die Übertragung an den Arduino ein Protokoll ausdenken, sofern es da nicht schon vorgaben gibt was die Arduino-Seite der Kommunikation da an Daten/Format/Protokoll erwartet.

Ich würde wahrscheinlich am Arduino-Ende mit der Implementierung anfangen. Also das programm auf dem Arduino und auf dem PC das Programm soweit das man künstlich erzeugte Controller-Ereignisse an den Arduino schicken kann zum testen.

Danach könnte man eine Controller-Klasse schreiben die entsprechende Methoden oder Properties bietet um die Achsen/”Hats” und Knöpfe setzen und in Übertragungen zum Arduino umsetzen. An der Stelle könnte man auch das Rauschen aus den Werten für analoge Achsen herausfiltern.

Auf diese Controller-Klasse kann man dann die grafische Darstellung drauf setzen und die vielleicht auch gleich so programmieren das man sie als Eingabe verwenden kann. Also nicht nur anzeigen ob ein Knopf gedrückt ist, sondern dem Benutzer auch erlauben mit der Maus auf die Anzeige zu klicken zwischen den beiden Zuständen des Knopfes zu wechseln.

Und dann zuguterletzt kann man Code schreiben der die Pygame-Ereignisse für den realen Controller ausliest und die Daten in das Controller-Objekt füttert, dass dann seinerseits die Daten für die Anzeige bereitstellt und an den Arduino übermittelt.
Antworten