Nieuws:

Nu in MSM 244 BAAN: Boulevard du Fort

Hoofdmenu

Servosturing - hoe ?

Gestart door argilla, 07 oktober 2013, 09:51:19 AM

Geert

De voeding afschakelen van de servo is een optie, maar moet niet echt. Beter is de servopulsen afschakelen als de servo zijn positie heeft bereikt. Dan bromt die niet en gaat de servo langer mee.

Let wel, als je er een zware belasting moet laten bewegen zoals bij sturingen bij modelvliegtuigen, is het best de voeding alsook de stuurpulsen niet uit te schakelen.

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Catje

Misschien is dit een oplossing, deze woorden veelvuldig gebruikt in de rc wereld. :)

Van het merk Robbe verkrijgbaar bij de speciale rc shopsen bij o.a. Conrad België en Nederland.:
http://www.conrad.be/ce/nl/product/288052/Robbe-universele-precisie-Servo-tester?queryFromSuggest=true

Van het merk Modelcraft verkrijgbaar bij o.a. Conrad België en Nederland.
http://www.conrad.be/ce/nl/Search.html?search=MODELCRAFT+servotester

Modelspoorgroeten,
Willy


conducteur

Het is een tester, dus niet erg geschikt voor aansturing onder de baan en veel te duur...
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Sattrickske

@Klaas, begrijp me niet verkeerd, ik heb helemaal niets tegen analoge oplossingen.  Alleen vond ik deze laatste er een beetje serieus over, want -en daar blijf ik wel bij- de print is gewoon veel te groot en bevat teveel componenten...  Deze kan je gebruiken als je maar een paar servos wil aansturen, maar in mijn geval (50+) :o...
Zoals ik al eerder zei in dit draadje, digitaal en analoog hebben allebei hun voor- en nadelen; mij komt digitaal het best uit, voor anderen kan dat inderdaad analoog zijn.

@Jan, eigenlijk begrijp ik jou niet zo goed.  Je hebt een analoge sturing (servo printje) met een digitale controller (Visual Basic op de PC) als ik het zo mag stellen.  Kon je dan niet beter meteen een digitale sturing maken?  Je hebt blijkbaar wel VB kennis, dus de stap naar een microcontroller is echt niet groot (PICBasic, C, assembler, ...).

De schakeling is wel perfect in orde om te experimenteren met een servo of om een servo af te regelen.  Maar, ik zou de voeding niet uitschakelen, want als je 'm later terug inschakelt, kunnen sommige servos effe heel wild tekeer gaan als de sturingspulsen niet meteen aanwezig zijn.  Alleszins, ik laat m'n voeding op de servos aanstaan en schakel enkel de pulsen uit, maar de belasting op m'n serovs is wel te verwaarlozen.

dani

even heel snel tussendoor... ik stond op uit winterslaap om te gaan eten, en fietste even hier door....

Ik ben zelf bezig met het ontwerpen van een DCC decodertje op basis van een ATTiny 85 en een 6N137.
2 stuks 8-polige IC's dus en voor de rest wat rand componentjes.  Het exemplaar uit mijn voorbeeld kan 1 servo sturen, 1 relais en 2 LEDs  (3 als je die parallel op de relais mee telt).
Maar het zouden ook 3 servo's kunnen zijn  (ATT85 heeft 3 PWN uitgangen.)


Het moet nog opgebouwd en getest worden, maar de code heb ik al klaar.   En volgens mijn ervaringen tot hier toe zou dit gewoon moeten werken.   Het programmaatje is zeer beperkt en simpel.





En nu terug "dutten".
De kruik is te water gegaan...
De kruik is niet meer.

Jan Beveren

Dag Patrick,

Bedankt voor deze reaktie. U eerste reaktie en die van gerolf heb ik doorgeslikt, al mocht het wel iets fijner zijn geweest. Ik begrijp zeer goed dat wanneer je 50 servo's moet aansturen je efficiënt moet werken en wanneer je digitaal kunt ook digitaal moet gaan.

Voorwat het schema betreft: Om een wissel om te zetten vanuit Visual Basic stuur ik 9 bits door. 3 bits voor selektie uitgangskaart, 4 bits voor keuze uitgang op de uitgangskaart ,1 bit voor kaart enabled en 1 databit. De databit is aangesloten aan de ingang van het schema van de servo.

Opamp  741 is geschakeld als een klassieke  aktieve integrator en levert een traag stijgende of dalende spanning af aan de 555.  Bij databit = 0 (= 0V) komt er via de transistor BC547 12V op de inverterende ingang en neemt de opamp zijn laagste waarde aan. Op de uitgang van de 555 staat dan een puls met min. pulsbreedte.  De servo staat of gaat naar zijn positie gedefinieerd door deze puls. Zolang de wissel niet moet verzet worden, blijft er 0V staan aan de ingang dus de puls met min. pulsbreedte blijft bestaan.  Wanneer we de servo willen verzetten sturen we dezelfde bits door + databit = 1 of +5V. Via BC547 komt er nu 0V op de inverterende ingang van de opamp. De spanning op de uitgang gaat stijgen en resulteert in een puls met max. pulsbreedte. De servo neemt nu zijn nieuwe stand aan. Deze puls blijft staan op de ingang van de servo.

Je hebt gelijk als je zegt dat je de stuuringang moet onderbreken en de voeding moet laten bestaan. De schakeling rond de 7805 was oorspronkelijk gemaakt om de +12V voeding van de treintafel voldoende tijd te geven om op te komen vooraleer de servo's te voeden.  Wanneer de hoekverdraaiing niet exact juist wordt afgeregeld, blijft de servo zoeken naar zijn juiste stand en geeft een zoemend geluid. Door het uitschakelen van de voeding werd de afregeling van de hoekverdraaiing minder kritisch en veel gemakkelijker. Het uitschakelen was eenvoudig te realiseren door het overbruggen van de laadcondensator C10. We geven nu een grotere hoekverdraaiing wat resulteert in wisseltongen die goed tegen de rails worden gedrukt zonder dat er beschadiging optreedt.

Het in- en uitschakelen van de voeding gebeurt eveneens door een databit vanuit een 2e uitgang op een uitgangskaart. Om 1 wissel te sturen hebben we dus 2 uitgangen nodig.  De uitgangen hoeven alleen basistroom te leveren voor de BC547 aan de ingang en deze aan de schakeling rond de 7805. Hierdoor hebben we geen vermogen-uitgangen nodig!.

De wisselstand wordt met behulp van een eenvoudig kontakt via ingangskaarten teruggemeld aan de PC.

Wanneer we een digitale sturing zouden maken kan je deze dan aansturen zoals hierboven dwz.:  databit = 0 geeft wisselstand 1 en databit = 1 (+5V) geeft wisselstand 2?

Van de 12 wissels zijn er nu 10 uitgevoerd. Er blijven er nog 2 te gaan. Misschien volledig digitaal? , ik wil het wel proberen maar heb dan wel van jullie een zetje nodig.

PS.: ondertussen heeft Dani een schema gepubliceerd. Ik kan echter niet veel vragen want hij is weer gaan dutten...


groeten,

Jan Beveren

Sattrickske

Dat 'zetje' kunnen we je zonder problemen geven.  En m'n excuses als m'n reactie ietwat te 'hard' overkwam, dat was echt niet m'n bedoeling.

Dani's schema is een 'universeel decodertje', in dit dit voorbeeld stuurt hij een relais aan.  De voeding gebeurt losstaand van de rijstroom, daarom gebruikt hij een opto-coupler om alle problemen tussen beide stroomkringen te vermijden.  Via de opto-coupler kan hij het DCC signaal gewoon van de sporen plukken en uitlezen in z'n microcontroller.

Je sturing is inderdaad digitaal, dus de stap naar de microcontroller is echt niet groot.  Maar als je wil verder doen met je analoge controllers, nog steeds even goede vrienden hoor.  Maar ik blijf het wel een rare combinatie vinden (VB + analoge controller), maar soit...

Als je digitaal met microcontrollers wil werken moet je eerst een paar keuzes maken (en ga er niet te licht over, want je gaat hierin tijd en een (klein) beetje centen investeren):
1) Welke fabrikant van microcontrollers (Microchip, AtMega, Intel, Motorola, ARM, STM, ...)
2) Welke architectuur (8-bit, 16-bit, ...)
3) Welke programmeer taal (Basic, C, Assembler, ...)

Mijn keuze: Microchip, voornamelijk 8-bit en voornamelijk C (assembler als het echt niet anders kan). 
Dani, bv. werkt met AtMega (Arduino boards en shields).  Arduino is meer modulair met zeer goede code libraries opgevat voor mensen die weinig kaas gegeten hebben van microcontrollers.  PIC is compacter en meer doelgericht, maar je dient alles zelf te ontwikkelen.  PIC en Arduino (AtMega) vormen op dit ogenblik de grootste families.

