-         

Ergebnis 1 bis 2 von 2

Thema: shake-control ("wie im iPhone") mit Beschleunigung

  1. #1

    shake-control ("wie im iPhone") mit Beschleunigung

    Anzeige

    Hallo,
    Ich bin dabei ein UserInterface für intuitive Steuerung zu entwerfen.

    Das Konzept:
    Ein etwa faustgroßer Steuerball, der ohne Tasten auskommt.
    Die Steuerung soll möglichst intuitiv passieren und einfach gehalten sein.

    Gesteuert werden sollen damit Anwendungen auf dem PC und auch über relais netzbetriebene Geräte wie Lampen, usw....

    Die Murmel soll in einiger Zeit über Neigung und Schütteln einfache eingaben ermöglichen. Der Benutzer soll auf der Couch sitzen, dabei beispielsweise auf den PC zielen und Winamp bedienen.

    Ich benutze:
    • Arduino mit ATmega168
      AccSensor LIS3LV02DQ (+-2g in 3-Achsen, kommunizeirt über I2C)
      (wenn der Acc funktioniert, kommen noch einige ander Sensoren dazu.)
      Processing, um die Daten über USB grafisch darzustellen.
      AdobeFlashCS3 (hierher sollen alle Daten später übergeben werden und über ein GUI eingestellt und eingesehen werden.


    Meine erste Signalübergabe umfasst das Signal eines 3-Achsen BeschleunigungsSensors (LIS3LV02DQ).
    Als ersten Test soll der Controller nur ein Signal für Links, bzw. Rechts ausgeben.

    Mein Problem:
    Der Sensor soll links- bzw. rechts geschüttelt werden (ähnlich wie beim iPhone) und als ausgabe den Wert über eine Schnittstelle schicken.
    Als debugginghilfe habe ich im Moment 2leds angeschlossen, die leuchten wenn ein schüttler registriert wurde.
    Das Signal ist aber leider noch nicht eindeutig.
    --> Am anfang der Bewegung (z.B. Schwenk nach rechts) bekomme ich am anfang der Bewegung einen negativen Peak und am Ende der Bewegung einen positiven Peak.


    http://picasaweb.google.de/lh/photo/...fzKPqzco5_sGuw

    Meine bisherigen Tests:
    Ich habe eine kleine Anwendung in Processing geschrieben, um die Daten, die später der Rechner zur Auswertung bekommt auch grafisch darstellen zu können. Hier ist eine kleine Grafik daraus:

    http://picasaweb.google.de/lh/photo/...ATX2zCMrep5cjA
    Hier werden nur lansame Neigungsänderungen aufgenommen und die Farbe ändert sich, sobald ein Schwellwert überschritten ist.

    Hat jemand eine Idee wie ich das schütteln sicher detektieren könnte?!?
    Bis jetzt sieht die einfache Schleife so aus:
    Code:
    if(x_val >= 100){
          digitalWrite(ledPin_x1,HIGH);
          digitalWrite(ledPin_x2,LOW);
          delay(50);
        } else{digitalWrite(ledPin_x1,LOW);}
      
     if(x_val <= -100){
        digitalWrite(ledPin_x2,HIGH);
        digitalWrite(ledPin_x1,LOW);
        delay(50);
        } else{digitalWrite(ledPin_x2,LOW);}
    Sie funktioniert aber eher nach dem Zufallsprinzip, weil es eher zufall ist, welcher peak die Aktion auslöst.

    Um meine kreativen CodeKünste ist es nicht allzu rosig bestellt...
    Also wäre ich sehr dankbar für einen Tip, der mich weiter bringt.

    Es müsste z.B. der erste Peak erfasst werden und danach die Steigung auf dem Weg zum anderen Peak.
    Wenn das alles erfüllt ist, so soll die eine oder die andere led leuchten.

    Beste Grüße,
    bitreacter

  2. #2
    Ich habe das Problem inzwischen gelöst.
    Wer daran interessiert ist, kann hier nachlesen:


    http://www.arduino.cc/cgi-bin/yabb2/...m=1227208027/0

Berechtigungen

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