DC motor sturing


Op 27 januari 2020 11:53:16 schreef GJ_:
Of de stick moet op één as een dubbele potmeter hebben. Dan heb je verder niks nodig.

Ik heb pas "goedkoop uit china" een stel xbox-controller-joysticks gekocht. Gewoon voor de leuk.

Twee potmeters: Als de linksrechts in het midden staat moeten beide motoren dezelfde "aansturing" krijgen. Staat ie niet in het midden stuurt het de verhouding van de motoren. En de voorachter potmeter stuurt gewoon hoeveel gas je geeft. Maar ik denk niet dat je dit simpel met de twee pots kan doen en een passief circuit.

Een arduino er tussen:

code:


void loop (void) 
{
  lr = analogREAD (LINKSRECHTS); 
  vw = analogREAD (VOORWAARTS);

  maf = 0.5 + lr/1024;
  mbf = 1.5 - lr/1024;
  if (vw > 550) {
    maout = maf * (vw-550.0) / (1024-550); 
    mbout = mbf * (vw-550.0) / (1024-550); 
  } else {
    maout = 0.0;
    mbout = 0.0;
  }
  analogwrite (MOTORA, maout * ANALOGOUTFACTOR);
  analogwrite (MOTORB, mbout * ANALOGOUTFACTOR);
}

D'r zullen nog wel een paar bugjes in zitten. Maar dit is het idee. En ik heb geen variabele declaraties opgeschreven.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

@lambiek: De joystick APEM SN101SS te koop bij Conrad zou die bruikbaar zijn? Wel wat kostelijk maar lijkt heel stevig en het lijkt me simpel om hem over de lengte as te laten balanceren en de flanken zijn groot genoeg om er micro schakelaars op te monteren.

De noodstop ga ik zeker plaatsen, zo'n lekker stoer rood/geel ding denk ik.
Maar om te voorkomen dat de stuurring dus uitvalt en de motors nog doordraaien en de FED eraan gaat (zoals in begin van topic al opgemerkt) kan ik die dan niet best de kabels tussen de sturing en de motor laten onderbreken??

@ REW : ik heb een stick gevonden met op elk van de 2 assen een potmeter.
Die pots zijn van dat type dat je op een print soldeert en dan met een schroevendraaier kan regelen, zeg maar een grote trimpot of het binnenwerk van een gewone pot zonder as. Nu lijkt het me niet zo moeilijk om dat asje te verlengen en er een tweede pot tegen te plakken. Dan zou ik dat schema met die drie 4K7 pots kunnen gebruiken.
Gelukkig kosten die dingen niet zo veel en kan ik lustig experimenteren.

Lambiek

Special Member

Op 28 januari 2020 09:48:36 schreef Rollatertje:
De joystick APEM SN101SS te koop bij Conrad zou die bruikbaar zijn?

Volgens mij wel, maar je moet wel een weerstand opnemen bij de uitgang van de joystick. Als je een 1K weerstand neemt moet dat gaan.

Wel wat kostelijk maar lijkt heel stevig

Het is inderdaad niet de goedkoopste.

en het lijkt me simpel om hem over de lengte as te laten balanceren en de flanken zijn groot genoeg om er micro schakelaars op te monteren.

Dat dan weer wel, is wel makkelijk te maken wat je wil.

De noodstop ga ik zeker plaatsen, zo'n lekker stoer rood/geel ding denk..... kan ik die dan niet best de kabels tussen de sturing en de motor laten onderbreken??

Ik zou hem tussen de accu en je regelaar zetten, dan schakel je alles af.
Er moet wel een relais tussen, vanwege de stroom. Denk niet dat er noodstopknoppen zijn die de stroom aankunnen.

Als je haar maar goed zit, GROETEN LAMBIEK.

@REW ik was ook al eens aan het nadenken over een programma en ik zoek nog een verhouding waarmee de voorwaartse beweging (gemeten spanning) kunt verminderen met de Links-rechtse spanning.
Uw voorbeeld is zeer onduidelijk aangezien je enkel de waarden boven 550 (middenstand) gebruikt, kleiner dan 550 wordt op 0.0 gezet.

Kun je misschien eens uw voorbeeld toelichten? in een gevonden arduinoprogramma wordt er gebruik gemaakt van de MAP instructie, maar arduino is niet aan mij besteed.

