Doel:€250.00
Donaties:€85.00

Per saldo:€-165.00

Steun ons nu!

Laatst bijgewerkt
op 21-04-2020
Algemeen

De stichting

Recente berichten

Probeersel in schaal 0, als dat maar wat wordt! door Rik
Vandaag om 20:00:55
Raadplaatje door Arjen52
Vandaag om 19:52:43
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 19:48:11
Imitatiekoppelingen modellen aanpassen/verbeteren door Jamie
Vandaag om 19:34:50
Frans loodsje et cetera door Scratchbuilt
Vandaag om 19:33:10
Onlangs gespot - gefotografeerd, de foto's door martijn v m
Vandaag om 19:27:45
Modelhuis demonteren zonder stukken door MartinH0
Vandaag om 19:24:10
Mijn eerste H0-modeltreinbaan in aanbouw door hvyfuji
Vandaag om 19:22:08
Toon hier je nieuwe (model-) spooraanwinst(en)... door brutus1
Vandaag om 19:20:03
Artitec 2020, nieuws van de fabrikant. door barry1972
Vandaag om 19:18:50
Keerlus Numansbaan door tonp7
Vandaag om 19:12:32
Bovenleidingportalen Den Haag-Delft tot 1980 door Modellbahnwagen
Vandaag om 19:08:49
Cubana door iarnrod
Vandaag om 19:05:46
Wasbenzine/residu door Peter Kleton
Vandaag om 19:03:31
Toon hier je pas gereed gekomen (model-)spoorbouwsels ... door GerardvV
Vandaag om 19:03:03
Herstart en inspiratieloos door NS264
Vandaag om 18:32:42
Bruggen-IG: De brug van Oosterbeek door Chris Westerduin
Vandaag om 18:22:40
Ervaringen met veilingsites en webshops (Marktplaats, Ebay, Catawiki, etc). door Pjotr500
Vandaag om 18:19:54
Minicamera of inspectiecamera, ervaringen? door MOVisser
Vandaag om 17:49:29
Rijtuigen op De Meer door R v/d Hoven
Vandaag om 17:43:42
Roco wissels schakelen maar één kant op (DCC), maar analoog 14-16VAC beide kante door Klaas Zondervan
Vandaag om 16:57:02
Tortoise wisselmotor niet met Littfinsky M-DEC-DC aan te sturen? door Klaas Zondervan
Vandaag om 16:51:54
Vergelijk tussen Digikeijs, NS parts en andere NS seinen door ruudns
Vandaag om 16:37:00
Rivarossi Panoramarijtuig, door MTE, wordt "niet" geproduceerd: toch wel door Rondje_HO
Vandaag om 16:15:37
Wie kan mij helpen met een baanplan voor rocoline met bedding? door Rondje_HO
Vandaag om 15:49:23
PREFO Tram Bouwpakket Gezocht door ANDREUS
Vandaag om 15:48:28
Spoor III in Nederland gebruikt? door Reinout van Rees
Vandaag om 15:17:26
Armita Wagons Amsterdam bv Tds door Arjan6511
Vandaag om 14:57:27
Philotrain NS 4600, de grote verbouwing door roadster36
Vandaag om 14:57:27
Holland Rail DE2 verdient toch een plekje op de baan door GMA70
Vandaag om 14:49:43
  

Auteur Topic: Servo aansturen.  (gelezen 1947 keer)

Ron Sub

  • Nieuwe gebruiker
  • Offline Offline
  • Berichten: 4
Servo aansturen.
« Gepost op: 10 november 2016, 08:11:31 »
Goedendag,
Door het zoeken naar een oplossing voor mijn ‘probleem’ kwam ik op jullie mooie forum en zie dat er veel met servo’s en printjes gehobbyd wordt.
Ik zoek voor mijn Onderzeeboot, ja geen trein dus, sorry, een printje die met het toenemen van het motortoerental (aansturen snelheidsregelaar = servo signaal) de uitslag van de servo van de duikroeren doet afnemen. Dus hoe meer ‘gas’, hoe kleiner de roeruitslag naar beide kanten! Dit om het ‘dolfijn’ gedrag te voorkomen. Je moet dan denken aan: 20% gas = 100% + en - roeruitslag, tot 100% gas = 50% + en - roeruitslag. Of dit ook werkt bij achteruit varen is niet van belang, mag het zelfde zijn of gewoon 100 % uitslag blijven.
Het liefst instelbaar, maar is geen must. Ik kan de roeruitslag mechanisch ook instellen.
De afmetingen moeten wel binnen de perken blijven. Lucifer doosje?
Een goed schema met ‘boodschappenlijstje’ zou volstaan. Maar een opgebouwd printje zou mooi zijn. Uiteraard tegen vergoeding.
 
