Hjälp med lite VB kod, Joystick mixvärde!

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
gOry
Inlägg: 5119
Blev medlem: 6 juni 2003, 22:41:25
Ort: Stockholm
Kontakt:

Hjälp med lite VB kod, Joystick mixvärde!

Inlägg av gOry »

Det är så att jag har 2st Joystickaxlar som jag vill få ut 2 mixvärden av.
Axlarna går från 1-127 , 64 är mitten.
Hur ska man lösa detta på bästa sätt?
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Hjälp med lite vb kod, Joystick mixvärde!

Inlägg av v-g »

(A+B)/2

Eller hur menar du med mixvärde?
Användarvisningsbild
gOry
Inlägg: 5119
Blev medlem: 6 juni 2003, 22:41:25
Ort: Stockholm
Kontakt:

Re: Hjälp med lite vb kod, Joystick mixvärde!

Inlägg av gOry »

Ska styra två motorer, så jag vill att joystick rakt fram är båda motorer full fart framåt och vise versa och höger och vänster "mixar" så att de styr som en bandvagn.
egentligen så ska Motor1 ha 1-127 och Motor två ha 129-255 men det går att justera sen.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Hjälp med lite vb kod, Joystick mixvärde!

Inlägg av v-g »

Det blir ändå rätt enkelt fram/bak ökar/minskar/reverserar "farten" eller PWMvärde på båda medan höger vänster minskar "farten" eller PWMvärdet på den sidan.

Med PWM-värde menar jag tiden PÅ.
Användarvisningsbild
JonasJ
Inlägg: 653
Blev medlem: 11 september 2007, 16:02:26
Ort: Kinna
Kontakt:

Re: Hjälp med lite vb kod, Joystick mixvärde!

Inlägg av JonasJ »

http://www.pololu.com/docs/0J37/4

Kod: Markera allt

# /** 
#              * Mix calculation 
#              *  
#              * This calculation mixes the pulses from the two channels  
#              * to make control intuitive. Channel 0 controls foward and  
#              * reverse. When the pulse is longer than neutralPulseTime it 
#              * adds to m1 and m2; when the pulse is shorter than nuetralPulseTime 
#              * it subtracts from m1 and m2. Channel 1 controls rotation. When the 
#              * pulse is longer than neutralPulseTime it subtracts from m1 and adds 
#              * to m2; when the pulse is shorter than neutralPulseTime it adds to m1  
#              * and subtracts from m2. m1 and m2 are then scaled so they fit within  
#              * -255 to 255 range. 
#              *  
#              * Calibration 
#              * 
#              * Your transmitter/receiver might treat channels 0 and 1 differently  
#              * than the receiver this code was developed for. If your 3pi turns  
#              * when you expect it to go straight or vice versa, you may need to flip  
#              * a sign in the calculation below or swap the connections at the receiver. 
#              * 
#              */  
#             long m1 = (neutralPulseTime - (int)ch[0].pulse) +   
#                       ((int)ch[1].pulse - neutralPulseTime);  
#             long m2 = (neutralPulseTime - (int)ch[0].pulse) -   
#                       ((int)ch[1].pulse - neutralPulseTime);  
#             m1 = m1 * 255 / minPulseTime;  
#             m2 = m2 * 255 / minPulseTime;  
#             set_motors(m1, m2);  
Sedan får du förstås skala så att det passar med dina max- och minvärden.
Skriv svar