LDmicro user.

@ lambiek: SparkyGSX schreef: Waar je bij zulke regelaars op moet letten is dat je de motor stopt voordat je de voeding uitschakelt, anders gaat de MOSFET eraan.
Daarom dacht ik dus enkel de motoren te onderbreken in geval van nood.
Moest er iets mis zijn met de sturingen zelf dan zijn er brandblussers :)
OF … Die "dikke" diode kan daar een nummer of waarden voor gegeven worden?

@mgp:

Eerst: De 550 zit in het "gas geven" deel, niet in het linksrechts.

De door mij gesuggereerde pot veert naar het midden, ongeveer 512 uit de ADC....

Als ik nu boven de 512 gas ga geven, dan zou het kunnen dat de ADC net 515 geeft met de pot in het midden en dan staat ie de hele tijd een beetje te pruttelen. Dat is niet bevordelijk voor de levensduur van de accu. Dus om wat marge te nemen heb ik 550 gekozen.

TS heeft aangegeven alleen voorwaarts te willen, dus het "andere kant op gas geven" heb ik niet geimplementeerd. Zou dat wel moeten dan doe ik iets als:
v = v -512; //centreren rond nul
en
if (v < 0) {dir = ACHTERUIT; v=-v;}
else {dir = VOORUIT;}
if (v < 40) v = 0;
else v = v - 40;

Nu heb ik dode-zone (tussen 512-40 en 512+40 doet ie niets) en de richting gedecodeerd.

Voor de rest heb ik besloten dat de linksrechts potmeter de snelheid aanpast door een vermenigvuldigingsfactor te gebruiken. In de uiterste stand gaat de ene motor maal 0.5 en de andere maal 1.5: een factor drie verschil. Als de motoren perfect reageren draai je dan een rondje met een straal van de helft van je wielbasis. Dus wielen 50cm uit mekaar, dan draait het binnenwiel een rondje met 25cm straal. Lijkt me een redelijke instelling.

Wel is het zo dat je misschien bij hoge snelheid niet wil dat je "hard links" doet. Dus er zijn nog wat verbeteringen mogelijk.

[Bericht gewijzigd door rew op 28 januari 2020 11:07:10 (26%)]

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Van die hysteresis rond de middenstand had ik al zelf al gebruikt maar de rest is mij nog niet duidelijk.
Bij mij ging die ook uit de bocht vliegen als je enkel spanningen wiskundig bewerkt ;)

Ik ga dat arduinoprogramma eens uitspitten of eens iets anders bedenken, met percentage of zoiets.

edit: voor de geintresseerden de MAP instructie ziet er zo uit:

code:


long map(long x, long in_min, long in_max, long out_min, long out_max)
{
 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

[Bericht gewijzigd door MGP op 28 januari 2020 11:27:43 (29%)]

LDmicro user.
Lambiek

Special Member

Op 28 januari 2020 10:55:26 schreef Rollatertje:
@ lambiek: SparkyGSX schreef: Waar je bij zulke regelaars op moet letten is dat je de motor stopt voordat je de voeding uitschakelt, anders gaat de MOSFET eraan.

Dat is wel een puntje, dan zet je hem tussen de regelaar en de motor.

Als je haar maar goed zit, GROETEN LAMBIEK.

Denk niet dat er noodstopknoppen zijn die de stroom aankunnen.

Die zijn er wel bijna elke heftruck heeft een noodstop die de accu onderbreekt. Denk dat die iets van 400A zijn

Lambiek

Special Member

Op 28 januari 2020 17:24:34 schreef benleentje:
Die zijn er wel bijna elke heftruck heeft een noodstop die de accu onderbreekt. Denk dat die iets van 400A zijn

Hoe groot zijn die dingen wel niet dan? Moet er wel een beetje fatsoenlijk uitzien natuurlijk. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Die noodstop is geen probleem.
Ik ga met 2 relais (contacteurs) met elk 4 NO Contacten van 25A en 24V spoel
de motors voorwaarts of achterwaarts laten lopen. Zoals reeds gezegd staan die tussen de sturingen en de motors. Als ik met de noodstop die 24V stuurlijn onderbreek liggen beide stil.
Bovendien bestaan die paddenstoel noodknoppen al zeker tot 25A

Het zal dan allemaal wat klak/klak en tok/tok doen maar ik ben nu eenmaal een gepensioneerd elektrieker en geen elektronicus.
Maakt ook wat meer indruk bij die oudjes in't zorgbedrijf :)

Ik bedacht net hoe je het met een joystick met 2 enkele potmeters kunt doen (aangezien stereo potmeters in joysticks zeldzaam zijn):

Bij gebrek aan een echt potmeter symbool heb ik dat van een varistor misbruikt.

Het idee is dat je de linker potmeter gebruikt voor vooruit en achteruit, en om de snelheid te regelen. De rechter potmeter, om mee te sturen, zit met zijn loper aan de ground, en trekt dus wanneer hij in de middenstand staat, de signalen naar beide motoren even ver omlaag; ze blijven dus gelijk. Hoe ver ze omlaag getrokken worden, ligt aan de verhouding tussen de weerstanden R3 en R4 en de linker potmeter.

Afhankelijk van de verhouding van de diverse weerstanden zal het signaal naar de andere motor ook meer of minder beïnvloed worden als je stuurt, maar dat lijkt me niet direct een probleem, en je zou altijd nog een paar extra weerstanden in serie met de potmeter voor het sturen kunnen opnemen om dat te verminderen, maar dan stuurt hij ook minder fel.

Als de potmeters van de joystick helemaal naar 0 gaan kan dit met je bestaande motorregelaars (maar dan kun je niet achteruit), anders zou je een setje MD03s moeten gebruiken, of een andere regelaar die bij 2.5V stilstaat.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Zou ik dan voor die R3 en R4 een meerslag trimpot nemen om eventueel verschil tussen L & R bij middenstand stick te kunnen regelen?

Laat mij toe om te zeggen dat zo'n oplossing verre van ideaal is.

Om 2 redenen:

1ste, uw motoren hebben een zekere spanning nodig om te starten en om het beginkoppel te overbruggen. Je moet alles wat tussen de stilstand en beweging als stilstand kunnen instellen, anders verbruiken uw motoren stroom terwijl ge stilstaat als uw joystick niet juist staat.
Een rolstoel met een persoon erin heeft een niet te onderschatten koppel nodig om te starten.

2de, als je vloeiend wilt draaien moet je beide motoren besturen, als je bv naar rechts draait moet de rechtse motor vertragen en de linkse motor evenveel versnellen en omgekeerd als je naar links wilt draaien.

Volgens mij kun je niet zonder µcontroller om een goede regeling te maken, maar wie niet waagt wie niet wint ;) ... proberen zou ik zeggen en vooral geen andere motorregelingen kopen zonder de zekerheid van een goed werking.

LDmicro user.

@TS: dat lijkt me een goed idee, dan kun je ook nog spelen met de mate van invloed die het sturen heeft op de motorsnelheid; wat prettig rijdt is een beetje moeilijk te voorspellen.

@MGP: Ideaal is relatief; mijn voorgestelde oplossing is in ieder geval simpel. Natuurlijk kun je het met een microcontroller een mooiere regeling maken, maar als de TS daar geen ervaring mee heeft, en wellicht zelfs geen zin of tijd heeft om dat te leren, is dat alsnog niet bepaald ideaal!

Het handige van die MD03 regelaars is dat je ze ook met een PWM signaal kunt besturen (0-100% of 1-2ms, als ik me goed herinner), waardoor het pad naar een microcontroller besturing mogelijk blijft.

Het bezwaar dat er stroom loopt terwijl je stilstaat is in principe geldig, maar de spanning over de motor is heel klein, en de stroom was blijkbaar niet genoeg om in beweging te komen, dus het vermogen is ook niet enorm. Als de regelaar een dood gebied heeft rond de 2.5V is het al opgelost, en anders is iets dergelijks vrij triviaal toe te voegen met een comparator en de enable ingang van de regelaar.

Om te sturen is een verschil in snelheid nodig; als je goed had gekeken/gelezen, had je gezien dat mijn voorgestelde oplossing één motor sneller laat draaien, en de andere langzamer, dus je bezwaar is ongegrond. Los daarvan zit er een mens met zijn vingers aan die joystick, die leert snel genoeg, zonder dat je het doorhebt, dat een beetje gas bijgeven of terugnemen bij het sturen prettiger rijdt.

Het alternatief was sturen met relais, en daar had je blijkbaar geen bezwaar tegen?

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op 29 januari 2020 21:50:37 schreef SparkyGSX:

Om te sturen is een verschil in snelheid nodig; als je goed had gekeken/gelezen, had je gezien dat mijn voorgestelde oplossing één motor sneller laat draaien, en de andere langzamer, dus je bezwaar is ongegrond.

Jawel ik heb het goed gelezen :)

Dat kan enkel maar als R3 en R4 voldoende groot zijn en dan kun je weer niet regelen tot 5V.
U2 beïvloedt ook de totale snelheid bij verdraaiing.

Met enkel potentiometers en weerstanden te gebruiken moet je hoedanook inleveren en als de TS daar geen punt van maakt is dat voor mij ook geen probleem.

Hopelijk brengt hij verslag uit van zijn experimenten.

LDmicro user.

Dat klopt, je kunt niet de maximale snelheid halen als je met 5V begint. Sterker nog, ik bedenk nu dat 5V in niet genoeg is om in rust op 2.5V uit te komen, dus je zou al met 10V moeten beginnen, en een instelpotmeter in serie moeten zetten met de bovenkant van de linker potmeter om stil te kunnen staan in rust.

Wat de snelheid betreft:

Op 27 januari 2020 17:50:39 schreef Rollatertje:
Een snelheid van 1 à 2 KM/H is ruim voldoende

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

@ iedereen: De snelheid is niet zo belangrijk, ergens tussen de 2 en 4 KM/H.
Ik werk met een ketting overbrenging, de tandwielen op mijn wielen zijn moeilijk aan te passen omdat ik die met veel moeite op men wielen gekregen heb, maar het primaire tandwiel (op de motor) kan ik gemakkelijk aanpassen indien nodig. Eén tandje meer of minder doet wel wat.

Maar dat is altijd een koppel/snelheid afweging.

Als je nu met zeg 5V aan de ingang van de regelaar hard genoeg gaat, maar de schakeling beperkt dat tot de helft, dan zou je de 2x zo veel tandjes op je motor-tandwiel kunnen regelen.

Maar als ie nu net genoeg koppel kan ontwikkelen, dan zal je na 2x zo veel tandjes ineens niet meer genoeg koppel op de wielen krijgen....

IMHO is het aanpassen van de elektronica eenvoudiger dan mechanisch klooien. Maar goed. Ik ben natuurlijk niet standaard.. :-)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ik zou inderdaad ook de elektronica aanpassen; als het nodig is, kun je er altijd nog een paar opamps tussen zetten, voor een instelbare versterking en offset.

Die MD03 heeft een behoorlijk traag filter/rate limiter (ik meen in de orde van grootte van 200ms), dus voor een closed-loop toepassing heb ik daar ooit custom software voor geschreven; die wil ik best delen, als je daarmee geholpen bent. Ik heb niet alle functionaliteit gekopieerd; alleen het 1-2ms stuursignaal, en geen overstroom beveiliging, maar dat is betrekkelijk eenvoudig toe te voegen.

Op 30 januari 2020 12:32:08 schreef rew: Ik ben natuurlijk niet standaard.. :-)

Je bent hier in goed gezelschap :-p

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Laat mij duidelijk zijn, ik had het over snelheidsverschil tijdens het rijden en de kans om zeeziek te worden :p

Op 30 januari 2020 12:32:08 schreef rew:
Ik ben natuurlijk niet standaard.. :-)

Dat heb je wel nodig als je het verschil wilt maken :) :)

@TS je hebt nu genoeg info om iets te proberen, daarvoor moet je nu in eerste instantie geen dure joystick kopen.
Probeer SparkyGSX schema, 2x 5K potentiometers en 2x 1K weerstanden.

LDmicro user.

@ MGP en allen.
Je hebt overschot van gelijk MGP, ik pruts liever niet aan die overbrenging, die 2 simpele schema's daar kan ik al rustig me experimenteren en ik ga proberen zelf een soort joystick te maken, zal wel wat op een gyroscoop lijken maar we zijn bezig.
Als het gelukt is laat ik zeker iets weten en met een foto.
Bedankt allen!!
Groetjes
Peter