Jag har en radiostyrd gräsklippare http://elektronikforumet.com/forum/view ... =3&t=41526
Den bygger jag om varje år eftersom det alltid är något som strular eller går sönder.
Vårens ombyggnation är den bästa hittils, stabil funktion och riktigt hanterbar.
Klipparen styr jag med en ps2-kontroller som läses av med en arduino och skickas med en radiomodul(rs232).
Kontrollern skickar ett meddelande med joysticklägena och vilka knappar som är intryckta .
På klipparen så sitter en annan arduino som tar emot meddelandet och gör om dessa så det passar till motorstyrningen(Sabertooth 2x60) som i sin tur styr de två motorerna.
Nu till mitt problem, arduinon var tidigare ansluten seriellt till motorstyrningen men nu verkar det som om den funktionen har slutat att fungera.
Sabertooth:en har möjlighet att ta emot servosignaler istället vilket jag har testat med ett enkelt sweep-program och den verkar fungera med det.
Joystick värdena för gas kommer som 0--180 där 0 är full back och 180 är fullt framåt och 90 är i mitten.
på samma sätt är vänster 0 och höger är 180 och 90 är rakt fram.
Sabertoothen har samma upplägg men jag måste ge motorerna värden beräknat på gas och styrning(tankstyrning), dvs om jag får gas 150 och styrning 90 så skall båda motorerna få 150 värde och gå rakt.
Men om jag skickar 150 gas men 45 på styrning så skall MotorHöger ha 150 medan motorVänster skall minskas så klipparen svänger vänster.
Mina mattekunskaper är tydligen sämre än jag trodde, jag har kört fast.
Jag har löst detta tidigare men hittar inte programfilerna då jag inte rört programmet på flera år.
Jag har för mig att jag gjorde en formel per kvadrant eftersom jag vill ha en dödpunkt i mitten på joystickarna.
Är det någon som kan förbarma sig över mitt problem...dvs att hjälpa mig med formlerna.
Med vänlig hälsning Johan
Hjälp med formel
-
- Inlägg: 91
- Blev medlem: 11 april 2006, 14:41:46
- Ort: Örebro
Re: Hjälp med formel
Kul.
Hur manövrerbar är klipparen? Vill du kunna rotera den genom att köra motorerna åt varsitt håll, eller räcker det med att ena motorn stannar vid full styr-input?
Jag kan tänka mig ett schema som detta:
1. Vid nollfart och styr-input drivs motorerna lika mycket åt varsitt håll (klipparen roterar på plats)
2. Vid fart och mindre styr-input, sackar den ena motorn (klipparen svänger)
3. Vid fart och fullt styr-input stannar den ena motorn helt (klipparen svänger snävt runt detta hjulet)
Jag räknar med att motorerna ska ha 0 vid full back, 90 vid stillestånd och 180 vid fullt framåt.
Pseudokod:
Kontrollräkning:
Framåtfärd:
STYR=100 (svag sväng höger)
FART=100 (sakta framåt)
MotorVänster = 100
MotorHöger = (100-90)*((180-100)/90)+90 = 98.89
STYR=80 (svag sväng vänster)
MotorVänster = (100-90)*(80/90)+90 = 98.89
MotorHöger = 100
STYR=180 (bråd sväng höger)
MotorVänster = 100
MotorHöger = (100-90)*((180-180)/90)+90 = 90 = stillastående
STYR=0 (bråd sväng vänster)
MotorVänster=(100-90)*(0/90)+90 = 90 = stillastående
MotorHöger=100
Back:
FART=30 (snabbt bakåt)
STYR=20 (snäv sväng vänster)
MotorVänster=(30-90)*(20/90)+90 = 76.67
MotorHöger=30
Verkar fungera!
Edit: vill du lägga in döda områden i STYR och/eller FART, kan du göra det innan du matar dem till programmet ovan:
Edit2: rotera-på-plats-koden var baklänges
Hur manövrerbar är klipparen? Vill du kunna rotera den genom att köra motorerna åt varsitt håll, eller räcker det med att ena motorn stannar vid full styr-input?
Jag kan tänka mig ett schema som detta:
1. Vid nollfart och styr-input drivs motorerna lika mycket åt varsitt håll (klipparen roterar på plats)
2. Vid fart och mindre styr-input, sackar den ena motorn (klipparen svänger)
3. Vid fart och fullt styr-input stannar den ena motorn helt (klipparen svänger snävt runt detta hjulet)
Jag räknar med att motorerna ska ha 0 vid full back, 90 vid stillestånd och 180 vid fullt framåt.
Pseudokod:
Kod: Markera allt
Om FART=90:
MotorVänster==STYR; MotorHöger==180-STYR /*klipparen roterar på plats, står still om ingen styr-input ges*/
Om FART <>90:
Om STYR=90: MotorVänster==FART; MotorHöger==FART /*klipparen kör rakt*/
Om STYR>90: MotorVänster==FART; MotorHöger==(FART-90)*((180-STYR)/90)+90 /*klipparen svänger höger*/
Om STYR<90: MotorVänster==(FART-90)*(STYR/90)+90; MotorHöger=FART /*klipparen svänger vänster*/
Kontrollräkning:
Framåtfärd:
STYR=100 (svag sväng höger)
FART=100 (sakta framåt)
MotorVänster = 100
MotorHöger = (100-90)*((180-100)/90)+90 = 98.89
STYR=80 (svag sväng vänster)
MotorVänster = (100-90)*(80/90)+90 = 98.89
MotorHöger = 100
STYR=180 (bråd sväng höger)
MotorVänster = 100
MotorHöger = (100-90)*((180-180)/90)+90 = 90 = stillastående
STYR=0 (bråd sväng vänster)
MotorVänster=(100-90)*(0/90)+90 = 90 = stillastående
MotorHöger=100
Back:
FART=30 (snabbt bakåt)
STYR=20 (snäv sväng vänster)
MotorVänster=(30-90)*(20/90)+90 = 76.67
MotorHöger=30
Verkar fungera!
Edit: vill du lägga in döda områden i STYR och/eller FART, kan du göra det innan du matar dem till programmet ovan:
Kod: Markera allt
Om ABS(STYR-90)<GRÄNS: STYR=90
-
- Inlägg: 91
- Blev medlem: 11 april 2006, 14:41:46
- Ort: Örebro
Re: Hjälp med formel
Hej
Stort tack....det ser väldigt bra ut.
Klipparen har fungerat så tidigare att om gas är 90 så roterar motorerna mot varandra baserat endast på styrläget precis som du beskriver.
Jag skall testa under dagen och återkommer med resultatet.
/Johan
Stort tack....det ser väldigt bra ut.
Klipparen har fungerat så tidigare att om gas är 90 så roterar motorerna mot varandra baserat endast på styrläget precis som du beskriver.
Jag skall testa under dagen och återkommer med resultatet.
/Johan
-
- Inlägg: 91
- Blev medlem: 11 april 2006, 14:41:46
- Ort: Örebro
Re: Hjälp med formel
Det verkar som min motorkontroller har gett upp. Troligen på grund av fukt 
Nu får jag se hur jag gör. Klipparen har fungerat för bra för att skrota, så får nog bita i sura äpplet och beställa en ny sabertooth.Jag upskattar verkligen din hjälp GalFisk tack igen.
.

