SERVO'S STUREN

Eigenlijk is dit verhaal de drijvende kracht geweest achter heel mijn microcontroller-leercurve, en feitelijk hoor ik nog een stap méér terug te gaan, want het aansturen van wissels was eigenlijk de reden voor deze zoektocht. Dat heb ik op véél manieren geprobeerd, maar uiteindelijk leken servootjes toch wel het goede concept.

Eenvoudig - DeLuxe - Communicatie

Bij het zoeken naar een ideale manier om servo's aan te sturen ben ik bijvoorbeeld uitgekomen bij een externe controller (om servo's ter plaatse af te regelen - en dat bakje was misschien ook goed om op termijn nog een hoop andere dingen te regelen), én heb ik kennis gemaakt met de vervelende opstart-"jitter" én heb ik uiteindelijk voor een ultieme-servo-sturing alle elektronica uit de servo gezwierd, om voor de beste - maar ook meest complexe - oplossing heel de meet-en regeltechniek door een microcontroller te beheren
Er zijn heel wat printplaatjes en soorten microcontroleers de revue gepasseerd voor ik 2 definitieve versies had - eentje die alles zelf meet-en-regelt, en een minder kritische, maar niettemin degelijke versie waar de elektronica in de servo wel mag blijven zitten.

De afbeeldingen tonen een kleine illustratie van de zoektocht. Links zie je een houder voor goedkope servo's, die de roterende beweging omzet naar een lineaire. Van deze houder zijn er intussen tientallen gebruikt, tot mijn tevredenheid. In het midden zie je een reeks van één van de eerste printjes, toen nog met microcontroller in DIL-behuizing, waarbij die chip eerst in een aparte programmer moest gestoken worden. Rechts krijg je na aanklikken een filmpje dat de werking en de mogelijkhden van de externe controller een beetje aantoont. Op het moment dat ik dit schrijf is er al een opvolger van dat regelkastje in gebruik, en is er een véél straffere controller in de maak.


VERSIE 1: Degelijk, betrouwbaar en redelijk eenvoudig

Na de verschillende eerdere tests kwam ik tot een ontwerp dat relatief goedkoop maar toch betrouwbaar 4 servo's kan aansturen. Het enkelzijdige printje is zo ontworpen dat er 6 uit een standaard euro-printplaat (100x160) kunnen. Onderaan zitten er componenten in SMD: een AtMega16 is het kloppend hart, en enkele andere onderdelen (vooral weerstandjes, maar ook enkele mosfets) zorgen voor de sturing en "power". Verder is er nog een relais dat indien gewenst extra schakelcontacten biedt. Enkele smd-leds geven signalen over de werking van de print, die je net als de aanstuur- en uitgangconnectoren met gewone schakelaars of een intelligente centrale verbindt.

Bovenaan zitten er vooral connectoren: MBOX naar het "oude" kastje, GBOX naar het nieuwe (in ontwikkeling), ISP om de chip te programmeren, 5P0 is de voeding, en LK-NOOD heeft te maken met mijn veiligheid-voeding-systeem. BA zijn twee algemene signalen: B is "Busy" - er wordt een servo in een andere stand gezet, en A is "Alarm" - het programma is vastgelopen. De in- en uitgangen zijn gewone logische niveaus, waardoor je de servo's zowel met een schakelaartje of vanuit een andere print kan aansturen.

De servo's zelf worden in een apparaatje geplaatst, die de draaiende beweging omzet naar een lineaire en een of twee microswitches omzet.
In de bewegende balk kan je een gaatje boren voor een veerdraad, die de stelbalk van een wissel omzet.
Meestal is één microschakelaar voldoende - voor het puntstuk van een wissel - maar bij een kruising kunnen ze beide (én het relais) nodig zijn.


VERSIE 2: Deluxe - heel precies, veel mogelijk, betrouwbaar, ... maar complex

In de zoektocht naar "de perfecte servo-aandrijving" wou ik de stand van de servo zelf meten, en bijsturen indien nodig. Dat wil zeggen dat je minstens de loper van de ingebouwde potentiometer aansluit aan de microcontroller, dus een extra draadje. Een flink aantal pogingen - verschillende printjess, prototypes, ... later besloot ik om de bestaande elektronica uit de servo te halen, en ook de motor van de servo zelf aan te sturen.
Deze printjes werden zo een pak complexer, en hoeven alleen gebruikt te worden bij hele kritische bewegingen. Om een normaal wissel om te zetten voldoet de hogere schakeling ongetwijfeld. Als die wissel onder druk staat, of als je slagbomen traag en zonder schokjes wil sturen, of nog iets anders wil ... kan dit een oplossoing zijn.

De print is enkelzijdig, maar best wat lastiger om te bestukken (getuige de foto rechtsboven: verhitte en opgeblazen mosfet) Qua aansluitingen zijn er heel wat overeenkomsten met zijn "simpele" broertje dat ik hoger beschreef. Er zijn echter 4 relais (die naar keuze bij een servo horen, dus ook eventueel alle vier bij servo "2")
Maar het grote verschil zijn de aansluitingen naar de servo: De elektronica wordt immers volledig uit de servo gehaald, en de motor en potentiometer worden rechtstreeks met de print verbonden. Deze meet dus zelf de stand van de servo, en stuurt de motor aan met een mosfet H-brug.

Door deze aanpak is de stand van de servo met veel meer precisie instelbaar, en kan de verplaatsing veel soepeler (zonder zichtbare tussenstappen) verlopen. De rechtse afbeelding is een filmpje waar je dit op kan zien. Het printje bewaakt ook de stand van de servo's: Op regelmatige tijdstippen meet hij de actuele stand, vergelijkt die met de gewenste en stuurt indien nodig de servo bij. Indien de servo op zijn plaats is gebleven, wordt het volgende controlemoment telkens wat later gepland.


COMMUNICATIE : Om de servoprintjes met mijn centrale te verbinden

Dit onderwerp hoort misschien meer bij de beschrijving van de communicatie van mijn totale systeem, maar het gaat om een specifiek printje voor de servo's ... vandaar dat ik het hier beschrijf.



In wezen gaat het om een eenvoudig ding, dat via een 10-aderige flatcable zowel de stuur- als de terugmeldsignalen doorgeeft aan telkens 4 servo-printjes.

Dit printje kan dus tot 16 servo's regelen, en geeft in de richting van de centrale via een 1Wire-achtig systeem de informatie door. Eén controller beheert alle output, de andere alle input.
Het printje is ook bruikbaar als tester voor servoprintjes: door een ander programma in de chips te laden helpt het om de goede werking van de servosturingen na te gaan.
Het LCD-kastje op deze laatste foto dient om de servo's ter plaatse af te regelen.

©2015 Gerolf Peeters - aangepast op 07.03.2016 Zie ook: centrale -