🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Hello, could someone help me pass this code to a single core M5stack? Thanks

    Arduino
    1
    1
    1.4k
    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.
    • R
      RicaFrei
      last edited by

      #include <Mouse.h>

      float pulsesX, moveX,mouseX, lastPulsesX, XA_SIG=0, XB_SIG=1, pulsesY, moveY,mouseY, lastPulsesY, YA_SIG=0, YB_SIG=1;
      int wheelsSpeed;
      float panSpeed[4];
      float tiltSpeed[4];
      boolean buttonState, lastButtonState;

      void setup(){
      attachInterrupt(1, XA_RISE, RISING); // Pin 2
      attachInterrupt(0, XB_RISE, RISING); // Pin 3
      attachInterrupt(2, YA_RISE, RISING); // Pin 0
      attachInterrupt(3, YB_RISE, RISING); // Pin 1
      pinMode (8, INPUT_PULLUP); // pushButton
      Mouse.begin();
      Serial.begin(115200);
      delay(100);
      Serial.println("Connected");

      // Defining speed coeff to match Arrihead II
      panSpeed[1] = 9.71;
      panSpeed[2] = 5.1;
      panSpeed[3] = 2.84;

      tiltSpeed[1] = 12.45;
      tiltSpeed[2] = 6.58;
      tiltSpeed[3] = 3.38;

      wheelsSpeed = 1; // Default speed when rebooting the arduino
      }

      void loop(){

      buttonState=digitalRead(8); // Speed selection pushbutton

      if ( buttonState != lastButtonState && buttonState == 0) {
      wheelsSpeed = wheelsSpeed +1;
      if (wheelsSpeed >= 4) {
      wheelsSpeed = 1;
      }
      }

      // Calculating wheels movement
      moveX = lastPulsesX - pulsesX;
      moveY = pulsesY - lastPulsesY;

      // Mapping to the Arrihead speed
      mouseX = moveX / panSpeed[wheelsSpeed];
      mouseY = moveY / tiltSpeed[wheelsSpeed];

      Mouse.move (mouseX, mouseY);

      Serial.print("x");
      Serial.print(wheelsSpeed);
      Serial.print("y");
      Serial.print(pulsesY);
      Serial.println("end");

      lastPulsesX = pulsesX; // Storing last value for X movement
      lastPulsesY = pulsesY; // Storing last value for Y movement
      lastButtonState = buttonState;

      delay(20);

      }

      //X-Axis

      void XA_RISE(){
      detachInterrupt(1);
      //delay(1);
      XA_SIG=1;

      if(XB_SIG==0)
      pulsesX++;//moving forward
      if(XB_SIG==1)
      pulsesX--;//moving reverse

      attachInterrupt(1, XA_FALL, FALLING);
      }

      void XA_FALL(){
      detachInterrupt(1);
      //delay(1);
      XA_SIG=0;

      if(XB_SIG==1)
      pulsesX++;//moving forward
      if(XB_SIG==0)
      pulsesX--;//moving reverse

      attachInterrupt(1, XA_RISE, RISING);
      }

      void XB_RISE(){
      detachInterrupt(0);
      //delay(1);
      XB_SIG=1;

      if(XA_SIG==1)
      pulsesX++;//moving forward
      if(XA_SIG==0)
      pulsesX--;//moving reverse

      attachInterrupt(0, XB_FALL, FALLING);
      }

      void XB_FALL(){
      detachInterrupt(0);
      //delay(1);
      XB_SIG=0;

      if(XA_SIG==0)
      pulsesX++;//moving forward
      if(XA_SIG==1)
      pulsesX--;//moving reverse

      attachInterrupt(0, XB_RISE, RISING);
      }

      //Y-Axis

      void YA_RISE(){
      detachInterrupt(2);
      //delay(1);
      YA_SIG=1;

      if(YB_SIG==0)
      pulsesY++;//moving forward
      if(YB_SIG==1)
      pulsesY--;//moving reverse

      attachInterrupt(2, YA_FALL, FALLING);
      }

      void YA_FALL(){
      detachInterrupt(2);
      //delay(1);
      YA_SIG=0;

      if(YB_SIG==1)
      pulsesY++;//moving forward
      if(YB_SIG==0)
      pulsesY--;//moving reverse

      attachInterrupt(2, YA_RISE, RISING);
      }

      void YB_RISE(){
      detachInterrupt(3);
      //delay(1);
      YB_SIG=1;

      if(YA_SIG==1)
      pulsesY++;//moving forward
      if(YA_SIG==0)
      pulsesY--;//moving reverse

      attachInterrupt(3, YB_FALL, FALLING);
      }

      void YB_FALL(){
      detachInterrupt(3);
      //delay(1);
      YB_SIG=0;

      if(YA_SIG==0)
      pulsesY++;//moving forward
      if(YA_SIG==1)
      pulsesY--;//moving reverse

      attachInterrupt(3, YB_RISE, RISING);
      }

      1 Reply Last reply Reply Quote 0
      • First post
        Last post