-         
Ergebnis 1 bis 4 von 4

Thema: Motor laufen lassen so lange ein Button auf Webseite gedrückt wird

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    537

    Motor laufen lassen so lange ein Button auf Webseite gedrückt wird

    Anzeige

    LiFePo4 Akku selber bauen
    Guten Morgen Forum,

    ich arbeite seit einer Weile mit ESP8266, in diesem Fall in der Bauform des Wemos D1 Mini.
    Einen Schrittmotor steuern, eine Webseite aufbauen, das alles klappt.
    Jetzt habe ich das Problem, dass ich den Motor über eine Webseite steuern möchte. Soweit nicht so schwierig, jedoch will ich den Motor solange drehen lassen wie ein Button gedrückt wird.

    Wie kann ich es realisieren, dass so lange ein Signal übertragen wird wie der Button gedrückt gehalten wird?
    Ich habe keine Endschalter also würde es zu Kollisionen kommen wenn der Motor nicht stoppt wenn man lös lässt.

    Eine Idee die ich hatte ist, dass ich auf "onmousedown" und "onmouseup" reagiere.
    Onmouseup würde per Ajax ein Signal schicken, dass gestoppt werden soll.
    Was passiert jedoch wenn die Verbindung unterbrochen wird? Dann kommt das Signal nicht an.
    Ein Verbindungsverlust sollte ja das selbe auslösen wie ein "Mouseup".

    Sind Sockets eine Lösung? Kann man dann irgendwie "so lange wie" realisieren?

    Ich freue mich auf eure Ideen!

    Crypi

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.519
    Blog-Einträge
    29
    Hallo Crypti!

    Anfragen an Webbrowser erfolgen immer mit Verzögerung. Bei normalen HTML-Anfragen (GET oder POST) etwa 0.5 bis 1s. Weil Daten müssen hingeschickt werden und dann antwortet der Server auch noch. Würdest Du in einer Schleife immer wider Anfragen zum Server schicken, würde eben zwischen den Anfragen etwa die oben genannte Zeit vergehen.

    Noch mal drüber nachdenken, ob Du das anders lösen möchtest.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    173
    Ich habe sowas mit einem Kreis am laufen, wo ich Klicke und dann den Mauszeiger in die Richtung bewege, in die ich fahren will (Siehe Screenshot im Anhang). Dafür werte ich genau die mousedown/mouseup-Events aus, die du schon angesprochen hast. Als Unterbau natürlich ROS mit Robot Web Tools, welches Websockets verwendet.
    Eine Fehlerbehandlung habe ich dafür nicht extra gemacht. Aber mein Roboter stoppt sowieso, wenn es nach einer Sekunde oder so keinen neuen Befehl bekommt.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken drive.jpg  

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    537
    Vielen Dank für eure Antworten!

    Ich habe es jetzt einfach mal ausprobiert und lasse ein start/stop Signal per Ajax vom Browser an den ESP8266 übertragen.
    Ich nutze onmousedown für den Startbefehl und onmouseup für den Stopbefehl.
    Zur Verzögerung: es geht "ohne Verzögerung". Zumindest merke ich keine.
    Die Idee einen Timer mitlaufen zu lassen um ein Endloslaufen nach Verbindungsverlust zu verhindern habe ich eingebaut und es funktioniert sehr gut.
    Sockets brauchte ich nicht und da ich keine Erfahrung damit habe, hab sie weggelassen.
    Wenn jemand Interesse am Quellcode hat stelle ich den gern zur Verfügung.

    Crypi

Ähnliche Themen

  1. Time$ weiter laufen lassen
    Von Sungod im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 14.12.2015, 11:14
  2. Schrittmotor im Sinus laufen lassen
    Von julius12345 im Forum Software, Algorithmen und KI
    Antworten: 11
    Letzter Beitrag: 23.06.2011, 15:26
  3. Antworten: 12
    Letzter Beitrag: 29.08.2010, 21:27
  4. Motoren schneller laufen lassen
    Von asuromatze im Forum Asuro
    Antworten: 3
    Letzter Beitrag: 25.05.2007, 18:37
  5. Programm auf Simulator laufen lassen?
    Von StoredProc im Forum Asuro
    Antworten: 4
    Letzter Beitrag: 03.04.2007, 23:45

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •