Doel:€250.00
Donaties:€30.00

Per saldo:€-220.00

Steun ons nu!

Laatst bijgewerkt
op 13-11-2019
Algemeen

De stichting

Recente berichten

Roco v60 lichtgeleiders schilderen door Biesje
Vandaag om 00:47:23
Buffels zijn verkocht door Hendrik Jan
Vandaag om 00:34:09
NCS 7/8 tot NS 61 62 Maffei lok in spoor 0 door ATB
Vandaag om 00:21:35
De Hondsrugbaan, H0 door Niekleair
Vandaag om 00:06:53
Zwarte draad soldeerstukje lopi 4 afgebroken door Mechiel_
Vandaag om 00:06:45
Toon hier je nieuwe (model-) spooraanwinst(en)... door T.Trein
Vandaag om 00:01:01
Raadplaatje door dh3201
14 november 2019, 23:54:36
OBB Nightjet door laurent
14 november 2019, 23:52:45
BNLS trammodule: “Jewels of the HTM” door Bert van Gelder
14 november 2019, 23:25:50
VERPLAATST: BNLS trammodule: “Jewels of the HTM” door Bert van Gelder
14 november 2019, 23:24:34
's-Heer Heinkenspolder door Reinier Z.
14 november 2019, 23:10:21
Solderen van lakdraad door Tijdperk||
14 november 2019, 23:08:08
EifelBurgenBahn door Reinout van Rees
14 november 2019, 23:04:25
Midland Industriebaan, NS Tijdperk IV, HO. door NS264
14 november 2019, 23:00:51
Projekt 083-338 door 44
14 november 2019, 22:22:48
Bouwsels van Rik in schaal 0 (1:43.5) door Rik
14 november 2019, 22:20:16
Aansluiten MTB MP6 en MP7 wisselaandrijvingen op Digikeijs DR4018 door Klaas Zondervan
14 november 2019, 21:50:40
Digitaal pendelen met een Arduino mogelijk? door Ronald Halma
14 november 2019, 21:42:44
NS modelbaan Hoekdam H0 door Eric B
14 november 2019, 21:32:28
Mat 54 in Schaal 0 door Mitchell
14 november 2019, 21:04:27
NS 6100 van GM&S door HaHoHo
14 november 2019, 20:36:04
The R & J Colliery Ltd. 1:76 Brits. door St00mboy
14 november 2019, 20:30:33
Zelfgebouwde Digitale Centrale door Robert E
14 november 2019, 19:38:44
Eanos/ Eaos in model door EddyK
14 november 2019, 19:28:02
Schwarzburg-Neuffen-Bahn door mass am see
14 november 2019, 19:17:19
De CanBus komt naar Kranenberg, Arduino's en de CanBus door meino
14 november 2019, 19:06:20
BMB 00-modulebaan, Algemeen. door St00mboy
14 november 2019, 19:01:20
BNLS werkspoor NS 8100 van Werps Modelbouw door FritsT
14 november 2019, 18:56:53
Roestrijden RXP 1251 en WIJS 2454 17 november 2019 door Jeroen Mooij
14 november 2019, 18:53:04
Depot + vervolg Vlieringen-2 door Wijktrein
14 november 2019, 18:13:50
  

Auteur Topic: Servo aansturen.  (gelezen 1911 keer)

Ron Sub

  • 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: 876
    • 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: 4527
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: 876
    • Modeltram Toulon sur Arroux
Re: Servo aansturen.
« Reactie #3 Gepost op: 10 november 2016, 13:12:25 »

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1405
    • 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

  • 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

  • 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: 4527
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

  • 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: 4527
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: 1405
    • 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: 4527
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