REMOTE+ Slider for motors
-
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?
-
you need to use the map block to map the range
-
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. -
def translate(value, inMin, inMax, outMin, outMax): return (value - inMin) * (outMax - outMin) / (inMax - inMin) + outMin
-
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?
-
the definition of your function has been created but you have to call it now with :
translate(slider_value, inMin, inMax, outMin, outMax) -
I also tried this - but with no success. Seems that mapping or translating might not work in combination with REMOTE. Thanks for your help!
-
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) )
-
with this definition the motors shows absolutely no movement.
-
@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 -
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+