Posts by pascal963

    Hi,

    ich bin zwar erst neu angemeldet aber schon ein paar Tage hier im Forum unterwegs, was mir vor allem einen guten Einstieg in python und den Umgang mit dem RPi gebracht hat. Dafür möchte ich mich erst einmal bedanken!

    Mein erstes Projekt soll ein über Internet gesteuertes Auto werden, mit Webcam-Übertragung und Steuerung über eine Website.

    Vorneweg möchte ich mein Problem daran darstellen. Anschließend werde ich über den Projektstand berichten

    Das Problem ist folgendes:
    Ich es nicht schaffe mein Programm so zu schreiben, dass wenn ich in einer while-Schleife z.B. die Pfeiltaste nach oben drücke der Schrittmotor nach links dreht ohne, dass ich mit Return bestätigen muss. So eine Funktion hatte ich mal in JAVA benutzt und hieß dort "if Button.ispressed" oder so ähnlich.

    Beispiel: Ich drücke die nach-links-Taste für 2 Sekunden und der Motor macht währenddessen 10 Schritte linksherum. Dementsprechend würde er bei 4 Sekunden 20 Schritte machen.
    Am besten wäre es natürlich, wenn der Schrittmotor wieder in eine Null-Position fährt, nachdem die Taste wieder gelöst wird.

    weiteres Beispiel: Autorennspiele: Ich drücke nach vorne und gebe Gas, sobald ich nicht mehr drücke ist Gas weg, ich drücke nach links und es lenkt nach links, sobald ich nicht mehr drücke, gehen die Räder wieder in die Nullposition zurück.
    Ich habe gesucht und auch einiges gefunden nur hat wirklich nichts so funktioniert wie ich es wollte.

    Meine Frage an euch ist daher:
    Hat jemand eine Idee, wie ich diese Steuerung realisieren kann? Oder hat jemand schon einmal einen Code gesehen, der genau das ermöglicht?


    Nun zum aktuellen Aufbau.

    Der RPi ist derzeit normal in der Steckdose angeschlossen und eine Logitech C310 im USB, ein EDIMAX im zweiten USB.
    An den GPIO ist ein Adafruit-Cobbler angeschlossen, der auf ein Steckbrett geht.

    Von da aus ist ein L293D an 5v0, #18 (Enable1 und Enable2), #4 und #17 (OUT für DC-Motor 1 und DC-Motor 2)

    Zusätzlich noch 4 Batterien für 6Volt-Versorgung am L293D und am ULN2803A, sowie direkte Stromversorgung vom Schrittmotor.

    Der Schrittmotor wird über den ULN2803A betrieben. Erste Wicklung hängt an #23 und #24, zweite an #25 und #27.

    Die Kamera läuft über Motion mit Localhost off und daemon on, zusätzlich noch eine Portweiterleitung im Router, dass man die Kamera von überall aufrufen kann.

    Das alles funktioniert auch bestens, außer dass ich für eine vorwärtsbewegung zur zeit noch eine Tastatureingabe machen muss und diese mit Enter bestätigen muss. Was sehr lästig und nicht wirklich steuerbar ist


    Hier noch der Code in Python geschrieben


    Leitebene.py



    Motor.py (wichtig hierbei ist eigentilch nur die while-Schleife ganz unten, der Rest ist definition und initialisierung)


    Teile übernommen aus:
    http://learn.adafruit.com/category/learn-raspberry-pi (Steuerung Motoren)
    http://www.laub-home.de/wiki/Raspberry_Pi_als_Webcam_Server (Einrichtung und Installation von Motion)
    sowie diverse Foren-Threads in diesem Forum

    Ich stehe natürlich auch gerne für Fragen offen, falls jemand ein ähnliches Probjekt hat und kann dann auch die Verdrahtung usw. erklären.