Arduino als toevoeging in duw-sleepboot

Discussie in 'Bouwtips varende modellen' gestart door Pergotje, 28 jan 2016.

  1. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Arduino in mijn model duw-sleepboot.

    In het subforum Werkschepen heb ik een topic over de bouw van mijn duw-sleepboot.
    http://www.modelbouwforum.nl/threads/bestaande-duw-sleepboot-nabouwen.655/

    De boot is gebouwd op een door Melvin getrokken polyester romp. Het dek en Boeiing zijn van triplex en balsa, versterkt en verzadigd met G4.
    De duwkop en de gehele opbouw komt uit mijn 3d printer en is van Abs. Zo ook de roeren.

    Aangezien ik nu met de electronica bezig ben en dat allemaal via arduino's gaat, lijkt het me beter dat topic maar op te splitsen voor de leesbaarheid, aangezien er veel info bij zal komen over het aansluiten en programmeren.

    Bij het programmeren zal ik hulp nodig hebben van Marten, die mij via whatsapp al veel helpt.

    Het is een model schaal 1/25, het origineel heb ik 10 jaar in bezit gehad.

    Wat ik met de Arduino's wil is de roeren gecontroleerd aansturen.
    Hefbare stuurhut nauwkeurig gecontroleerd aansturen.
    Evt. gaan ook de koppellieren aangestuurd worden via stappenmotoren.
     
    Laatst bewerkt: 28 jan 2016
  2. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Sommige posts zullen helaas dubbel zijn in beide topics, ik begin met het verplaatsen van de betreffende posts.
     
  3. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Het origineel heeft 2 roeren, die dwars onder de kont kunnen.
    De buitenste draait altijd iets langzamer zodat de binnenste op 90' staat terwijl de buitenste dan op ong. 80' staat.

    [​IMG]

    [​IMG]

    Nadat ik de roeren ooit juist had afgesteld liep de boot mooi achteruit met de schroef vooruit en de roeren dwars. Het stuurde daarna fantastisch.


    Uiteraard moet het model net zo sturen.
     
  4. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
     
  5. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    ROERWERK

    Het werkt inmiddels.
    Dat het eerst niet werkte was omdat ik pin 0 gebruikte en zoals je weet test ik op de Uno.
    Dus gewisseld naar pin 3, die wel PWM heeft...

    Helaas blijven de servo's jutteren en brommen. Maar de eind afstelling is per servo, per kant te regelen.

    Langzaam het script uitbreiden dus...

    De Monitor uitlezen resulteerd in het volgende:
    Stick op nul RX_in = 1492 / 1514
    Stick links RX_in = 1936 / 1959
    Stick rechts RX_in = 1086 / 1108



    Als ik de ontvanger of de zender uitzet, gaan de beide servo's meer dan 90 graden dwars.
    Dat is iets dat in mijn boot dus niet mag gebeuren !!!
    Is dit op te lossen door buiten de RX_min en RX_max uit de ontvanger de servo's automatisch in de midden te zetten?
    Dus als een soort failsave reageerd hij niet buiten de ontvangerwaarden.
    Of anders door de maximum grenzen van de servo's op de arduino duidelijk vast te stellen.
     
    Laatst bewerkt: 30 jan 2016
  6. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
     
  7. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Momenteel test ik met de Arduino Uno en een breadboard. Later worden dit Arduino micro's netjes op een printplaatje. Iedere arduino krijgt zijn eigen taak, zodat het heffen van de stuurhut het sturen niet in de weg zit.
     
    Laatst bewerkt: 28 jan 2016
  8. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    HEFMAST

    Over naar het hef gedeelte.

    Dit bestaat in het origineel uit een 10 Tons 3traps heftruckmast met vrije heffing.

    Vrije heffing houdt in dat eerst de vorken, (in dit geval de stuurhut) omhoog gaan en dan pas de mast. Anders gaat alles geleidelijk maar komt de mast boven de stuurhut uit.

    Ik had lange tijd geen idee hoe ik het moest maken maar ben met messing h-profielen en 4mm. kogellagertjes aan het solderen geslagen.

    Ik heb nu 2 gangen die in elkaar en de onderste vaste gang schuiven.

    [​IMG]

    De bovenste gang is nog open aan de bovenste voorkant. Nu kan ik de stuurhut ophanging gaan maken met lagertjes die er van boven in gestoken kan worden.
     
    Laatst bewerkt: 30 jan 2016
  9. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    HEFMAST

    Die stuurhut zal via aan zeilservo opgehesen worden, waarna 2 stappenmotoren in verschillende snelheid de mast op gaan tillen.

    Het kan via katrollen makkelijker maar de spindel onderdeks brengt stevigheid en meer controle mogelijkheden.

    Daar komt de Arduino dus weer om de hoek kijken.

    Het mechanisme :
    [​IMG]

    [​IMG]
    De mast lijkt wat scheef te hangen, dat komt omdat hij nu helemaal bovenin staat. Des te hoger, des te meer speling. Uiteindelijk zal er minimaal 2 cm per gang lager een eindstop komen en de spindel met geleiders zorgen voor steun van onder af.


    De spindel zorgt voor het heffen per mast deel. De draadeinden aan de buitenkant gaan als geleider dienen maar nog belangrijker is dat hier een slede op komt met de eindafslagen.

    Bij een vorige spindel voor de Adolph Bermpohl ben ik ook van de standaard tekeningen afgeweken door de eindafslagen zo af te stellen. Dat is me prima bevallen.

    Het was kiezen voor een potmeter (schuifpotmeter in dit geval) of een eindschakelaar voor de 0 afstelling.

    De arduino kan dus in de onderste stand zien dat de hut helemaal beneden is en dan beide stappenmotoren op nul zetten.

    Dit zal in een speciale volgorde moeten gebeuren maar dat komt later.

    De arduino zet dus met de stuurhut onderin beide stappenmotoren op nul.
    Vervolgens stuurt hij de zeilservo (langzaam) aan, die de hut met max. 3 slagen in de mast omhoog laat gaan. Dan gaan beide stappenmotoren langzaam draaien, waarbij de arduino de stappen telt en de middengang 2 stappen laat doen op iedere stap van de onderste.
    Bovenin komt nog een eindschakelaar alleen ter beveiliging.
     
    Laatst bewerkt: 30 jan 2016
  10. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    ROERWERK.

    We weten nu dat de opstelling en het programma van Marten werkt.

    Binnenkort kan het roerwerk in de boot getest gaan worden.
    Het jutteren zal beter worden als ik alles een eigen voeding heb gegeven, de teststand blijft nog even simpel op voeding via de usb. Tevens is dat ook gelijk een makkelijke manier om aan de failsave te gaan werken en te testen.

    Het probleem is dat bij een te grote roer uitslag de boel kan beschadigen en aangezien de servos bij het opstarten van de arduino een keer dwars slaan moet daar iets op verzonnen worden.

    Mogelijk door de uitlezing uit de voortdurend te controleren en bij het opstarten altijd vanuit de middenstand uit te gaan? Ook bij signaalverlies kan dan terug naar de middenstand gegaan worden.
     
  11. marten77

    marten77

    Lid geworden:
    22 jul 2007
    Berichten:
    2.325
    Locatie:
    Gouda
    Je kunt tijdens de opstart een for uitvoeren:

    Code:
    void setup()
    {
      BBroer.attach (9); // De servo van RoerBB zit op poort 9 aangesloten
      SBroer.attach(10); // De servo van RoerSB zit op poort 10 aangesloten
      Serial.begin(9600);
    // Servo's op hun middenpositie
    for (int i=0; i <= 120; i++){
      BBroer.write(90);  // Aansturing van de servo
      SBroer.write(90);  // Aansturing van de servo
     
      delay(18);
      }
    }
    
    Tijdens die for worden de servo's een X tijd in hun middenstand gehouden.
    Die X tijd bepaal je door die waarde 120 te verhogen of te verlagen.
    Verder komt er nog twee maal 1500 uS bij, i.v.m. twee servo pulses.
    120 x 18 = 2160 ms
    2 x 1500 = 3000 uS
    2160 ms + 3000 uS = 2163 ms

    1000 microseconds (uS) = 1 milisecond (ms)
    1000 miliseconds (ms) = 1 seconden

    Oftewel, de servo's blijven net iets langer dan 2 seconden op hun middenstand staan.

    Een andere optie is, om eerst te controleren of de ontvanger een X tijd een juiste pulsbreedte geeft.
    Dit kun je ook gelijk als FailSafe gaan gebruiken.
    Hierover later meer :thumbsup:
     
  12. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Dit werkt wel, maar helaas niet als bedoeld.

    Bij het opstarten van de arduino gaan de roeren inderdaad eerst in de midden. Met of zonder de zender aan. Dit geeft het programma inderdaad de tijd om de ontvanger uit te lezen.

    Helaas is een failsave belangrijker, vooral in de testfase staat de arduino nog wel eens aan zonder zender en dat zou in dit geval alsnog schadelijk zijn voor mijn roeren. Dus als die failsave de opstartfunctie ook kan sturen zitten we beter.
     
  13. Micropuller

    Micropuller Forum veteraan

    Lid geworden:
    1 jul 2004
    Berichten:
    6.399
    Goede kans dat je servo helemaal uitslaat, omdat er geen signaal te meten valt als je de zender / ontvanger uit zet. De arduino zet deze meting dan om in een volledige uitslag naar het minimum.
    Je zou de minimum en maximum uitslag kunnen beperken met de functie "constrain". Daarnaast zou je ook nog een functie kunnen inbouwen die bij een gemeten waarde van 0 (daar ga ik even van uit), de servo naar een vooraf in te stellen positie zet. Dan heb je meteen een (beperkte) failsafe functie ingebouwd.
     
  14. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Nu eerst even aan het testen met de spindel voor het stuurhut heffegedeelte.
    De snelheid valt heel zwaar tegen.
    En nu heb ik alleen de onderste gang nog maar aangestuurd.

    Die gang moet uiteindelijk op halve snelheid van de andere gang gaan werken.

    Voor de andere gang moet de spindel nog langer gemaakt worden maar dat is voorzien en kan onder de machinekamerkap weggewerkt worden.

    Eerste zorg is deze snelheid.
     
  15. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Plannen zijn er om gewijzigd te worden. De spindel met 2 stappenmotoren werkt wel, alleen veel te traag.

    Gelukkig heb ik alles demontabel en herbruikbaar gemaakt.
    Alles los gehaald en nu de basis aanpassen.

    In de basis dus alleen de spindels zonder de motoren eronder. Beide voorzien van een 15 tanden en een 30 tanden pulley uit de printer. Met een lager ertussen.
    De 1ste wordt aangedreven via de 15 tanden, dan kan ik de snelheid aanpassen aan de kant van de motor.
    De 2e gaat via de 30t. van de 1ste naar 15t, dus dubbel zo snel draaien.


    Dan kan de zelfde spindel en eindafslagen gebruikt worden en heeft hopelijk de bovenste spindel dan ook gelijk meer slaglengte.

    Wordt vervolgd.
     
  16. Micropuller

    Micropuller Forum veteraan

    Lid geworden:
    1 jul 2004
    Berichten:
    6.399
    Hoe stuur je de stappenmotor aan? Rechtstreeks via de arduino, of mbv een stepperdriver? In het laatste geval kun je nog behoorlijk spelen met de instellingen (hele stap, halve stap, t/m 1/16 als ik me niet vergis. Ook kun je de maximale stroom op de motor instellen.

    Je zou ook nog echte trapeziumspindels kunnen inbouwen (het lijkt erop dat je nu met draadeinden werkt) en spindels met een grotere spoed kiezen.
     
    Laatst bewerkt: 1 feb 2016
  17. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Ik werk nu met draadeind ja. En een driver. Op lage snelheid gaat het goed. Op hogere snelheid start hij moeilijker op, maar dat is nog wel te programmeren. Maar nog hogere snelheid bromt of piept het alleen maar.

    Aangezien ik met de 2e spindel alle hoogte moet benutten, lijkt een overbrenging me beter dan de 2e motor. Dan kan de spindel ook lager aangedreven worden.
     
  18. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Eindelijk de Arduino Nano binnen.

    Gister getest op een breadboard.

    Vandaag op een printplaatje geplaatst en voorzien van 3*3 aansluit pennen voor de ontvanger en de 2 servos.
    De ontvanger gaat zijn stroom dus ook via deze print krijgen, de ontvanger en servos krijgen 6 volt via de groene aansluiting, via een glaszekering.

    De nano wordt gevoed door 5 volt, op diezelfde groene schroefklem. De middelste aansluiting daarvan is gezamenlijke - (ground) ook via een glaszekering.


    [​IMG]

    [​IMG]
     
  19. Pergotje

    Pergotje

    Lid geworden:
    21 apr 2005
    Berichten:
    788
    Locatie:
    Rozenburg
    Door de zekeringen kan ik nu wel makkelijk testen en op de pc laten draaien of stand alone op de eigen 5v. Voeding.

    Wel valt het me op dat het zenuwachtig gedrag van de servos op de eigen voeding minder is dan met de usb als voeding.

    Ik heb ook even geëxperimenteerd door het zenden naar de seriële monitor even uit het programma te halen. Dan heeft de nano minder werk, zie het aan het TX lampje.

    Maar verder maakt dat ook geen verschil.

    De roeren blijven onrustig. Dat dat in het inkomende signaal zit blijkt aan de output van de seriële monitor dus doet de nano gewoon zijn werk.

    Als ik de servo direct in de ontvanger plug, zie ik geen enkel misstapje. Wel is het zo dat dan de servo maar de helft van de uitslag heeft, dus elke kleine beweging wordt sowieso dubbel zo groot in de nano.

    Uiteindelijk moet er nog een failsave en een Servo delay in. Daar kan ook nog wat met het signaal gedaan worden om het rustig te krijgen.
     
    MikeMohawk vindt dit leuk.
  20. MikeMohawk

    MikeMohawk

    Lid geworden:
    26 nov 2014
    Berichten:
    547
    Locatie:
    Groningen
    Ik heb een racequad waar een Naze32 als flightcontroller wordt gebruikt en daar kan ik de jitter van het inkomende signaal (ik heb een chinese zender die zo'n 4 Hz jitter heeft) worden afgevlakt. Misschien kan je dit softwarematig ook coden voor de Arduino? Want het lijkt erop dat je dus last hebt van jitter van de radiozender.
    Het lijkt me beter om het signaal zo rustig mogelijk te krijgen voordat je er iets mee gaat doen dan dat je achteraf probeerd om het uitgangs signaal rustig te krijgen.
     

Deel Deze Pagina