Doel:€250.00
Donaties:€195.00

Per saldo:€-55.00

Steun ons nu!

Laatst bijgewerkt
op 15-01-2020
Algemeen

De stichting

Recente berichten

Magoo's geheime archief. VERBODEN TOEGANG door Daniel Caso
Vandaag om 21:59:18
Hoch über dem Fluss Albula (Project 0m, iets heel anders: Rhätische Bahn) door Daniels
Vandaag om 21:55:09
Malmö en de Öresundbrug. door nighttrain1
Vandaag om 21:55:03
ESU Ecos AC/DC samen door Bahn-AG
Vandaag om 21:55:01
BNLS-actie: Ibes Interfrigo Chiquita - De Graaf koelwagen door RodeDuivel
Vandaag om 21:52:56
Weinig resultaten, maar wel (sporadisch) lekker bezig door valkyrienineball
Vandaag om 21:45:28
Projekt 083-338 door 44
Vandaag om 21:41:24
Uit en Thuis, de bouw door Peter Kleton
Vandaag om 21:40:57
Taps toelopende buis? door Klaas Zondervan
Vandaag om 21:35:52
Kleurenfilm uit WO2 met stoomloc in Amersfoort door Syb030
Vandaag om 21:33:16
Artitec 2020 door eichddraig
Vandaag om 21:13:36
Piko BR 82039, rijdt analoog, maar niet met ESU decoder? door henk
Vandaag om 21:00:37
Rangeer avontuur met Sik en 2400 door EricZmS
Vandaag om 20:52:05
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 20:51:02
Bahnstrecke 5867 door Frank 123
Vandaag om 20:43:49
Rijnmondlijn in h0 door Sebas5998
Vandaag om 20:38:02
MB-module: “Roubaix” door Chris80
Vandaag om 20:37:27
Update: baan in de tropen door Joost O
Vandaag om 20:34:31
Steenkolenmijn "Zeche Anna", schaal 1f door Daniel Caso
Vandaag om 20:27:23
BNLS trammodule: “Jewels of the HTM” door Zoedelaar
Vandaag om 20:13:03
Ostmühle, rangeerbaan in spoor 0 door Reeks77
Vandaag om 20:04:56
Onlangs gespot - gefotografeerd, de foto's door Andre Pronk
Vandaag om 19:53:43
Egger-Bahn dieselloc in schaal 1:43,5 door EricZmS
Vandaag om 19:38:50
Noname timesaver door EricZmS
Vandaag om 19:26:16
Een onbekend treintje door MOVisser
Vandaag om 18:53:28
Very USA: The Slug door Jeronimos
Vandaag om 18:40:59
Nationale Modelspoordagen 11 en 12 januari 2020, Rijswijk door St00mboy
Vandaag om 18:38:26
Loksound micro v4.0 sound slot verwijderen door Norway13
Vandaag om 18:36:46
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Twinkie
Vandaag om 18:16:52
Nederlandse baan in voorbereiding genaamd Anninkshoeve door valkyrienineball
Vandaag om 18:15:44
  

Auteur Topic: Haarsem aan Zee H0  (gelezen 4631 keer)

meino

  • Offline Offline
  • Berichten: 616
Re: Haarsem aan Zee H0
« Reactie #15 Gepost op: 12 oktober 2019, 00:41:59 »
Dat was mij niet bekend, weer wat geleerd. Je spreekt beter C dan ik, met Nederlands is het kennelijk net andersom...  ;-p

Sorry voor het gebruik van al die termen  ;), maar dat krijg je na 36 jaar C/C++ programmeren. Meestal probeer ik dat te vermijden, maar nu dacht ik dat deze termen wel gebruikt konden worden omdat het tot een soort basis kennis voor deze groep programmeer talen behoort.

Groet Meino

« Laatst bewerkt op: 12 oktober 2019, 10:14:45 door meino »
A clean desk is a sign of an empty mind

Kranenberg

bask185

  • Offline Offline
  • Berichten: 319
