zondag 24 november 2024

RoBoot (2)

 

Afbeelding toont de huidige fase van Project RoBoot, rare naam, vreemd project, maar af en toe moet je de lat voor je zelf wat hoger of misschien wel te hoog leggen. 
RoBoot, zoals de naam doet vermoeden, een robot-boot. Een boot die op de modelbaan zelfstandig 'vaart'  en zijn routes vindt vergelijkbaar met een robot stofzuiger. Maar dan net weer even anders. 
Het project op de foto lijkt nu nog niet op een boot maar dat komt nog.
De boot zelf, het model, laat ik denk ik SLA 3D printen in een keer. In de boot komen dan twee stappen motoren, eentje voor het 'roer' en eentje voor de 'schroef'. Het stuur en de aandrijving dus. Links op de foto zie je de twee steppers zitten, een nieuw model kleine bipolaire stepper met een vertraging kast. 
Ideaal motortje voor de modelbouw, het is een stappenmotor dus heeft het een driver nodig, hiervoor heb ik een printje (laten) maken waarop twee A4988 stepper-drivers zitten gemonteerd, samen met een 595 schuifregister om het aantal verbindingen tussen de drivers en het RoBoot shield te beperken.
Dit werkt nu. 
De roboot moet varen en heeft dus geen vaste verbinding met de vaste wal. Voeding komt uit een 9V batterij, aansturing gaat met het aloude RC (radio control). Hiervoor is dus een RC control nodig. De Arduino rechtsvoor op de foto is de controller. Er komt een OLED schermpje op waarop je de stand van het roer en de aandrijving kunt aflezen. RC gebeurt met twee NRF24L01+ transceiver modules. 
Je ziet een van de modules op het breadboard liggen, de andere zit al gesoldeerd op de RoBoot shield.
Dit werkt ook. 
De controller krijgt een DCC decoder om de RoBoot met DCC te kunnen aansturen, en de controller krijgt functies om bezetmeldingen door te geven aan de centrale, in mijn geval is dat de Module MelDers verbonden via USB aan het programma WisselMotor. (voorheen WMapp).

De stappenmotor voor het roer heeft posities nodig, ik heb bedacht om 3 hall sensoren te plaatsen op het roterende deel van het roer, daarmee moet de roer positie te initialiseren zijn. Vervolgens deel ik de slag op in 240 graden. De 3 hallsensoren zie je in het midden van de foto naast de twee  A4988.
Onder op de RoBoot shield zitten dan nog 3 hall sensoren waarmee de boot straks (hopelijk) op de modelbaan kan gaan navigeren. 
Dit werkt ook, en de stand van de hall sensor wordt getoond op het display van de control arduino. 

Een boot heeft stuur-, bakboord-,top- en heklicht nodig. Verder misschien nog wat lichteffecten als schijnwerpers. Dit en eventuele toekomstige verzinsels die geschakeld moeten worden gebeurt met een WS2811 daisy chain, het aantal schakelfuncties daarmee is haast onbeperkt.  
Dit werkt dus ook.

Rest dus nu nog het allerlastigste, misschien had ik het nog niet vermeld, maar RoBoot moet een oude stoomloc of wagon laden en vervoeren naar een andere plek op de baan. Hoe zorg ik er voor dat de loc op RoBoot kan rijden? En voor de positiemelding van de loc 1 of 2 melders? Echte boten werken gewoon met walstroom, maar die hebben ook matrozen en andere medewerkers die de walstroom aansluiten. Hoe doe ik dit automatisch.... 

Leuk dat je tot zover hebt gelezen, als RoBoot klaar is neem ik het wel eens mee naar Houten....

wordt vervolgt...
 

dinsdag 15 oktober 2024

RoBoot

 Tijdje niet gepost. Druk, vakantie en zo. 

Laatste project SchakelBord is af, gaat mee naar de beurs en helemaal geworden wat ik ervan had gehoopt. Momenteel bezig met project RoBoot. Een robot boot.