Eens je die keuzes gemaakt kunnen we je aantal hulpmiddelen aanraden (testbord, programmers, compilers, ...)

Gerolf

Ik begrijp dat ik wat te hard ben overgekomen. Bij deze ook mijn excuses  :-[
Ik was vooral geschrokken van de enorme hoeveelheid componenten in dat schema.

Ik rij trouwens nog steeds (en overtuigd) analoog, maar voor de besturingslogica gebruik ik meer en meer een microcontroller.
De overstap heb ik ook lang niet willen doen, en eigenlijk ben ik nog maar een drietal jaartjes met microcontrollers bezig.
Vooral de eenvoud van je printplaat, sneller ontwerp, lagere prijs, ... hebben me over de streep gehaald

Als je vertrouwd bent met programmeren heb je een belangrijk voordeel.
Je hebt enkel een andere programmeeromgeving nodig en een gereedschapje om je programma in de chip te krijgen.
Zelf gebruik ik AtMega types (Atmel dus) en programmeer ik ze met Bascom (Basic Compiler). Als je daarvoor kiest kan ik je op weg helpen.

Een servo (of loc) aansturen met een microcontroller heeft nog andere voordelen, zeker als je een langzame overgang wil.
Analoog wordt een vertraging bijna steeds met een Elco en een weerstand gedaan.
De oplaad- en ontlaadcurve is echter niet rechtlijnig, en daardoor beweegt je servo in het eerste deel van de beweging veel sneller dan naar het gewenste eindpunt toe. Dat is analoog op te lossen met stroomregeling, maar dat vereist weer (veel) andere componenten.
Ook voor de afregeling "ter plaatse" heb je extra onderdelen nodig (trimmertjes en hun omgeving)

Marc-Laurent's vraag is trouwens: hoe stuur ik een servo "eenvoudig en analoog" aan.
Hij heeft intussen al wel wat antwoorden gehad, maar nog geen eenvoudige voor een afregelbare en mooi traag bewegende servo.
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

argilla

#53
om een beetje duidelijkheid te scheppen wat ik voor ogen heb het volgende proberen( zeg wel proberen ) van meer uitleg. Weet niet of het in dit draadje kan maar er zijn wel servo's mee gemoeid  ( die van Gerolf).


eerst dit:http://forum.modelspoormagazine.be/index.php/topic,16778.0.html    let wel het omloop spoor is losgekoppeld van het station, en heeft niets meer met het sation van doen maw geen enkele verbinding zodoende dat de wissels vervallen. Het is gewoon een paradelijn. Alles auto maar ook met de hand te bedienen via een TER.(Train electronic railways serie 400)


Schaal: O 1/43.5


Afkortingen: als je ervoor staat ; Links is LO ( links oost)  RW ( rechts west) W1 is dus links wissel 1 en W2 is rechts wissel 2. DSL is de draaischij links en DSR draaischijf rechts. Deze is om de loc te draaien. ASL is dus armsein links en ASR is dus rechts. Boven is OSB opstelspoor boven en OSO is opstelspoor onder.


Wat stelt: een trein staat op OSB rijdend naar LO voor te draaien op DSL voor het ASL en W1. Het sein springt op groen . De trein rijd uit over de wissel naar de draaischijf waar hij 5sec wacht ( tijd mogelijks in te stellen). De draaischijf start en draait 180°g ,terwijl deze handeling plaats vindt springt sein ASL op rood en wissel 1 op afbuigend.  Als deze handeling gedaan is na circa 5 sec ( of meer hangt af van hoe traag de servo de arm beweegt en de wisseltongen servo beweegt) start de trein en rijd naar RW waar hij stopt voor het rood van ASR dat nog op groen stond van het vorige handeling.  .Hier wacht hij ruim 20 sec. Sein springt op groen wissel 2 op afbuigend en rijd de draaischijf op. ( natuurlijk stopt hij daar) Dan herhaalt zich de cy,clus maar naar rechtse draaischijf en dan weer naar links enz...enz.... En zo heen en weer.Met telkens ( wacht tijden) dezelfde tijden.
Ik hoop dat het jullie wat duidelijker is. Daar ik van electronica bitter weinig afweet is dit een uitdaging voor de modules om klaar te komen tegen 2016 in hopelijk Leuven als Luc het goed vindt. Tevens is het mijn 65 verjaardag en ga ik op "echt" pensioen. Dus een duidelijk doel voor ogen. Maar dit geheel terzijde.
Hopelijk kan ik op jullie hulp rekenen. Het gaat dus eigenlijk niet alleen over servo's maar ook alles wat daar aan vast hangt. Maar die servo's dat zijn ook kopzorgen niet ?


servo's 2 voor armseinen PB messing
             2 voor wissels
             2 motoren voor draaischijf ( dewelke ? ? weet het niet)
argilla
H0, On30, 1/29, Gn15

conducteur

Mag ik even moeilijk doen? Ik ben zeker niet tegen analoge technieken, ik gebruik beide (µC en 'analoog')...
Maar is 'servosturing-analoog-eenvoudig' geen ideale oefening voor kleine kinderen in de lage school 'schrap wat niet in het rijtje past?'. Zoals Gerolf aanhaalde wordt de verandering in pulsduur doorgaans gerealiseerd met een condensator die opgeladen wordt via een weerstand wat dus een veranderlijke snelheid geeft door het exponentieel gedrag bij laden en ontladen van een condensator?


Om een c op te laden met constante stroom (=lineair stijgende spanning over de condensator) wordt dat al weer een beetje complexer
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Klaas Zondervan

Citaat van: conducteur op 12 december 2013, 14:40:53 PM
Om een c op te laden met constante stroom (=lineair stijgende spanning over de condensator) wordt dat al weer een beetje complexer
Met de nadruk op beetje. ;D

conducteur

Het is niet zo moeilijk (denk ik), maar waarom zie je dan zo weinig servo-ontwerpen voor analoog met constante stroom?
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Klaas Zondervan

Waarschijnlijk omdat het verschil in de praktijk nauwelijks merkbaar is.

Gerolf

Ik denk eerder omdat de meeste servo-gebruikers geen nood hebben aan een traag omslaande versie. De meesten willen een snelle respons.
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

Jan Beveren

Dag Gerolf, Patrick, Klaas en alle anderen

Bedankt voor jullie reakties. Ik sta eigenlijk wel wat  te kijken wat mijn schema allemaal heeft teweeggebracht.
De "goesting" om ook met µproc. te beginnen in de overtuiging dat het flexibel is en zoals je zegt minder onderdelen vergt, is groot. Patrick heeft mij ook al voorgesteld om mij te helpen als ik ermee start. Ik ga het zeker bekijken. Ik ben  eigenlijk al half digitaal bezig. Vandaag heb ik een stuurprint afgewerkt die voor 1 sektie de rijspanning voorziet (een PWM van 15V). Kort samengevat: Voor een bepaalde snelheid in een sektie sturen we vanop het beeldscherm 4 bits door (dus 16 trappen zijn mogelijk). Deze 4 bits worden op de print omgezet naar een gewone DC-spanning tussen 0 en max 15V. We rijden dus met gewone analoge treinen. Ik durf het schema gewoon niet laten zien,  veel kans dat ze u moeten reanimeren. Maar het werkt wel, en goed! We hebben wel gezien dat we lang niet de 16 stappen nodig hebben. 8 stappen zijn ruim voldoende. Per sektie wordt de max. snelheid ingesteld. Met een schuifregelaar op het scherm per sektie kan dan van 0 tot de ingestelde max. snelheid worden gereden.

Nu stellen we uiteraard de vraag: Hoe ziet het schema eruit als we dezelfde 4 bits (bit=0 = 0V en bit=1 = +5V) vanuit de uitgangskaart aanbieden aan een µproc en er een analoge spanning van 0 tot 15V willen uithalen in 16 mogelijke stappen, uiteraard te bedienen vanop het beeldscherm via Visual Basic?

Wanneer dit als begin te moeilijk is, denk ik eraan om de seinbeelden te sturen met een µproc. We hebben hiervoor 2 bits ter beschikking. 1 bit voor Rood/groen en 1 bit voor geel. Nu gebeurt dit met gewone transistoren op een "klein!!" printje. Rood en groen kunnen nu per seinpaal bediend worden vanop het beeldscherm. De voorwaarden voor groen zoals "volgende sektie moet vrij zijn" en "de wisselstand van een volgende wissel moet juist zijn"  en de gevolgen bij een rood sein, namelijk een stop van de trein, worden door het Visual Basic-programma uitgevoerd. De µproc. zou dus alleen de leds van de seinpaal moeten aansturen. Voor een beginneling lijkt mij dat een mooi projektje.
konkreet ga ik eerst kiezen met welke µproc.-familie ik ga werken daarna zal er wel een kreet komen om bijstand om het één en ander voor mekaar te krijgen. Wordt dus vervolgd.


vriendelijke groeten vanuit Beveren


Jan Beveren.