Re: Haarsem aan Zee H0
« Reactie #16 Gepost op: 20 oktober 2019, 11:28:24 »
Ik heb deze week wat tijd besteed aan mijn handregelaar. Ik had er eerder 1 half gemaakt en ik had een slechte start gemaakt:

Ik had ooit een digitale wekker voor mezelf gemaakt van hout. Die was erg goed gelukt maar het was veel werk om de behuizing te maken. Dus nu dacht ik dat doe ik weer effetjes... Ik had me zodoende een beetje verkeken op het werk en ik had niet meer de motivatie het ding af te maken.

Er zat ook nog een miniscuul ontwerp foutje. Zoals jullie kunnen zien had ik zelf een print gemaakt met een atmega 328 chippie er op. Het idee was dat ik hem via een andere arduino kon programmeren via ICSP. Voor onverklaarbare redenen wilde dat deze keer maar niet lukken. Het lukte me wel om de atmega te voorzien van een bootloader (althans dat zei de arduino IDE tegen me). Nu kon ik hem programmeren met een USB TTL converter. Daarbij waren er al 2 problemen. De bluetooth module zat al direct op de Rx/Tx pinnen gesoldeerd, hetgeen waarschijnlijk zou verhinderen dat ik hem met usb zou kunnen programmeren en ik had geen breakout pinnen voor de aansluitingen gemaakt. Op dit punt was ik er helemaal klaar mee met dit ding.

Toen kwam ik het Hoekdam draadje een mooie behuizing tegen van Conrad wat er wel netjes uitzag. Toen dacht, dat moet ik ook! Dus ik ben gaan bestellen en heb nu gemaakt:

Een knappere uitziende handcontroller die ik wel kan programmeren  ;)

De binnenkant.

Ik heb geprobeerd (en ben redelijk geslaagd) om het ding ergonomisch te maken. Ik wilde dat ik hem met 1 hand kan bedienen en dat hij draadloos is. Er zit een batterij in en een bluetooth module. Bluetooth is ontzettend simpel in het gebruik. Als je bekend ben met Serial.print(); dan kan je ook bluetooth.

De bediening is heel simpel. Als ik een toets indruk of aan de potmeter draai, dan en dan alleen dan stuurt de controller de wijziging naar m'n zelf gemaakte DCC centrale via bluetooth. De DCC centrale stuurt daarop feedback terug van de wijziging, deze feedback zorgt er alleen voor dat het LCD van nieuwe informatie wordt voorzien.

Met de getallen toetsen kan ik in een nummer opsturen. De DCC centrale maakt daar een adres van. Als ik een 3 opstuur, dan kan ik per direct adres 3 aansturen. Loc op adres 3 krijgt echter pas een instructie als ik de snelheid of een functie wijzig. Er zit dan ook geen dode tijd in de responsie. Ik kan meteen de loc aansturen. Als ik binnen 2.5 seconde nog een getal stuur dan wordt het adres aangepast. Als ik dus een 3 en een 2 in tik, wordt adres 32 gevormd en opgestuurd. Als ik langer wacht dan die 2.5 seconde, wordt het nieuwe adres 2.

Met het rode knopje kan ik de baanspanning  toggelen.

Ik kan ook adressen inleren, maar ik moet hiervoor nog een extra knopje inbouwen (of ik kan langer de baanspanning knop ingedrukt houden). Ik kan tot heden alleen DCC adressen doen met 14 of 28 snelheidsstapjes.

De potmeter werkt 2 richtingen op. Ik kan kan hem van -90 tot +90 graden draaien en zo zet ik de snelheid van -28 tot +28 stapjes (eigenlijk is het bereik 0 - 56 waarbij 28 eigenlijk 0 is). De potmeter kan verder dan 90 graden draaien, maar dat leek me oncomfortabeler aansturen en daarom heb ik 2 dode gebiedjes gecreëerd.

Met * kan in de koplampen aan/uit zetten. Met A-D kan ik de loc functies toggelen en met # kan ik kiezen tussen F1-F4 of F5-F8.