Dit is een waanzinnig idee van jaren terug om een model bootje op schaal HO te maken. Die ergens een loc of wagon laad en daarmee zelfstandig naar een andere plek op de modelbaan  'vaart' en daar dit rollend materieel afleverd. Idee is om het model te tekenen in OnShape en door mijn vrienden van de JLCPCB te laten 3D printen. Tekening schiet al aardig op. 

Boot wordt een driewieler met twee vaste wielen aan de boeg en een aandrijfwiel die 360graden kan draaien bij de steven. Sturen gebeurt dus vanuit de achtersteven. Twee kleine stappenmotor doen de aandrijving en het roer. Hiervoor een behuizing getekend, best een opgave want er is daar maar 23 mm ruime tussen het 'wateroppervlak', de onderplaat van de modelbaan en het dek. 

Voeding voor het geheel een oplaadbaar 9V batterij die in het stuurhuis zit verborgen. Als microcontroller een standaard Arduino, gewoon omdat ik die heb, en ik ben redelijk handig in het programmeren van die dingen. Wel een beetje groot maar past wel in de romp van de boot. Via twee A4988 stepper drivers stuurt de arduino de stappen motoren aan. 

Een boot aan een kabel kan als het aan de kade blijft liggen, maar gaat de boot varen dan is een of andere vorm van draadloze communicatie nodig. Keuze is gevallen voor RC zoals je dat ook zit bij radiografische besturing van model boten en autootjes.

Hiervoor zijn in het verre China kleine modules te krijgen die kosten weinig, zijn klein en, zoals mijn recente testen hebben getoond, voldoen prima.

Voor het project is ook een tweede arduino project nog voor besturing van de boot en de interfacing met DCC. 

Momenteel is dit project nog heftig in de ontwerpfase. Er zijn nog vele zaken te onderzoeken, zoals hoe krijg ik een DCC signaal op de rails van de boot waar een loc op kan rijden. 

Wordt vervolgt....


zaterdag 14 september 2024

Demo plank

 Project SchakelBord is klaar. Dit is het eerste project waarbij ik eerst de hardware heb verzonnen, de print met onderdelen, en daarna pas de bijbehorende software. Weet nog dat ik toen helemaal nog niet zeker wist of alle onderdelen van het project ook inderdaad samen zouden kunnen gaan werken. Het arduino project heeft een DCC encoder die een DCC signaal maakt. Maar ook een DCC decoder die een DCC signaal uitleest. Beide zitten in dezelfde tijdschaal, gelijktijdig dus.  De NMRA decoder, was gewoon veel te groot dus zelf een decoder verzonnen op basis van een externe register interrupt, de encoder werkt met een interrupt op een van de drie timers. De encoder heeft een buffer waar tijdelijk de commands in worden opgeslagen, de interrupt van de decoder heeft hogere prioriteit dan die van de encoder. Anders gezegd als er een command wordt ontvangen dan wordt de encoder even gepauzeerd. Natuurlijk de stroom pulsen gaat gewoon door.
Uitgebreid getest op mijn automatische modelbaan aangestuurd door WisselMotor(het programma) en PenDelDCC(als USB~DCC interface) en werkt perfect.
Voor de smartleds is ook een serieel aansturing nodig. Dit werkt op een hogere tijdschaal, gaat veel sneller dan de dcc en zit de dcc niet in de weg. In de duur van 1 'dcc' puls wordt de data voor alle 64 pixels uitgezonden. Het uitlezen van de 64+11 schakelcontacten gaat natuurlijk vele malen langzamer haast in een voor ons te behappen tijdschaal. De contacten worden in sets van 8, set voor set uitgelezen, per single schakelaar ongeveer een keer per 32ms.
De logica, wat alles aanstuurt wat er moet gebeuren, staat helemaal achteraan in de rangschikking. Dit is door ons te zien en gaat zo langzaam dat de arduino dit afwerkt als er even niks anders te  doen valt.  

