Beiträge von Seppl1

    Ne, ich meine das "rütteln" von links/rechts. Du hattest geschrieben, das ist standardmäßig "lshift+strg" und "rshift+strg". Kannst du das auf jeweils eine einzelne Taste abändern?

    Keine Sorge, mich gibt's noch. [bs] War nur die letzten Tage ziemlich beschäftigt bzw. wollte in meiner freien Zeit dann nicht noch mehr vor dem Computer sitzen.


    Kannst du die Schubser von links/rechts auf einzelne Tasten legen? In dem Fall sollte es mit dem folgenden Code funktionieren.

    • Wenn du die Tasten vergeben hast, musst du in Zeile 18-23 die jeweiligen Keys für Haue von links/rechts/vorne... eintragen. Wenn eine Richtung nicht verwendet wird, sollte der Wert auf 0 gesetzt werden.
    • In Zeile 47-52 müssen Referenzwert und Grenzwert für die jeweilige Achse gesetzt werden. Um das besser zu bestimmen kannst du den zweiten Code weiter unten verwenden, damit der Sensor dir jede Malträtierung per serieller Schnittstelle berichtet. Genauer gesagt wird er ständig den aktuellen Sensorwert ausgeben und wenn getriggert wird kommt eine entsprechende Meldung.


    So, jetzt bin ich gespannt ob der Code funktioniert [ag]

    Hey. Sorry, dass ich mich so lange nicht gemeldet habe, war viel los diese Woche.

    Ich werde mich heute oder morgen mal an den Code setzen, damit anstupsen in jede Richtung separat erkannt wird. Welche Werte du dann eintragen musst, kann ich nicht sagen, da werd ich vielleicht noch Code schreiben, der beim bestimmen der Werte hilft.

    Könnte es vielleicht auch sein, dass einfach nur die Lötverbindung nicht gut ist? Dann würde der Arduino zufällige Werte auslesen und die dann häufig als Stoß interpretieren.

    wenn ich das zeug flashe, geht's - ich krieg zwar keine zahlen oder so, aber die spaces kommen, wie sie sollen und ohne nachträglichen "tick".

    Ja, stimmt. Für die Zahlen hätte man noch mehr ändern müssen.


    stecke ich den arduino aber ab und wieder an, dann tickt der space wieder.

    Hast du nach dem einstecken daran gedacht, ihn ein paar Sekunden ruhig liegen zu lassen? Bei jedem einstecken wird nämlich der Referenzwert ermittelt und dafür muss er (2s nach dem einstecken) ruhig liegen. Wenn die Position/Stellung vom Sensor nicht mehr verändert wird, könnte man den Referenzwert natürlich auch fest einprogrammieren.

    Ersetze mal in Zeile 81/82
    Keyboard.press(SP_KEY);
    Keyboard.release(SP_KEY);
    durch
    Keyboard.println(ref);

    Dann mach einen Texteditor auf und schließ den Arduino an. Wenn du ihn dann schüttelst, sollte er statt einem Leerzeichen den Referenzwert in den Editor schreiben. Wenn er dann alle 2s den selben Wert schreibt, ist was am Code falsch. Wenn aber nach den ersten 2s ein anderer Wert alle 2s geschrieben wird, dann verliert er beim schütteln die Stromversorgung.

    Aktuell machen auf jeden Fall nur positive Werte Sinn. -30 bis +30m/s^2 entsprechen einer Spannung zwischen 0 und 3,3V. Der Arduino kann 0-5V mit 10bit Genauigkeit lesen, also 1024 Werte. Spannungen zwischen 0 und 3,3V entsprechen also Werten zwischen 0 und 576. D.h. 1m/s^2 entspricht ungefähr Wert 11,25. Ein paar Beispielwerte:


    m/s^2Sensorwert
    -300
    -20112
    -10225
    0337
    2360
    4382
    6405
    8427
    10450
    20562
    30576


    So wie es momentan implementiert ist, muss die Differenz zur "Ruhebeschleunigung" größer sein, als der eingestellte Wert. Wenn der Sensor in Ruhe z.B. waagerecht steht, müsste er 0m/s^2 spüren. Dann bedeutet 100 also, dass es also einfach bei 100 auslöst, also grob bei +/-10m/s^2. Wenn er aber senkrecht steht spürt er in Ruhe die Erdbeschleunigung von knapp 10m/s^2, dann würde er bei 100 also bei 0 oder 20m/s^2 auslösen.

    Ich weiß nicht, was ich gestern gerechnet hatte, aber ich denke du könntest es mal im Bereich 40-50 versuchen.

    könnte man das auch für x und y extra einstellen? denke, x ist nicht so sensibel wie y und z könnte man sowieso total ignorieren.

    Hab den Code gerade minimal abgeändert. Z ist deaktiviert und jetzt kannst du in Zeile 115/116 einstellen, ab wann es triggern soll.

    für mehr "echtheit" ists auch wichtig, dass ich die richtungen unterscheiden kann, also x+, x- und y. ist zwar rein technisch ned so wichtig, aber würde mehr in richtung "simulation" gehen.

    Auslesen lässt sich das natürlich problemlos, aber was willst du damit anfangen? Letztendlich wird doch nur die Leertaste gedrückt, oder? Vielleicht musst du mir mal noch genauer erklären welche Bewegungen es so gibt. Ich hatte bisher angenommen, es gibt einfach nur "dran rütteln".

    ich fände es aber deutlich einfacher, wenn man den batch aufruft. das kann ich, da kann ich mich dann gut genug aus, ohne dich zu nerven. also wenn das ginge ...

    Wenn es eine Tastenkombination zum öffnen der Kommandozeile gibt, könnte der Arduino die eingeben und danach den Befehl zum ausführen der Batch.

    Also, anbei mal eine erste Version.

    • Aktuell wird nach den Strings Enter gedrückt, falls das nicht so sein soll, einfach das "println" jeweils durch "print" ersetzen.
    • Generell ist der Teil zu den Strings nicht unbedingt schön (insb. falls er jemals erweitert werden sollte), aber er sollte funktionieren.
    • Man muss sicher noch mit "minBump" einstellen, wie sensibel der Beschleunigungssensor sein soll. Könnte mir vorstellen, dass es so noch etwas zu sensibel ist und der Wert höher sein sollte.
    • Wenn du die Tastatur einsteckst, solltest du sie hinstellen und kurz ruhig stehen lassen, dann wird dieser Wert für die Beschleunigung (die Erdbeschleunigung) als Referenz verwendet. Da alle 3 Sensoren gleich behandelt werden, sollte es aktuell auch relativ egal sein, wie der Sensor positioniert ist.
    • Nach einem Tilt wird 2s jede Beschleunigung ignoriert, den Wert könnte man vermutlich noch runter setzen, aber ich denke Tilt wird nicht so oft benötigt?
    • Wegen dem Starten/Ausführen von nem Batch Skript: Ich denke da ist es sinnvoller einen Service zu erstellen, der das Skript ausführt, wenn das USB-Gerät erkannt wird. Unter Linux wäre das kein Problem, wie das unter Windows funktioniert kann ich dir aber nicht sagen. Dabei sollte man aber beachten, dass die USB VendorID und ProductID standardmäßig bei jedem Pro Micro gleich sein wird, also evtl. braucht es noch etwas anderes um genau diese Gerät zu identifizieren, sonst startet es auch bei deinem HandGamer.


    Bezüglich Amazon: Öffne mal das Addon "Inputstream Helper" und geh auf "Inputstream Helper Informationen".
    Wenn da bei Widevine CDM Version 4.10.2391.0 steht, liegt es vermutlich daran. Dann müsstest du entweder eine Testversion von Inputstream Helper installieren oder auf ein Update warten, dass in ein paar Tagen in den Repos sein sollte.

    Wenn du dann die neue Version von Inputstream Helper hast, musst du darin noch einmal auf "Widevine CDM erneut installieren" gehen.

    Eine Testversion findest du hier: Aktuelle Widevine Problematik
    oder die aktuellste hier: https://github.com/emilsvennesson…ment-1098497007

    Pins hat der Pro Micro auf jeden Fall genug und welchen du wofür nutzt ist auch fast egal. Einzige Vorgabe ist, dass der Sensor für jede Achse einen analogen Input braucht, also einen der "grünen" Pins.