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

    Imu.getAccel() returns gyro values ???

    UiFlow 2.0
    2
    4
    2.7k
    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.
    • N
      Nestor89
      last edited by

      Hi,

      there was a similar question 4 years ago realting to uiflow1 under the following URL:
      https://community.m5stack.com/topic/1672/imu-get-acc-reports-gyro

      There are 2 blocks in IMU for accel and gyro! IMU get accel and IMU get gyro.

      It seems that the returned values in both of both functions are gyro values. UIFlow generates the following code, and in the variables beschlx and beschly are identical values, namely gyro values. Furthermore it seems that the function does not return sperate values for x,y,z. Or is the return value a triple and I have to split the values somehow?

      def loop():
      global label0, label1, label2, label3, label4, label5, beschlx, beschly, beschlz
      M5.update()
      beschlx = Imu.getAccel()
      beschly = Imu.getGyro()
      beschlz = Imu.getAccel()
      label3.setText(str(beschlx))
      label4.setText(str(beschly))
      label5.setText(str(beschlz))

      Best regards,
      Nestor

      1 Reply Last reply Reply Quote 0
      • N
        Nestor89
        last edited by

        I have to correct myself.
        I work with an atom S3 right now.

        Imu.getAccel() returns values between -1 and 1 depending on the inclination of the atom S3.
        Imu.getGyro() returns values at least up to 30 depending on the velocity of movement of the atom S3.

        It looks like the functions each return the value for the other function. Are the functions implemented incorrectly or is the sensor wired incorrectly?

        Furthermore how can i access the x,y,z values? The blocks do not seem to have a parameter (There were blocks in uiflow 1 for x,y,z each) Are the values returned as a triple which needs to get sperated somehow?

        Best regards,
        Nestor

        1 Reply Last reply Reply Quote 0
        • N
          Nestor89
          last edited by

          Hi I figured out that Imu.getGyro() returns a tuple of 3 values and that a tuple can be considered as a list. The following code works to seperate the tuple:

          def loop():
          global label0, label1, label2, label3, label4, label5, highscorebeschl, beschly, beschlx, beschltuple, beschlz
          M5.update()
          beschltuple = Imu.getGyro()
          beschlx = beschltuple[0]
          beschly = beschltuple[1]
          beschlz = beschltuple[2]
          label3.setText(str(beschlx))
          label4.setText(str(beschly))
          label5.setText(str(beschlz))

          in blockly the block in list ... get # ... can be used
          However blockly counts from 1 to 3 while the generated phython code counts from 0 to 2.

          So in the end the question remains why Imu.getGyro() and Imu.getAccel() return the values of the other function.

          Best regards,
          Nestor

          1 Reply Last reply Reply Quote 0
          • lbuqueL
            lbuque
            last edited by

            @Nestor89 It has been fixed.

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