Op de Demoplank die ik altijd meeneem naar de Houten beurs heb ik SchakelBord ook geplaatst. Aangesloten op de ServoControl en DeKoder die beide ook op de plank zitten. Met de DCC aansluiting naar ServoControl laat ik zien hoe ServoControl met DCC aan te sturen is, en hoe de wisselstraat functie werkt van SchakelBord door alle 8 servo's tegelijk in een stand te zetten.
In DeKoder heb ik een fotoflits ingesteld met twee timers. SchakelBord triggered met een DCC command deze 'fotograaf'. 
Hiermee wordt de moment schakel functie van SchakelBord gedemonstreerd. 

Ook neem ik mee naar Houten een stuk M-Rails waar ik een IRrail sensor op heb gezet.
Een terugmelder maken op M-rail is gewoon lastig. Je hebt schakel rails maar die zijn ondertussen ook meer dan 30 jaar oud. Magnetische toepassingen met reedcontact of hallsensor is haast niet te doen omdat de rails van ijzer is. Verder kun je gaan zagen en slijpen om een stuk spoorstaaf te isoleren. 

Met een IRrail infrarood reflectie sensor is het wel heel eenvoudig om een terugmelder te maken op M-rail. 




zaterdag 31 augustus 2024

SchakelBord (7)

De tweede versie van SchakelBord is klaar. Deze is vele keren eenvoudiger dan de eerste versie van enkele jaren terug en met veel meer functies. De module is direct klaar voor gebruik. Voeding aansluiten, en DCC uitgang verbinden met de decoder is alles wat nodig is om te starten. Ideaal voor wanneer je DCC nodig hebt voor testen, decoder CV programmeren of maken van een model op de werkbank. Voor mijzelf een perfect hulpmiddel bij maken en testen van mijn arduino projecten. En een schakelpaneel met DCC is nu voor alle modelspoorders mogelijk. Digitaal aansturen van wissels en verlichting ook als je de treinen analoog wil laten rijden.

Volgende beurs neem ik ze mee. Teksten op de website voor handleiding werk ik nog wel even aan door, maar dat is altijd zo. Opmerkingen en feedback van gebruikers zijn daarbij altijd een welkome hulp. 

Voor de beurs demo zet ik SchakelBord er nog wel bij. Al wordt de demo plank dan wel nog chaotischer. Ik heb ondertussen zoveel arduino modules die ik wil laten zien, dat het geheel een ratjetoe begint te worden. Nu ja het is maar een hobby, en ik ben er altijd bij voor uitleg. 

De meest unieke functie van SchakelBord is de DCC ingang die wordt gemengd met de DCC die schakelbord zelf aanmaakt. Mengen is dan een verkeerde term. De commands ontvangen op de DCC ingang worden ingelezen in 3 bytes, daarna getest, en in de wachtrij, buffer van uit te zenden commands geplaatst samen met de in SchakelBord met de knoppen aangemaakte commands. Het uitzenden van de commands gaat in een strak regime. De in de buffer opgeslagen commands worden zo een voor een verwerkt.

Om dit op de demoplank te laten zien wordt zo een digitaal gedoe dat ik dit maar achterwege laat. Demo van de extra knoppen, wisselstraten met behulp van Servo control en de signalering met de smartleds, dat zal het wel worden.

Komt dat zien op de Houten beurs  op 5 oktober dus....


zondag 28 juli 2024

SchakelBord (6)

 Na het programmeren van de functie voor wisselstraten is het kunnen versturen van CV commands de laatste grote functie van SchakelBord. Dit werkt nu ook. 

SchakelBord heeft naast de in-bedrijf mode, waarbij de 64 drukknoppen of schakelaars, accessoires als wissels omschakelen of wisselstraten instellen, een mode voor het instellen van de werking van de knoppen in een knopset en een mode voor het instellen van meer algemene zaken. In de laatste zit dan een venster voor het creëren en instellen van wisselstraten, een venster voor het samenstellen en versturen van CV commands, een venster voor het instellen van diverse en een venster waarmee de module kan worden terug gebracht in de begin instellingen.

Het kunnen versturen van CV commands heeft weliswaar niks van doen met de hoofdfunctie van SchakelBord, een bedienpaneel, maar maakt project SchakelBord een heel handig veelzijdig hulpmiddel voor experimenten en allerlei bouwprojecten. Benodigde DCC commands voor bediening van een (zelfbouw)project kunnen op de werkbank door SchakelBord worden gegeven.

SchakelBord doet niet aan terugmelden of uitlezen van de aangesloten decoders. De gestuurde CV commands overschrijven altijd de geadresseerde CV van de decoder. Vindt je het belangrijk om te weten hoe je de CV’s hebt aangepast, dan moet je daar een administratie voor maken. 

In het CV venster kies je loc of accessoire  decoder. Stel het adres in. Kies welke CV. Stel de de nieuwe waarde in en verstuur het command.  Decoder zal dan de CV instellen. Er is geen weg terug.

Decoders kunnen in de meeste gevallen terug worden gezet in hun begininstellingen door het versturen van een reset command: CV8 met waarde 8.

SchakelBord kent ook een kunstje voor wanneer je ook het adres van de loc niet meer weet. Met SchakelBord kun je een command als broadcast versturen. Ongeacht het adres zal een decoder deze command uitvoeren. Zo kun je het adres instellen met CV 1 of de decoder resetten met CV 8. Doe dit nooit op de baan met vele locs en accessoire decoders want die staan dan allemaal op hetzelfde adres. Gebruik een rollenbank of programmeerspoortje.

Schakelbord is dus een veelzijdige module. Te gebruiken om een bedienpaneel te maken met drukknoppen en of schakelaars. Met multikleuren leds of aparte rode en groene leds om de standen van de wissels en wisselstraten te laten zien. 

SchakelBord kun je nesten, op de DCC  ingang kun je nog een SchakelBord aansluiten, voor nogmaals een 64 drukknoppen, of een andere centrale.  De DCC signalen worden met elkaar gemengd. Twee of meerdere DCC 'stroomkringen' een voor de rails met het rollend materiaal en een aparte stroomkring voor de stationaire decoders. Werkt ook met een treinenprogramma als Koploper of Itrain. Itrain kan je wissels automatisch zetten en op je met SchakelBord zelfgemaakte paneel kan dit gelijktijdig ook. 

Met wisselstraten is onder meer een schaduwstation te besturen. Een druk op een knop zet alle wissels om een trein naar het gewenste spoor te sturen.

Met het CV venster zijn eenvoudig en snel instellingen van loc- of wisseldecoders aan te passen. 

Wordt vervolgt.....



dinsdag 23 juli 2024

Schakelbord (5)

 De wisselstraten werken. Een set van 4 knoppen kan worden ingesteld als wisselstraatset. De 4 knoppen activeren 4 verschillende wisselstraten. Iedere wisselstraat heeft nu 8 acties , een actie zet als voorbeeld een wissel in een bepaalde stand. De indicatie, de smartled voor deze knop, brand geel als de knop een wisselstraat bedient en wordt paars als de wisselstraat wordt geactiveerd. Daar is aan te zien dat de wisselstraat is gezet en dat de trein erover kan gaan. Zet je nu een van de wissels apart om, dan wordt de indicatie voor de wisselstraat weer geel.

Diverse zaken moeten nog worden gefinetuned maar dat komt later, eerst alle hoofdzaken. 

Volgende hoofdstuk is de CV aansturen.