Nu får jag se hur jag gör. Klipparen har fungerat för bra för att skrota, så får nog bita i sura äpplet och beställa en ny sabertooth.Jag upskattar verkligen din hjälp GalFisk tack igen.
.
Re: Hjälp med formel
Tråkigt att höra, hoppas du snart får den nya i hus, och att du kan hålla fukten ute ur denna.
Bara kul att kunna hjälpa, jag gillar denna sortens utmaningar. Det var en stund sen jag programmerade något själv och det börjar klia i fingrarna, kanske ska jag skaffa en arduino och/eller börja porta det lilla PC-spelet jag gjorde i tonåren till mobil.
Edit: och då kanske jag lär mig rätt på == och = som jag ser att jag bytt plats på i pseudokoden. Till mitt försvar har jag programmerat mest i Basic och Pascal.
Bara kul att kunna hjälpa, jag gillar denna sortens utmaningar. Det var en stund sen jag programmerade något själv och det börjar klia i fingrarna, kanske ska jag skaffa en arduino och/eller börja porta det lilla PC-spelet jag gjorde i tonåren till mobil.
Edit: och då kanske jag lär mig rätt på == och = som jag ser att jag bytt plats på i pseudokoden. Till mitt försvar har jag programmerat mest i Basic och Pascal.
-
- Inlägg: 91
- Blev medlem: 11 april 2006, 14:41:46
- Ort: Örebro
Re: Hjälp med formel
Nu har jag fått hem min Sabertooth 2x32 och fått lite tid att programmera.
Nu har jag i alla fall den rullande.
Det återstår lite säkerhetsfunktioner och styrningen av klipparmotorerna.
Tack igen för hjälpten med formeln.
https://youtu.be/Rjqv3RaAdxc
Nu har jag i alla fall den rullande.
Det återstår lite säkerhetsfunktioner och styrningen av klipparmotorerna.
Tack igen för hjälpten med formeln.
https://youtu.be/Rjqv3RaAdxc