De bluetooth module zit op de pinnen A0 en A1 en wordt via arduino's SoftwareSerial library aangestuurd. Ik had voor het soldeer gemak namelijk 8 pinnen nodig die naast elkaar zitten en op een uno vind je die maar op 1 plek. Pin 0 t/m 7.

Ik kan de DCC centrale ook nog aansturen met mijn telefoon

Dit is een standaard en gratis app die je in de playstore kan vinden. De app kan verbinding maken met een bluetooth module. Je kan instellen welke knoppen je wilt hebben, hoe de knoppen heten en wat de knoppen moeten versturen.
Dit kan een character zijn of een hele zin.

De app werkt hetzelfde als de handcontroller muv de potmeter. Daarvoor in de plaats heb 4 pijltjes gemaakt, 2 voor stapjes van 3 en 2 voor stapjes van 1. Ook deze app krijgt feedback teksten van de DCC centrale. De centrale kan ook een instructie sturen om het scherm te wissen (functionaliteit van de app). Zo staat alleen de laatste opdracht in het scherm.

Ik heb nog een probleempje met de batterij voeding die ik nog moet oplossen, maar het programma is zo goed als af.

Het lijkt me ook leuk om misschien ooit voor de club een nieuwe DCC centrale te maken maar dan wil ik het met WiFi of zigBee modules uitvoeren ipv BT. Dan kan ik meerdere handregelaars op 1 DCC centrale laten werken.

Tot de volgende update

bask185

  • Offline Offline
  • Berichten: 319
Re: Haarsem aan Zee H0
« Reactie #17 Gepost op: 26 oktober 2019, 18:51:36 »
Deze week een beetje elektronica kunnen doen.

Zo zie ik graag mijn elektronica, geordend met weinig draden  :police:

Rechts boven zie je een printje met een arduino nano, max485 boardje en hij heeft 3 connectors die allemaal dezelfde verbindingen hebben. Ik heb er 2 voor een flatcable en 1 om direct een IO extender tegen aan te prikken. Verder heeft het printje 2x dubbele kroonstenen voor de baanspanning/massa en voor de Rs485 bus. Helemaal rechts onderin, zie je het bordje om alle servo motors voor de wissels aan te sturen. Ik moet hier nog een verloopje maken zodat ik deze aan de andere print kan prikken

Links van de hoofdcontroller hangt een schakelende voeding die de baan spanning omzet in 5VDC. Ik had nog bijna een probleem met deze. Ik wilde eerste de baanspanning gelijkrichten en dan in de converter stoppen. Dat kon helaas niet omdat ik baan massa met de massa van het 5V moet verbinden. Dat zou er toe leiden dat ik kortsluiting zou maken over 1 van de diodes. De enige oplossing was om de baanspanning met 1 diode enkelzijdig gelijk te richten en er een elco achter hangen.

Het printje rechts onder heeft 2 dubbele 8 pins IO poorten. Op deze zal ik dmv een 5v relais een ontkoppelrails aansluiten en de rest wordt voor terugmelders gebruikt. Ik heb meer van deze printjes gemaakt en ik kan ze direct aan elkaar prikken of via de flatcable. Ik kan ook meer dan 2 apparaten aan dezelfde flat cable hangen. Het schakelbord heeft 2 van dezelfde IO extenders.

Ik probeer altijd zo veel mogelijk met ijzerdraad te solderen. Ik gebruik vaak ook kopertape.

Onderkant van de IO extender.

De hoofdcontroller van onder.


Ik moet bij de IO extender print allen nog 2 pinnetjes om solderen. Ik had een klein denk foutje gemaakt met de flatcable connectoren. De SDA en SCL zijn nu omgewisseld  ::)

Ik moet zeggen dat ik erg gelukkig ben met de flat cables. Ik kan de connectoren er zo op prikken. Dat heeft geen soldeer werk meer nodig. Ik heb ze niet te lang gemaakt omdat ze voor de I2C bus zijn.


