Doel:€250.00
Donaties:€50.00

Per saldo:€-200.00

Steun ons nu!

Laatst bijgewerkt
op 03-01-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Doornvliet door raymond erdtsieck
Vandaag om 12:23:03
U-vorm beperkte ruimte (H0 C-rails) door eitreb
Vandaag om 12:06:06
Piko NS 2015 stroomafname probleem door meino
Vandaag om 12:03:59
Leids spoor (voorheen Blauwpoortsbrug) door gdh
Vandaag om 11:55:50
7 april De Karel on tour door NL-modelspoor
Vandaag om 11:51:04
NS Tals wagons (kalktrein) door Arjan6511
Vandaag om 11:41:59
Punt- en hartstukken door Klaas Zondervan
Vandaag om 11:41:44
De (3d) knutsels van Ronald. door Edsko Hekman
Vandaag om 11:21:53
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 11:19:47
Beekdaelen in H0 door VulcanRaven
Vandaag om 11:00:45
Stroomdetectie bij goederenwagens door henk
Vandaag om 10:32:03
MARDEC, de Multifunctionele ARduino dcc DECoder. door NTeering
Vandaag om 10:23:47
welk jaar ging Marklin OVP voor wagons van blauw naar wit door Railman
Vandaag om 10:06:39
nieuw te leggen sporen passend maken door Jelmer
Vandaag om 10:05:07
MSV Post B, even voorstellen... door Rsd1000
Vandaag om 10:01:44
30 maart Modelspoorbeurs Houten & HCC Kennisdag door Jelmer
Vandaag om 09:52:49
FFA koelwagen door martijnhaman
Vandaag om 09:46:10
Mijn eerste H0-modeltreinbaan in aanbouw door DJV
Vandaag om 09:42:59
US diorama in H0 door Wim Vink
Vandaag om 09:24:22
Zoekfunctie ? door henk
Vandaag om 09:18:44
Bouw van materieel 40 treinstellen door Pauldg
Vandaag om 07:52:09
NS 8400 van Werps door MathynK
Vandaag om 07:05:15
Onlangs gespot - gefotografeerd, de foto's door GerardvV
28 maart 2024, 23:37:18
Al mijn goede ideeën... door bask185
28 maart 2024, 23:12:12
Gebruik je Arduino zonder te "programmeren" ;) door bask185
28 maart 2024, 22:51:58
21 april Het stoomgenootschap door bloemenvelden door Seinhuis
28 maart 2024, 22:46:29
Raadplaatje door Magic
28 maart 2024, 22:23:21
LokSound 4 decoders, files verbeteren (voor Roco b.v. TEE RAm, NS2400, etc) door Biesje
28 maart 2024, 22:06:44
Geluid NS Mat'46 vs NS Mat'54 door Rob Bennis
28 maart 2024, 21:54:12
Engelse wagon uit 1930 opgegraven in Antwerpen door willem2
28 maart 2024, 21:52:45
  

Auteur Topic: Servo aansturen.  (gelezen 2415 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: 910
    • 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: 4656
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: 910
    • Modeltram Toulon sur Arroux
Re: Servo aansturen.
« Reactie #3 Gepost op: 10 november 2016, 13:12:25 »

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • 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
"te dom om te poepen"
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: 82
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 HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

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: 4656
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: 4656
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: 2083
    • 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
"te dom om te poepen"
MH

Timo

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