Ik hoop dat iemand mij verder kan en wil helpen.
Dank.
Groet,
Ron.

Henk Boshuyzen

  • Offline Offline
  • Berichten: 884
    • Modeltram Toulon sur Arroux
Re: Servo aansturen.
« Reactie #1 Gepost op: 10 november 2016, 08:20:54 »
Ron,
Ik zou je willen adviseren om hier eens re zoeken op de kreten Arduino en Mardec.
Het Arduino board (en zijn kleinere broertje) zouden voor jou wel eens een uitkomst kunnen zijn.
Helemaal zelf in te stellen, en volgens mij heb ik op internet ook al ergens zo'n toepassing gezien.
De chinese klonen kosten weinig, je moet je er alleen even in willen verdiepen.
Mar dat eenmaal gedaan dan kun je ok alles zelf regelen.
Hier in Frankrijk was ik verrast om te zien hoeveel modelboten al die microprocessor boardjes aan bord hadden. En raderrivierboot werd qua snelheid, roer en muziek geregeld met zo'n boardje.
En de mini is veel kleiner als een luciferdoosje.

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4670
Re: Servo aansturen.
« Reactie #2 Gepost op: 10 november 2016, 10:17:32 »
Hoi Ron,

Met een microcontroller is dat inderdaad goed te doen. Arduino is hierbij de eerste keuze van de meesten omdat er gewoon veel documentatie en libraries (kant en klare bouwblokken) voor beschikbaar zijn. En modules zijn in het verre Oosten (AliExpress en eBay) voor een prikkie te koop.

De veelgebruikte Uno is natuurlijk veel te groot maar je hebt ook nog de Nano en de Pro Mini (welk kleiner is dan de Nano :p) maar deze zijn, zeker de Nano, wel iets groter dan een luciferdoos. Wil je echt klein, pak een Digispark op basis van de ATtiny85.

Het servo signaal kan je met pulsIn() bepalen maar via een interrupt zou eigenlijk mooier zijn. Servo aansturen kan met de ingebouwde servo library. Aan jou om deze wiskundig aan elkaar te koppelen.

Op het form is inderdaad al het een en ander over servo aansturing te vinden, meestal in combinatie met een Arduino. Maar hier ligt de focus toch vaak meer op de aansturing via DCC. Het servo aansturen deel is eigenlijk kinderspel met de ingebouwde library. Mardec lijkt me hier totaal niet relevant omdat alle slimmigheid in de aansturing via DCC zit en de statische afstelling. Je hebt er meer aan om gewoon op internet te zoeken naar Arduino en servo's.

Maar goed, dit moet je allemaal wel maar even willen. Als je al wat thuis bent in programmeren is het allemaal niet zo lastig meer maar als je daar nog mee moet beginnen is het makkelijk hier een complete nieuwe hobby van te maken qua tijd ;D Het scheelt dat dit eigenlijk best een goed beginnersproject is (y) De code zal niet meer dan 30 lijnen code zijn denk ik. Je moet alleen wat onderzoeken over hoe een servo signaal werkt (en hoe je deze dus interpreteert), hoe je dat vertaalt naar een uitslag van je roer en hoe je een Arduino dit nu wijs maakt.


Timo
Verzonden vanaf mijn desktop met Firefox

Henk Boshuyzen

  • Offline Offline
  • Berichten: 884
    • Modeltram Toulon sur Arroux
Re: Servo aansturen.
« Reactie #3 Gepost op: 10 november 2016, 13:12:25 »

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1577
    • El Carrilet
Re: Servo aansturen.
« Reactie #4 Gepost op: 10 november 2016, 15:59:23 »
Citaat van: Ron Sub
... met het toenemen van het motortoerental (aansturen snelheidsregelaar = servo signaal) de uitslag van de servo van de duikroeren doet afnemen. Dus hoe meer ‘gas’, hoe kleiner de roeruitslag naar beide kanten!
Wat je zoekt is een mixer voor twee signalen, maar dat zou ook mechanisch kunnen, analoog aan de schaarbeweging voor de schuif van stoomcilinders waarbij 0-100% van de beweging/draaïng van het wiel naar de stoomschuif gaat, afhankelijkvan de stand van de snelheidshendel, bijvoorbeeld deze:

maar er zijn nog andere schaarbewegingen mogelijk.

De stoomschuif komt hierbij overeen met je duikroer, het aangedreven wiel met de servo voor het duikroer en de regelstang komt aan een servo die parallel op hetzelfde kanaal zit als de snelheidsregelaar.

Zoiets:



« Laatst bewerkt op: 11 november 2016, 20:07:02 door 72sonett »
El Carrilet

Not sent from my Pocketline Swing 380, Xperia Z2, iPhone, C5503, ALE-L21 or SM-G900F using Tapatalk.

MH

Ron Sub

  • Nieuwe gebruiker
  • Offline Offline
  • Berichten: 4
Re: Servo aansturen.
« Reactie #5 Gepost op: 15 november 2016, 15:09:57 »
Allen bedankt voor de reacties. Ik ga eens aan de gang met Arduino.

Groet,

Ron.

Geert2

  • Offline Offline
  • Berichten: 68
Re: Servo aansturen.
« Reactie #6 Gepost op: 15 november 2016, 17:43:14 »
Als ik het goed begrijp zoek je een schakeling die twee servo stuur signalen 1  en 2 inleest van een ontvanger en er eentje manipuleert en aangepast een nieuw stuursignaal 3 uitstuurt.

Ik veronderstel dat je gewone standaard servo's gebruikt?

Stuursignaal 1 van ontvanger :   tussen 0 en 100%  servo uitslag om de motorsnelheid  te regelen, waarbij 0% geen snelheid is? of bij 50% er geen snelheid is? (0% is dan volle bak achterwaarts...) Dit moet je nog verduidelijken. Stuursignaal 1 blijft ongewijzigd.

Stuursignaal 2 van ontvanger:  tussen 0 en 100% servo uitslag om het roer te bewegen, waarbij 50% de uitslag neutraal is.

Nieuw stuursignaal 3: Afhankelijk van de grootte van stuursignaal 1 (0-100% of 0-50-100%)  stuursignaal 2 zodanig manipuleren dat de uitslag kleiner wordt ten opzichte van de neutrale stand.

Dit is geen eenvoudige opdracht, maar is te doen in een kleine µC


Geert
Schaal H0 - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: zelfbouw LocoNet IO en LocoNet met 12F683

Ron Sub

  • Nieuwe gebruiker
  • Offline Offline
  • Berichten: 4
Re: Servo aansturen.
« Reactie #7 Gepost op: 16 november 2016, 16:31:49 »
Geert,

Er komen inderdaad 2 signalen binnen en er gaat er 1 uit.
Inkomende:
Signaal 1 = naar snelheidsregelaar motor. 100 % vooruit naar 100% achteruit. (gas)
Signaal 2 = naar servo (duik)roer. 100 % omhoog naar 100 % omlaag. (roer)
Voor beide geldt een 0 in de middenstand. Tot zover niets bijzonders.

Uitgang signaal:
Signaal 3 = een signaal naar de servo van het roer, dus een vervolg van signaal 2.
Echter moet signaal 3 afnemen bij het toenemen van signaal 1. Liefst vanaf een 20 %.
Dus wordt signaal 2, naar beide kanten rond het 0 punt, gereduceerd tot 50 % en wordt dus signaal 3.
Ik heb geprobeerd om er een bijlage bij te doen ...... Hoe krijg ik een tekening bij jouw?

Bedankt tot zo ver.

Groet,

Ron.

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4670
Re: Servo aansturen.
« Reactie #8 Gepost op: 16 november 2016, 16:53:31 »
Zie plaatje uploaden links.

Maar dat is wel mogelijk met een Arduino. Kunst zit hem er in dit wiskundig/logisch samen te vatten.

Dus je wilt de maximale uitslag beperken van 100% uitslag bij 20% snelheid tot 50% uitslag bij 100% snelheid? Of schalen?

Beperken:
Snelheid 0%, uitslag 50% => 50%
Snelheid 100%, uitslag 50% => 50%