Ik heb ook nog wat software werk moeten verrichten. Ik had aanvankelijk bepaalde gebieden in mn EEPROM gereserveerd voor verschillende objecten. Ik had voor o.a. 64 geheugen cellen en 64 terugmelders plaats gemaakt. Nu kan ik geen 128 items hebben, zoveel IO heb ik niet. Omdat ik ook nog lichtseinen, ontkoppelaars en  spoorwegovergangen dynamisch wil kunnen maken, heb ik nu een ander plan bedacht. Elk item heeft nu 8 bytes gereserveerd en het begin adres is nu gelinkt aan de IO waar deze aan hangt.  Dit maakte de software veel makkelijker en korter. Ik kon hele functies of weggooien of halveren.

De ledjes van het schakel paneel zaten tegenover de knopjes voor de geheugen cellen. In software was dit ook gefixeerd, maar kan ik dus op elke willekeurige IO het ledje zetten. Mocht ik ooit iets fout solderen, kan ik met SW oplossen.

Om het inleren te regelen, heb ik besloten om dat niet via de arduino monitor te doen. Dat ding herkent veel van de eerste 31 ascii instructies niet. Ik heb daarom nu putty gedownload om dit een beetje knap te kunnen doen. Naar Putty kan ik het scherm wissen en getallen op dezelfde plek aanmaken.

Ik heb een simpele state diagram gemaakt zodat ik de software goed kon orderen om de verscheidene objecten in te leren. Zo kan ik 3 verschillende wisselaansturingen invoeren (servo, relais, 2x spoel), seinen met en zonder servo voor een arm, 2 of 3 lichten. Het zit er allemaal in.


Ik heb ook een idee bedacht om een functionele spoorweg overgang te maken met 2 servo's en 2 knipperende leds. Het idee is dat ik via Putty tegen de arduino vertel, hoeveel sporen de overgang heeft (1 of 2) , op welke IO zijn bezetmelders komen en op welke IO de servo motors en leds zitten. Vervolgens wil ik met een state machine de overgang gaan aansturen. Het leuke is dat deze geen dependencies heeft met de rest van het systeem. De overgang draait volkomen parallel aan de andere processen. Als ik hier voor een goede class maak, kan elke arduino meer dan 1 overgang aansturen.


Ik heb voor de software liefhebber nog een beetje code.
De terminal code bestaats zoals al mn state machines uit 2 delen. De states en state machine.

De bollendiagram is erg makkelijk te vertalen naar de volgende code. Op werk doe ik dit ook en dan gebruik ik scripts om dit te genereren.
#define terminalCommand(x) break; case x: if(x##F())
extern byte menuF() { // called from main
switch(subCommand){
default: {
nextCommand(getType); }

terminalCommand(getType) {
nextCommand(getID); }

terminalCommand(getID) {
nextCommand(getIO); }

terminalCommand(getIO) {
if (type == turnout) nextCommand(getSwitchType);
else if (type == decouplerObject) nextCommand(getDecouplerIO);
else nextCommand(hasLed); }

terminalCommand(curvedOrStraight) {
nextCommand(storeObject); }

terminalCommand(hasLed) {
if(hasLedIO == YES) nextCommand(getLedIO);
else nextCommand(storeObject); }

terminalCommand(getLedIO) {
nextCommand(storeObject); }

terminalCommand(getSwitchType) {
if(switchType == COILS
|| switchType == RELAY) nextCommand(curvedOrStraight);
else nextCommand(adjustCurvedPosition); }

terminalCommand(adjustCurvedPosition) {
nextCommand(adjustStraightPosition); }

terminalCommand(adjustStraightPosition) {
nextCommand(storeObject); }

terminalCommand(storeObject) {
nextCommand(0);
return 1; }
break; }
return 0; }
#undef terminalCommand
De uitlijning klopt niet helemaal, bij mij staat alles perfect uitgelijnd :police:. Ik zie ook mijn code graag zoals de electronica, duidelijk en geordend.

