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

    REMOTE+ Slider for motors

    UIFlow
    4
    11
    14.5k
    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.
    • W
      Werner_G
      last edited by

      I like the REMOTE+ - feature. Works fine, but... The slider range starts at 0 and ends with 100. Most motors are controlled in the range of -127 to +127. Has anyone an idea of how to manage this?

      1 Reply Last reply Reply Quote 0
      • ajb2k3A
        ajb2k3
        last edited by

        you need to use the map block to map the range

        UIFlow, so easy an adult can learn it!
        If I don't know it, be patient!
        I've ether not learned it or am too drunk to remember it!
        Author of the WIP UIFlow Handbook!
        M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

        1 Reply Last reply Reply Quote 0
        • W
          Werner_G
          last edited by

          you are probably right. But I cannot see any similarity with the maps-function of other IDE's. Great would be a mathematical function like this from MakeCode:
          "map 'speed' from low '0' high '100' to low '-127' high '127'" (or vice versa)
          Using arrays is very compicated, too much for me.

          1 Reply Last reply Reply Quote 0
          • R
            robalstona
            last edited by

            def translate(value, inMin, inMax, outMin, outMax):
                return (value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin
            
            1 Reply Last reply Reply Quote 0
            • W
              Werner_G
              last edited by

              Thank you. I tried this:

              ...
              def slider_Motor_callback(slider_value):
              global inMin, inMax, outMin, outMax, tof_0
              motion = Motion()
              inMin = 0
              inMax = 100
              outMin = -127
              outMax = 127
              def translate(slider_value, inMin, inMax, outMin, outMax):
              return (slider_value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin
              motion.set_motor_speed(1, slider_value)
              ...

              But this doesn't work. What might be wrong?

              1 Reply Last reply Reply Quote 0
              • J
                joueurgear
                last edited by joueurgear

                the definition of your function has been created but you have to call it now with :
                translate(slider_value, inMin, inMax, outMin, outMax)

                1 Reply Last reply Reply Quote 0
                • W
                  Werner_G
                  last edited by

                  I also tried this - but with no success. Seems that mapping or translating might not work in combination with REMOTE. Thanks for your help!

                  1 Reply Last reply Reply Quote 0
                  • R
                    robalstona
                    last edited by

                    Try this:

                    def translate(slider_value, inMin, inMax, outMin, outMax):
                      return (slider_value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin
                    
                    def slider_Motor_callback(slider_value):
                      motion = Motion()
                      motion.set_motor_speed(1, translate(slider_value, 0, 100, -127, 127) )
                    
                    W 1 Reply Last reply Reply Quote 0
                    • W
                      Werner_G @robalstona
                      last edited by

                      @robalstona

                      with this definition the motors shows absolutely no movement.

                      1 Reply Last reply Reply Quote 0
                      • R
                        robalstona
                        last edited by

                        @Werner_G, probably there is a problem with remote control. In this thread is a post about it
                        https://community.m5stack.com/topic/3477/uiflow-1-8-1

                        1 Reply Last reply Reply Quote 0
                        • W
                          Werner_G
                          last edited by

                          Finally, I've got it working using the map-block from Easy I/O in UIFlow (by chance I found it!), which is just

                          def slider_Motor_callback(slider_value):
                          motion.set_motor_speed(2, map_value(slider_value, 0, 100, -127, 127))

                          without any translation. Works fine with Remote+

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