Het plan is om SchakelBord ook als een enorm basic CV programmer te kunnen inzetten. Dan zonder alle fancie opties die je op centrales tegenkomt, geen handshakes of terugmelding voor het uitlezen van decoders. Alleen basis. Instellen: is het een multifunctie decoder, zoals in een loc?  Of een accessoire decoder. Dan het adres, dan het CV nummer en de nieuwe waarde en een knop voor verzenden. SchakelBord stelt dan een DCC command samen en stuurt dat uit. Spijkerhard instellen van een CV. Top voor een ieder die precies weet wat hij wil. Aan te raden voor starters je eerst even in te lezen in de materie voordat je gaat experimenteren.

Wordt vervolgt...



woensdag 17 juli 2024

Schakelbord (4)

Signalering met gebruik van de smartleds werkt perfect. Volgende stap zijn de wisselstraten. 

Gewoon zet een knopactie 1 wissel of andere accessoire.  Met een wisselstraat zet je meerdere wissels tegelijk. Wisselstraten kun je gebruiken bij stations om alle wissels te zetten nodig om een trein van een spoor naar een specifiek perron te laten gaan. Voor een schaduwstation kunnen met een druk op een knop alle wissels worden gezet om een trein naar een vrij opstelspoor te sturen. Zeker zijn er nog veel meer toepassingen te bedenken.

Ook instellen van de wisselstraten gaat in een set van 4 knoppen. SchakelBord heeft aansluitingen voor 64 knoppen, schakelaars, opgedeeld in 16 sets van 4 knoppen. Een (knoppen)set schakelt als voorbeeld de 4 kanalen, channels van een decoder. Maar door een wisselstraat op een set in te stellen schakelen de 4 knoppen in de set dan 4 wisselstraten. Iedere wisselstraat krijgt een aantal acties. Een actie is het zetten van een wissel of andere accessoire in een vooraf ingestelde stand.

Hoeveel acties per wisselstraat en hoeveel wisselstraatsets SchakelBord straks heeft weet ik nog niet omdat dat afhangt hoeveel geheugen er overblijft.

Het ontwerp moet rekening houden met meerdere zaken.

Timing. Stel een wisselstraat heeft 8 acties die alle 8 een electro-magnetische wissel aansturen. De acties moeten dan 1 voor 1 met minimaal de pulsduur van 1 wissel ertussen worden gezet. 250ms is een bekende  waarde voor zo een puls. Doen we dit niet dan worden de wissels alle 8 tegelijk bekrachtigd en dat gaat niet. De voeding van de wissels kan dit niet aan. Dus een kwart seconde tussen de acties. Keer aantal acties duurt dan het omleggen van de hele wisselstraat 2 seconden. 

Een accessoire heeft een DCC adres en kan continue aangezet worden of met een puls. Verder kan het DCC command omgedraaid worden voor wanneer de aanduiding niet overeenkomt met de werkelijke stand. Immers bij een wissel aangestuurd door een servo maakt het uit aan welke kant van de wissel de servo zit. 

Meerdere gegevens zijn al ingesteld voor iedere accessoire bij de gewone knop bediening, en worden door de wisselstraten ook gebruikt.  Andere al ingestelde waardes bij de accoires zoals de knopfunctie en continue of moment schakeling, worden genegeerd. Dit kan ongewenste effecten hebben. 

Een knop ingesteld op een wisselstraat krijg in de smartled een eigen kleur, we hebben 16.581.375 kleuren dus keuze genoeg. Is de wisselstraat gezet, dat geeft dan weer een andere kleur. Maar wanneer een wissel opgenomen in een straat met zijn eigen knop in een andere stand wordt gezet, dan moet de indicatie van de knop  van de wisselstraat weer terug naar uit.

Best nog wel een uitdaging.

Wordt vervolgt......


RoBoot (2)

  Afbeelding toont de huidige fase van Project RoBoot, rare naam, vreemd project, maar af en toe moet je de lat voor je zelf wat hoger of mi...