Een van de states uitgelicht:
terminalCommand(getIO) {
if(firstEntry) { firstEntry = 0;
Serial.println("select IO 0-63, press ENTER when ready"); }
if(serialByte && makeNumber(&IO,serialByte,0,63,'\n')) {
return 1; }
return 0;}

Alle states zien er zo uit.
Er wordt 1 malig text geprint en de functie 'makeNumber()' zorgt er voor dat je de getallen goed kan invoeren. Als argumenten moet je adres van de te wijzigen variabele opgeven, de minimale en maximale waardes en de character waardoor makeNumber 'true' returnt en daarmee de state beëindigt.

bask185

  • Offline Offline
  • Berichten: 319
Re: Haarsem aan Zee H0
« Reactie #18 Gepost op: 08 december 2019, 17:57:53 »
Ik realiseerde me dat ik mooie achtergrondjes nodig had. Een van onze clubleden was zo aardig me daar bij te helpen. Hij liet me de 'Bob Ross' methode zien en het zag er echt heel simpel uit. Dat wil ik zeker een keer zelf gaan proberen.


Toen ik de achtergrondjes wilde plaatsen, realiseerde ik me dat sommige delen van mn baan niet erg goed zijn.

Om te beginnen liep de lijn van de 2 naast liggende modules niet gelijk door het verkeerd aanleggen van de rails. Deze lijn wil ik wel goed hebben en dat resulteert in:


Om dit op te lossen wil ik het baanplan wijzigen. De module aan de rechter kant was gemaakt met het idee dat hij ooit scheef zou staan en nu heb ik:

Het missende driehoekje heb ik nog, maar ik ben er over uit dat ik het baanplan hier ook moet wijzigen. Ik heb ook nog een beetje ruimte niet goed benut en dat wil ik ook veranderen.


Deze hele module wordt vervangen door een module die 20 breder is en 20 cm langer. Zo kan ik een R2 boog in een R3 boog veranderen en heb ik iets meer speelruimte. (Jammer dat mijn traxxen niet op deze baan passen  ::) )

Het nieuwe baanplan ziet er zo uit


De wissels tussen Haarsem aan zee en Haarsem-west haal ik weg zodat de sporen iets natuurlijker kunnen lopen en de modules weer gelijk lopen. Het sporenplan van de industrie module blijft ongeveer gelijk. Ik heb uren en uren besteed aan andere baanplannen maar ik was uiteindelijk toch weer op hetzelfde uitgekomen alleen iets groter. Ik ben nog in twijfel of ik mijn 2 drieweg wissels wil gebruiken voor de locloods of dat ik dit niet toe zodat ik wat meer ruimte over heb voor de scenery.

Het spoor naar het schaduwstation wordt verborgen achter de achtergrondjes.

Ook ik heb Haarsem-Oost aangepast omdat het voormalige sporenplan exact hetzelfde was als dat van West in spiegelbeeld en ik vond het nogal zaai. Daarom heb ik 1 wissel verlegd met een kopspoortje. Ik had ook hier menig tijd ingestoken voor alternatieven, maar ik moest me houden aan 2 dingen.

Ik wil daar kunnen omlopen en er moet een dubbele hondekop-2 schakeling aan kunnen doen. Het blijft wel een enkel perrons stations. En het spoor loopt verder de hoek om naar mijn bureau. Maar deze zal ik als laatste aanleggen. Station West ga ik ook verbreden omdat ik nog wat ruimte over heb.

Station West en de haven wil ik gaan bouwen naar het model van omgeving Ijmuiden, een rustig duin gebied. Naar het Oosten wil ik het meer polder-achtig maken.

Ik heb de software ook bijna af voor onder de baan. Ik heb het programma nu zo gekregen dat ik verscheidene IO aan elkaar kan koppelen. Ik heb nu bijvoorbeeld 1 ontkoppelrail zitten aan een IO extender die aan dezelfde arduino hangt als het schakelpaneel. Als ik het ingeleerde knopje van het schakelpaneel indruk, gaat er 1 ledje branden (Een led voor feedback is ook optioneel) en de ontkoppelaar zelf schakelt mee.

