MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-GroveGestures

    Scheduled Pinned Locked Moved System
    51 Posts 8 Posters 17.8k Views 12 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ? Offline
      A Former User
      last edited by A Former User

      MMM-GroveGestures

      MagicMirror Module - detecting 3D gesture with GroveGesture Sensor(PAJ7620u2)

      Video Clip

      2.1.0 demo

      Hardware

      0_1542300396812_Gesture_sensor_3.png

      • Grove Gesture Sensor (PAJ7620u2)
        • The sensor on Grove - Gesture is PAJ7620U2 that integrates gesture recognition function with general I2C interface into a single chip. It can recognize 9 basic gestures, and these gestures information can be simply accessed via the I2C bus.
        • price: $10~20USD
        • gestures : Up / Down / Left / Right / Forward / Backward / Clockwise / Count Clockwise / Wave
        • detection range : 5 ~ 10cm / non-touch
        • size : 20mm X 20mm

      Unfortunately, due to it’s short range and theory of electro-magnetic field, this sensor will not be used beneath Spymirror. But under the thin wooden, plastic or normal glass, it will work.
      It works as 3D gesture sensor similar with Skywriter or Flick!, but definitely small, flat, and non-HAT. It could fit for bezel-frame of MagicMirror. Soldering is not needed.

      Comparison

      • vs. PIR sensor, ultrasonic sensor, CAM motion detection
        • PROS: more gestures
        • CONS: short range
      • vs. Skywriter, Flick!
        • PROS: small
        • CONS: touch, tap gestures are not supported
      • vs. CAM gesture recognition
        • PROS: light, easy, low CPU
        • CONS: short range, not so COOL

      REQUIREMENT

      • 1 x Grove Gesture Sensor (or PAJ7620u2 compatible)
      • 1 x 4pin Female jumper cable

      Pin Connect (I2C 1)

      • 5V (GPIO PIN 4) : VCC
      • GND (GPIO PIN 6) : GND
      • SDA (GPIO PIN 3) : SDA
      • SCL (GPIO PIN 5) : SCL

      Install & Details

      [card:eouia/MMM-GroveGestures]

      1 Reply Last reply Reply Quote 3
      • B Offline
        bolish
        last edited by

        Hi @Sean ,

        I was wondering if the module would be able to handle 2 identical PAJ7620u2 sensors?

        Not talking about combining both (maybe an idea for later), but just giving the user the possibility to have 2 times more interactions with modules by putting one sensor on right side of the Mirror and the other on left side for example.

        I’m currently building my mm project and I’ve to be honest, I would love that!!

        Regards

        ? 1 Reply Last reply Reply Quote -1
        • ? Offline
          A Former User @bolish
          last edited by

          @bolish
          I answered on github.
          Currently it couldn’t. Sorry. I’ve never imagined that situation.

          1 Reply Last reply Reply Quote 0
          • B Offline
            bolish
            last edited by

            Thanks for the answer and the additional “sequence” tip. Let’s follow up on GitHub post if needed.

            1 Reply Last reply Reply Quote 0
            • B Offline
              Benjaminh86
              last edited by

              Hello World,

              I love your module!
              I use MMM-page-selector to switch between 2 pages. I wanted to use grove gesture to change pages, but I can not adapt the script.
              I can see my gestures in the Magic Mirror when I pass my hand in front of the grove gesture; after, i do not know what to put in config.js
              Can you help me?
              For information, my english is bad, and I do not know anything about programming!

              Thank you

              BenH

              ? 1 Reply Last reply Reply Quote 0
              • ? Offline
                A Former User @Benjaminh86
                last edited by

                @Benjaminh86
                Let’s assume You have page 1 and 2.

                You can assign gesture LEFT to 1, RIGHT to 2.
                At that case, you can add this to your command set(default or any other you want).

                "LEFT": {
                  notificationExec: {
                    notification: "PAGE_SELECT",
                    payload: "1",
                  }
                },
                "RIGHT": {
                  notificationExec: {
                    notification: "PAGE_SELECT",
                    payload: "2",
                  }
                },
                

                The problem is, MMM-page-selector has no feature of “NEXT PAGE” or “PREVIOUS PAGE”. so when there be more than 2 pages, you should assign gestures per each page.

                B 1 Reply Last reply Reply Quote 0
                • B Offline
                  Benjaminh86 @Guest
                  last edited by

                  @Sean as I said, I’m a beginner, and I do not understand everything in programming.
                  In addition, I have a synthaxe error on the line “exec: (module, gestures) => {”
                  it indicates a problem with the symbol =>.
                  Can you help me?

                  ? 2 Replies Last reply Reply Quote 0
                  • ? Offline
                    A Former User @Benjaminh86
                    last edited by

                    @Benjaminh86
                    Show me your configuration.

                    B 1 Reply Last reply Reply Quote 0
                    • B Offline
                      Benjaminh86 @Guest
                      last edited by

                      @Sean

                      here is my configuration for your module :

                      {
                      module: “MMM-GroveGestures”,
                      position: “top_right”,
                      pages: {‘all’: ‘top_right’},
                      config: {
                      autoStart: true, //When Mirror starts, recognition will start.
                      verbose:false, // If set as true, useful messages will be logged.
                      recognitionTimeout: 1000, //Gesture sequence will be ended after this time from last recognized gesture.
                      cancelGesture: “WAVE”, //If set, You can cancel gesture sequence with this gesture.
                      visible: true, //Recognized gesture sequence will be displayed on position

                      idleTimer: 1000*60*30, // `0` for disable, After this time from last gesture, onIdle will be executed.
                      onIdle: { // See command section
                        moduleExec: {
                          module: [],
                          exec: (module, gestures) => {
                            module.hide(1000, null, {lockstring:"GESTURE"})
                      	}
                           }
                            },
                      onDetected: {
                        notificationExec: {
                          notification: "GESTURE_DETECTED",
                        },
                        /* You can make Mirror to wake up the modules which were hidden by onIdle with any gestures.
                        moduleExec: {
                          module: [],
                          exec: (module) => {
                            module.show(1000, null, {lockstring:"GESTURE"})
                          }
                        }
                        */
                      },
                      
                      gestureMapFromTo: { //When your sensor is installed with rotated direction, you can calibrate with this.
                        "Up": "UP",
                        "Down": "DOWN",
                        "Left": "LEFT",
                        "Right": "RIGHT",
                        "Forward": "FORWARD",
                        "Backward": "BACKWARD",
                        "Clockwise": "CLOCKWISE",
                        "anti-clockwise": "ANTICLOCKWISE",
                        "wave": "WAVE"
                      },
                      commandSet: {
                           "LEFT": {
                      	notificationExec: {
                      		notification: "PAGE_SELECT",
                      		payload: "main",
                      	}
                           },
                            "RIGHT": {
                      	notificationExec: {
                      		notification: "PAGE_SELECT",
                      		payload: "2",
                            }
                          },
                        },
                      },
                      

                      }
                      },

                      ? 1 Reply Last reply Reply Quote 0
                      • ? Offline
                        A Former User @Benjaminh86
                        last edited by

                        @Benjaminh86
                        Your configuration about commandSet has something wrong.

                        commandSet: {
                          "default" : {
                            "LEFT": {
                              notificationExec: {
                                notification: "PAGE_SELECT",
                                payload: "main",
                              }
                            },
                            "RIGHT": {
                              notificationExec: {
                                notification: "PAGE_SELECT",
                                payload: "2",
                              }
                            },
                          },
                        },
                        
                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 6
                        • 1 / 6
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy