1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Michael_Lachmann

Beiträge von Michael_Lachmann

  • Hilfe bei _Ispressed einzelne und auch mehrere Tasten gedrückt // Motorsteuerung

    • Michael_Lachmann
    • 16. Januar 2018 um 08:29

    Hallo euch allen,

    also ich hab mir gestern die Mühe gemacht, alle, wirklich alle Vorschläge zu testen. Ich bin dann zu dem Ergebnis gekommen, dass die Umsetzung von Oscar die einfachste und zuverlässigste ist.
    Ich musste zwar auch hier manches noch ändern, aber es läuft super.........

    Danke an ALLE die so tolle Ideen eingebracht haben auf die ich NIE gekommen wäre.
    (Auch jetzt ist mir manches noch etwas fremd, aber egal es läuft :D )

    Michael

  • Hilfe bei _Ispressed einzelne und auch mehrere Tasten gedrückt // Motorsteuerung

    • Michael_Lachmann
    • 13. Januar 2018 um 11:24

    Guten Morgen,

    Floops Danke, habe den ersten "Fehler" auch gefunden.... Es ging einfach zu schnell, mein Script konnte es zeitlich nicht erfassen, dass 2 Tasten gedrückt waren. unten das modifizierte Script.

    Lief soweit ganz gut aber beim Wechsel ist es ein wenig hakelig gewesen, könnte aber damit leben.

    Beim weiteren suchen bin ich dann auch auf _WinAPI_GetKeyboardState bzw. _WinAPI_GetKeyState gestoßen, und damit komme ich zu Dir

    Bitnugger WOW DANKE, gleich mit schicker GUI, komme allerdings am WE nicht zum testen, aber anhand deines Scriptes habe ich eine Menge lernen können, manche Dinge erkenne ich zwar noch nicht,

    DANKE!!!!!!!

    MIchael

    PS.S

    Ich bin mir jetzt nicht ganz sicher ob das rübergekommen ist, vereinfacht gesagt.

    Ich drücke Taste "A" 0> ein Motor läuft Befehl wird gesendet

    solange ich "A" gedrückt halte passiert nichts, erst beim loslassen wird ein "STOP" gesendet.

    Code
    Ein kleines einfaches "sleep(20)" hat Wunder gewirkt :D
    
    .....
             $ptz_neu = ""
    
             If _IsPressed(57) OR _IsPressed(53) OR _IsPressed(41) OR _IsPressed(44) then
    
                $iSocket = TCPConnect($ipcam, "5002")
    
                   if _IsPressed(57) AND NOT _IsPressed(53) AND NOT _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzdown ;wenn w gedrückt        
                   if NOT _IsPressed(57) AND _IsPressed(53) AND NOT _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzup ;wenn s gedrückt
                   if NOT _IsPressed(57) AND NOT _IsPressed(53) AND _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzright ;wenn a gedrückt
                   if NOT _IsPressed(57) AND NOT _IsPressed(53) AND NOT _IsPressed(41) AND _IsPressed(44) Then $ptz = $ptzleft ;wenn d gedrück
           =====>  SLEEP(20)
                   if _IsPressed(57) AND NOT _IsPressed(53) AND _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzdownright ;wenn wa gedrückt
                   if _IsPressed(57) AND NOT _IsPressed(53) AND NOT _IsPressed(41) AND  _IsPressed(44) Then $ptz = $ptzdownleft ;wenn wd gedrückt
    
                   if NOT _IsPressed(57) AND _IsPressed(53) AND _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzupright ;wenn sa gedrückt
                   if NOT _IsPressed(57) AND _IsPressed(53) AND NOT _IsPressed(41) AND _IsPressed(44) Then $ptz = $ptzupleft ;wenn sd gedrückt
    
                   TCPSend($iSocket, $ptz)
    
                   while _IsPressed(57) OR _IsPressed(53) OR _IsPressed(41) OR _IsPressed(44)
                      sleep(5)
                   wend
    
                TCPSend($iSocket, $ptzstop)
                TCPCloseSocket($iSocket)
    Alles anzeigen
  • Hilfe bei _Ispressed einzelne und auch mehrere Tasten gedrückt // Motorsteuerung

    • Michael_Lachmann
    • 12. Januar 2018 um 09:24

    Hallo,

    gerne.

    Nehme nur mal das wichtigste, Steuerbefehle, IPs und die GUI sind ja eher uninteressant....

    Wie gesagt die erste 4 Befehle w s a d gehen .....

    Nur wenn "wa" drücke läuft nur Motor A, wie wenn ich nur "w" drücken würde , das Selbe bei "ws" "da" und "ds".

    Michael

    Code
    .....
             $ptz_neu = ""
    
             If _IsPressed(57) OR _IsPressed(53) OR _IsPressed(41) OR _IsPressed(44) then
    
                $iSocket = TCPConnect($ipcam, "5002")
    
                   if _IsPressed(57) AND NOT _IsPressed(53) AND NOT _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzdown ;wenn w gedrückt        
                   if NOT _IsPressed(57) AND _IsPressed(53) AND NOT _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzup ;wenn s gedrückt
                   if NOT _IsPressed(57) AND NOT _IsPressed(53) AND _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzright ;wenn a gedrückt
                   if NOT _IsPressed(57) AND NOT _IsPressed(53) AND NOT _IsPressed(41) AND _IsPressed(44) Then $ptz = $ptzleft ;wenn d gedrück
    
                   if _IsPressed(57) AND NOT _IsPressed(53) AND _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzdownright ;wenn wa gedrückt
                   if _IsPressed(57) AND NOT _IsPressed(53) AND NOT _IsPressed(41) AND  _IsPressed(44) Then $ptz = $ptzdownleft ;wenn wd gedrückt
    
                   if NOT _IsPressed(57) AND _IsPressed(53) AND _IsPressed(41) AND NOT _IsPressed(44) Then $ptz = $ptzupright ;wenn sa gedrückt
                   if NOT _IsPressed(57) AND _IsPressed(53) AND NOT _IsPressed(41) AND _IsPressed(44) Then $ptz = $ptzupleft ;wenn sd gedrückt
    
                   TCPSend($iSocket, $ptz)
    
                   while _IsPressed(57) OR _IsPressed(53) OR _IsPressed(41) OR _IsPressed(44)
                      sleep(5)
                   wend
    
                TCPSend($iSocket, $ptzstop)
                TCPCloseSocket($iSocket)
    Alles anzeigen
  • Hilfe bei _Ispressed einzelne und auch mehrere Tasten gedrückt // Motorsteuerung

    • Michael_Lachmann
    • 12. Januar 2018 um 07:55

    Hallo zusammen,

    bin gerade dabei ein kleines Script für eine Motorsteuerung (Servos) zu erstellen.
    Läuft auch ganz gut, aber an einer Stelle komme ich nicht weiter und hoffe auf eurer Hilfe.

    Ganz einfach wie in einem Spiel.

    Taste "w" gedrückt / gedrückt halten Motor A läuft vorwärts
    Taste "s" gedrückt / gedrückt halten Motor A läuft rückwärts

    Taste "a" gedrückt / gedrückt halten Motor B läuft vorwärts (links)

    Taste "d" gedrückt / gedrückt halten Motor B läuft rückwärts (rechts)

    soweit so gut und geht.

    Nun soll wenn ich "w" gedrückt halte und zusätzlich z.B. "a" drücke Motor A weiter laufen und dazu Motor B.

    Im umgekehrten Fall wenn ich beide gedrückt halt und eine loslasse soll die gedrückte Funktion weiterlaufen.
    In alle erdenklichen Kombination natürlich, nur hier komme ich nicht weiter.

    Im Voraus besten Dank

    Michael

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™