values for absolute encoders
Posted: Sat Apr 09, 2016 3:17 pm
Hello,
I have a V4 2x5A that I'm controlling through serial. I have a gear motor with an absolute encoder on it. When I'm driving it with M1Forward(30), and log current, position, speed and direction (using readCurrents, readM1encoder and readM1speed through the python lib), I get the following for a 360deg turn:
I= 20 Pos= 175 Spd=-6928 Dir=1 Status= 130
I= 19 Pos= 1519 Spd= 1706 Dir=0 Status= 128
I= 19 Pos= 1937 Spd= 1777 Dir=0 Status= 128
I= 20 Pos= 1944 Spd= 1402 Dir=1 Status= 130
I= 20 Pos= 1943 Spd= 1124 Dir=0 Status= 130
I= 20 Pos= 1942 Spd= 884 Dir=0 Status= 130
I= 20 Pos= 1940 Spd= 690 Dir=1 Status= 130
I= 20 Pos= 1939 Spd= 549 Dir=1 Status= 130
I= 20 Pos= 1938 Spd= 429 Dir=1 Status= 130
I= 17 Pos= 1937 Spd= 330 Dir=1 Status= 130
I= 20 Pos= 1935 Spd= 265 Dir=0 Status= 130
I= 20 Pos= 1935 Spd= 205 Dir=1 Status= 130
I= 20 Pos= 1934 Spd= 153 Dir=1 Status= 130
I= 19 Pos= 1932 Spd= 123 Dir=0 Status= 130
I= 21 Pos= 1931 Spd= 89 Dir=1 Status= 130
I= 21 Pos= 1930 Spd= 66 Dir=1 Status= 130
I= 21 Pos= 1928 Spd= 49 Dir=0 Status= 130
I= 21 Pos= 1928 Spd= 35 Dir=1 Status= 130
I= 22 Pos= 1927 Spd= 19 Dir=1 Status= 130
I= 23 Pos= 1925 Spd= 11 Dir=1 Status= 130
I= 21 Pos= 1924 Spd= 4 Dir=1 Status= 130
I= 20 Pos= 1923 Spd= 0 Dir=1 Status= 130
I= 23 Pos= 1922 Spd= -4 Dir=1 Status= 130
I= 26 Pos= 1921 Spd= -8 Dir=1 Status= 130
I= 21 Pos= 1920 Spd= -10 Dir=0 Status= 128
I= 23 Pos= 1918 Spd= -11 Dir=0 Status= 130
I= 20 Pos= 1918 Spd= -8 Dir=0 Status= 130
I= 19 Pos= 1916 Spd= -19 Dir=1 Status= 130
I= 20 Pos= 1916 Spd= -15 Dir=1 Status= 130
I= 20 Pos= 1916 Spd= -16 Dir=1 Status= 128
I= 20 Pos= 1914 Spd= -16 Dir=1 Status= 130
I= 20 Pos= 1912 Spd= -16 Dir=0 Status= 130
I= 22 Pos= 1911 Spd= -21 Dir=1 Status= 130
I= 20 Pos= 1912 Spd= -17 Dir=1 Status= 128
I= 20 Pos= 1910 Spd= -18 Dir=1 Status= 130
I= 20 Pos= 1909 Spd= -18 Dir=1 Status= 130
I= 19 Pos= 1908 Spd= -23 Dir=1 Status= 130
I= 20 Pos= 1907 Spd= -18 Dir=0 Status= 128
I= 19 Pos= 1906 Spd= -18 Dir=1 Status= 130
I= 19 Pos= 1905 Spd= -23 Dir=1 Status= 130
I= 20 Pos= 1904 Spd= -19 Dir=1 Status= 130
I= 20 Pos= 1903 Spd= -18 Dir=0 Status= 130
I= 20 Pos= 1902 Spd= -18 Dir=1 Status= 130
I= 20 Pos= 1902 Spd=-3829 Dir=1 Status= 128
I= 21 Pos= 152 Spd=-6871 Dir=1 Status= 130
I= 23 Pos= 1726 Spd= 1830 Dir=0 Status= 128
I= 24 Pos= 1940 Spd= 1696 Dir=0 Status= 128
I= 19 Pos= 1944 Spd= 1339 Dir=1 Status= 130
Included a bit extra to see the full cycle.
The 10k pot is supposed to have 270 deg range, but can continuously rotate - just has a jump/gap. I can see it's wrong, even with a correcting resistor in series. However, I'm more confused by the speed - I'm trying to get the values to do PID/position control, and don't know what to do with non-constant speed, since I'm driving the motor constantly.
I have a V4 2x5A that I'm controlling through serial. I have a gear motor with an absolute encoder on it. When I'm driving it with M1Forward(30), and log current, position, speed and direction (using readCurrents, readM1encoder and readM1speed through the python lib), I get the following for a 360deg turn:
I= 20 Pos= 175 Spd=-6928 Dir=1 Status= 130
I= 19 Pos= 1519 Spd= 1706 Dir=0 Status= 128
I= 19 Pos= 1937 Spd= 1777 Dir=0 Status= 128
I= 20 Pos= 1944 Spd= 1402 Dir=1 Status= 130
I= 20 Pos= 1943 Spd= 1124 Dir=0 Status= 130
I= 20 Pos= 1942 Spd= 884 Dir=0 Status= 130
I= 20 Pos= 1940 Spd= 690 Dir=1 Status= 130
I= 20 Pos= 1939 Spd= 549 Dir=1 Status= 130
I= 20 Pos= 1938 Spd= 429 Dir=1 Status= 130
I= 17 Pos= 1937 Spd= 330 Dir=1 Status= 130
I= 20 Pos= 1935 Spd= 265 Dir=0 Status= 130
I= 20 Pos= 1935 Spd= 205 Dir=1 Status= 130
I= 20 Pos= 1934 Spd= 153 Dir=1 Status= 130
I= 19 Pos= 1932 Spd= 123 Dir=0 Status= 130
I= 21 Pos= 1931 Spd= 89 Dir=1 Status= 130
I= 21 Pos= 1930 Spd= 66 Dir=1 Status= 130
I= 21 Pos= 1928 Spd= 49 Dir=0 Status= 130
I= 21 Pos= 1928 Spd= 35 Dir=1 Status= 130
I= 22 Pos= 1927 Spd= 19 Dir=1 Status= 130
I= 23 Pos= 1925 Spd= 11 Dir=1 Status= 130
I= 21 Pos= 1924 Spd= 4 Dir=1 Status= 130
I= 20 Pos= 1923 Spd= 0 Dir=1 Status= 130
I= 23 Pos= 1922 Spd= -4 Dir=1 Status= 130
I= 26 Pos= 1921 Spd= -8 Dir=1 Status= 130
I= 21 Pos= 1920 Spd= -10 Dir=0 Status= 128
I= 23 Pos= 1918 Spd= -11 Dir=0 Status= 130
I= 20 Pos= 1918 Spd= -8 Dir=0 Status= 130
I= 19 Pos= 1916 Spd= -19 Dir=1 Status= 130
I= 20 Pos= 1916 Spd= -15 Dir=1 Status= 130
I= 20 Pos= 1916 Spd= -16 Dir=1 Status= 128
I= 20 Pos= 1914 Spd= -16 Dir=1 Status= 130
I= 20 Pos= 1912 Spd= -16 Dir=0 Status= 130
I= 22 Pos= 1911 Spd= -21 Dir=1 Status= 130
I= 20 Pos= 1912 Spd= -17 Dir=1 Status= 128
I= 20 Pos= 1910 Spd= -18 Dir=1 Status= 130
I= 20 Pos= 1909 Spd= -18 Dir=1 Status= 130
I= 19 Pos= 1908 Spd= -23 Dir=1 Status= 130
I= 20 Pos= 1907 Spd= -18 Dir=0 Status= 128
I= 19 Pos= 1906 Spd= -18 Dir=1 Status= 130
I= 19 Pos= 1905 Spd= -23 Dir=1 Status= 130
I= 20 Pos= 1904 Spd= -19 Dir=1 Status= 130
I= 20 Pos= 1903 Spd= -18 Dir=0 Status= 130
I= 20 Pos= 1902 Spd= -18 Dir=1 Status= 130
I= 20 Pos= 1902 Spd=-3829 Dir=1 Status= 128
I= 21 Pos= 152 Spd=-6871 Dir=1 Status= 130
I= 23 Pos= 1726 Spd= 1830 Dir=0 Status= 128
I= 24 Pos= 1940 Spd= 1696 Dir=0 Status= 128
I= 19 Pos= 1944 Spd= 1339 Dir=1 Status= 130
Included a bit extra to see the full cycle.
The 10k pot is supposed to have 270 deg range, but can continuously rotate - just has a jump/gap. I can see it's wrong, even with a correcting resistor in series. However, I'm more confused by the speed - I'm trying to get the values to do PID/position control, and don't know what to do with non-constant speed, since I'm driving the motor constantly.