Het treinprogramma krijgt ook de mogelijkheid om alle rail items te bedienen. Ik ben ook al begonnen aan het opzetten van de seinen. Ik wil zowel licht seinen als servo gestuurde seinen en allerlei combinaties daarvan aan kunnen sturen.

Het wisselgedeelte is ook al bijna af. Ik kan kiezen uit 3 types, servo motor, spoel aansturing met 2 IO en aansturing via een relay met 1 IO. Ik kan ook via de terminal de richtingen omdraaien.

Ik wil als laatste 'item'ook nog led circuits aan kunnen sturen met schakelpaneel knopjes. Wanneer dat af is, is de software helemaal configureerbaar voor elk object.

NS264

  • Offline Offline
  • Berichten: 5682
  • Midland Industrie, NS IV.
    • Midland
Re: Haarsem aan Zee H0
« Reactie #19 Gepost op: 08 december 2019, 21:20:26 »
Hoi,

Zeer interessant te lezen wat je zoal doet.

Het klinkt alsof het makkelijk te doen is.

Gr Koen.
Klik op de wereldbol naar topic.
Mvg Koen.

bask185

  • Offline Offline
  • Berichten: 319
Re: Haarsem aan Zee H0
« Reactie #20 Gepost op: 06 januari 2020, 21:51:46 »
@koen. Programmeren is ook een hobby van me. Voor werk was ik begonnen met het gebruiken van scripts om code en hele project folders te genereren om zo meer bugs te voorkomen en om je SW makkelijker te onderhouden en beheren. Parallel heb ik dit ook voor het Arduino platform gedaan. Dit heeft nog wat liefde nodig maar ik ben al ver (y).
Ik heb alleen maar zoveel tijd en ik wil zo graag aan m'n scenery werken.

Dat brengt me naar de update. Deze vakantie heb ik een paar dingetjes gedaan. Ik heb om te beginnen nieuwe modules gemaakt voor de industrie zijde.


Met nieuw baanplaan uitgelegd.


Ik heb ook de bakken voorzien van verf. De grote moet nog een stukje, maar ik had geen zin meer. ::)

Op de grote bak liggen laminaat onder vloer platen van 7mm dik. Deze liggen er om het geluid te beperken. Er zit echter ook een harde laag voorstrijksel op gesmeerd. Dus ik hoop dat het zal werken. De grote bak bestaat uit 2 delen omdat hij anders misschien niet meer de trap af zou kunnen gaan. Zo heb ik ook de sporen gelegd. Ik wil alle C rails hier gaan doorzagen.

Ik wil echter eerst de scenery gaan aanpassen van de haven. Ik moet alleen nog goede grijze verf kopen. Ik ben nu nog in dubio over wat ik met de rails moet doen. Het liefst wil ik de rails verzinken zodat het lijkt of ze in het beton liggen. Daarvoor moet ik het land rondom de rails verhogen. Alleen de nieuwe haven wanden (halve aughagen platen) liggen daar iets te laag voor.

Ik weet nu even niet meer wat handig is om te doen hier. Advies is erg welkom. Een paar foto's van de situatie:



Als laatste heb ik een leuk stationsgebouw gevonden in mijn verzameling oude geërfde huisjes.


Dit station wil ik vernederlandsen. Hij moet ook iets hoger komen te liggen, maar gelukkig heb ik nog 20m2+ aan laminaat ondervloer over  (y).

Ik heb ook alle benodigde aughagen platen. Om het perron te betegelen. Ik heb gelezen hoe je dat met een gebogen perron kan doen, maar het lijkt me lastig.

Nu ik de smaak te pakken heb qua scenery hoop ik wat frequenter interessantere updates te kunnen doen.

Dus tot de volgende,

Bas