Of schalen:
Snelheid 0%, uitslag 50% => 50%
Snelheid 20%, uitslag 50% => 50%
Snelheid 100%, uitslag 50% => 25%


Timo

Verzonden vanaf mijn desktop met Firefox

Ron Sub

  • Nieuwe gebruiker
  • Offline Offline
  • Berichten: 4
Re: Servo aansturen.
« Reactie #9 Gepost op: 16 november 2016, 17:17:02 »
Timo,

Ik denk 'schalen'.
snelheid 0 - uitslag 100% - 0 - 100%
snelheid 20% - uitslag 100% - 0 - 100%
snelheid oplopend - uitslag aflopend tot:
snelheid 100% - uitslag 50% - 0 - 50%

Ron.

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4670
Re: Servo aansturen.
« Reactie #10 Gepost op: 16 november 2016, 19:20:19 »
Maar als er begonnen wordt met 50% uitslag, moet dit aflopen naar 25% bij 100% snelheid? En gewoon lineair?


Timo
Verzonden vanaf mijn desktop met Firefox

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1577
    • El Carrilet
Re: Servo aansturen.
« Reactie #11 Gepost op: 17 november 2016, 00:34:08 »
Je sluit de signalen voor de snelheid en het duikroer aan op 2 IN-pennen van een uP, de snelheidsregelaar blijft verder zitten waar hij zit.
Dan meet je de pulslengte van het snelheidsignaal, die zal varieren van 1,0 tot 2,0 msec. Dan reken je een 'duikroerschaalfactor' uit, als functie van die pulslengte. Dat kan een wiskundige functie zijn maar het is makkelijker en waarschijnlijk ook sneller om die factor in een tabel te zetten en op te zoeken.

Vervolgens meet je de pulslengte van het duikroersignaal, het deel langer dan 1,0 msec vermenigvuldig je met de berekende of opgezochte schaalfactor, daar tel je weer 1,0 msec bij op en het aangepaste signaal geef je door aan een OUT-poort waar de duikroerservo aan zit.

In pseudo-code:
herhaal
   meet snelheidpulslengte op IN-pen1          // 1,0 - 2,0 msec
   bepaal schaalfactor bij pulslengte          // 0 - 100%
   meet roerpulslengte op IN-pen2              // 1,0 - 2,0 msec
   roerpulslengte = 1,0 + schaalfactor * (roerpulslengte-1,0)   //  1,0 - 2,0 msec
   zet roerpuls op UIT-pen
voor altijd
 
De signalen komen (waarschijnlijk) gedemultiplexed na elkaar uit de ontvanger, dus dan zou ik niet twee naast elkaar liggende kanalen nemen voor de snelheid en het duikroer, maar twee kanalen met langere tussenruimte zodat er voldoende tijd is om de schaalfactor uit te rekenen. De herhalingstijd per servo is zo'n 20 msec, dat is lang genoeg.
« Laatst bewerkt op: 17 november 2016, 10:12:53 door 72sonett »
El Carrilet

Not sent from my Pocketline Swing 380, Xperia Z2, iPhone, C5503, ALE-L21 or SM-G900F using Tapatalk.

MH

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4670
Re: Servo aansturen.
« Reactie #12 Gepost op: 17 november 2016, 10:35:46 »
Dat is inderdaad grofweg wat je moet doen. Om het makkelijk te maken zou ik de twee ingangssignalen aan de external interrupt pinnen hangen. Tijd bepalen met micros() en gaan :) Ik zou zelf alleen geen lookup gebruiken, de wiskunde is simpel genoeg. Een if statement en een map() of contrain() (of je wilt beperken of schalen) en klaar. Tenzij je niet lineair wilt aanpassen, dan wordt het wat anders.

Let er wel op dat de maximale en minimale waarde wat meer kunnen zijn dan de 1ms en 2ms. De standaard van de Arduino Servo library is ook niet voor niets 544us en 2400us. Ik zou er dus een functie in maken dat je de maximale uitslagen kunt leren waarna je deze op slaat in EEPROM. Deze kan je dan gebruiken voor zowel bepalen wat 20% is als voor het weer uitsturen van het servo signaal.

En hoe ironisch het ook klinkt, blijf wel van het variabele type float  ;D Dat is traag en niet nodig.


Timo
Verzonden vanaf mijn desktop met Firefox