BeneluxSpoor.net forum

Vraag en antwoord => Digitaal => Topic gestart door: bask185 op 12 april 2021, 18:11:41

Titel: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 12 april 2021, 18:11:41
Beste forumgenoten,

Ik ben nu al een paar weken bezig geweest met het uitwerken van mijn plan om elektronica voor een NX type schakelpaneel te bouwen die kan werken met onder andere Xpressnet. Ik heb inmiddels printen ontworpen, code gerecycled van verscheidene oude projecten, nieuw code geklopt, bepaalde ideeën uitgewerkt en ik heb met een arduino een trein kunnen laten pendelen via Xpressnet. Ik heb tevens PB contact gevoerd met Ronald Koers over Xpressnet en Martin Hornis over het Nx systeem. En ik meen dat ik nu zo'n beetje alle goede ideeën heb verzameld  :police:

In dit draadje wil ik af en toe een update geven waarin ik in delen ga uitleggen hoe het systeem werkt, hoe het is opgebouwd en hoe je het systeem in gebruik kan nemen.

Ik zal in het kort een samenvatting geven van de basis.
Bij een NX beveiligings paneel kan een operator een route vast leggen door gelijktijdig een start en een stopknop in te drukken. Deze werking wil ik gaan nabootsen met mijn paneel. Het grootste verschil zal zijn dat mijn knopjes kunnen fungeren als zowel start als stop knoppen waarbij de volgorde van indrukken de richting bepaalt.

De kern van het systeem zal bestaan uit een print met een arduino board en een SD kaartmodule, I2C modules voor al je knopjes en ledjes en terugmelders etc en een aansluiting op de Xpressnet bus. De I2C modules zullen kleine printjes zijn die je in de basis module kan steken. Kom je wat IO te kort? dan steek je er een printje bij.

Voor dit project, ontwerp ik verscheidene printplaten, ik schrijf een programma voor de arduino en het belangrijkste: ik ontwikkel ook een grafische user interface waarop je je baanplan kan tekenen en waarmee je al deze informatie kan overzetten naar het Nx paneel via de SD kaart. Het paneel kan dan eenmalig deze informatie overlepelen van de SD kaart naar het intern geheugen en kan dan zonder de SD kaart al jouw wissels schakelen.

Het leukste van dit project zal zijn dat het paneel niet alleen maar wissels voor je schakelt, maar het paneel gaat op zoek naar een beschikbare route waarbij bezette sporen kunnen worden meegenomen in de route bepaling.

Omdat ik er veel toegevoegde waarde inzag, heb ik besloten om ook de Xpressnet bus te implementeren. Hiermee krijgt het paneel de mogelijkheid om niet alleen artikelen via de I2C bus te schakelen maar ook om al je DCC accessoires aan te sturen.

Ik wil gedetailleerde uitleggen gaan geven over:
- Alle mogelijkheden van het Nx paneel
- de hardware structuur met een paar print ontwerpen.
- Een korte uitleg over Xpressnet
- De precieze werking van het programma (dit zal geen saaie post over wat lapjes code worden dus wees gerust)
- En de grafische user interface.

Ik denk dat ik qua voortgang op ca 80% zit. Dat betekent volgens de 80-20 regel dat de laatste 20% van het werk 80% van alle tijd zal opslokken  ;). Ik zal stuk voor stuk alle deelcomponenten van het systeem moeten testen.

Ik hoop dat sommigen van jullie het interessant zullen vinden. Ik heb ook niet alle laatste dingetjes tot in de kleinste details uitgekiemd, dus als iemand in de loop nog een goed idee krijgt dan kunnen we zien of het er in past of niet. ;)

Mvg,

Bas


Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Hennik op 12 april 2021, 18:48:07
Zeker, zeer interessant!
Ik weet niet hoe ver je bent met Xpressnet, maar is het misschien een idee om dat zodanig abstract te integreren, dat het ook makkelijk te vervangen is door Loconet?
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Servé op 12 april 2021, 19:20:47
Leuk idee! Ook ik zou meer voorstander zijn van Loconet, maar ik snap ook heel goed dat Xpressnet wat makkelijker te implementeren is. Over eenzelfde idee heb ik ook al eens nagedacht, maar verder dan een schets is het niet gekomen. Mocht je nog vragen hebben over beveiliging enzo, hoor ik het wel :)
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: ATB op 12 april 2021, 19:51:12
Interessant. Ik ga dit volgen.

Ted
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 12 april 2021, 20:41:38
De smaak voor Loconet snap ik maar al te best. Het is mijn optiek bij verreweg de beste bus met een peer 2 peer systeem. Dat vind ik ook het nadeel van Xpressnet, je hebt een centrale nodig. Bij mijn onderzoek, is dat praktisch elk Loconet apparaat behoorlijk aan de prijs is. En Xpressnet draait op iets goedkopere spulletjes. Ik heb speciaal daarom een z21 start gekocht voor dit project. Ik kwam per toeval een losse z21 tegen voor €90 zonder multimaus die had ik maar meteen op de kop getikt.

Volgens mij hoef ik voor loconet qua hardware niets aan te passen maar dat komt ter zijner tijd wel.

Per toeval had ik nog een Rs485 module slingeren, en een protoshield en een schakelende voeding en een uno. Dus toen ik meteen dat protoprintje in elkaar gesoldeerd. Ronald K, wees op een goede libary en ik had die Xpressnet bus aan de praat voordat ik het doorhad.
(https://i.imgur.com/MXFyTme.jpeg)

Maar goed de mogelijkheden:

Omdat plaatjes meer duidelijk maken dan woorden heb ik een simpele collage gemaakt.

(https://images.beneluxspoor.net/bnls/deleteme-60748a3b482ab.png) (https://images.beneluxspoor.net/bnls/deleteme-60748a3b482ab.png)

Het basis systeem draait op de I2C bus. Aan deze bus kan ik tot maximaal 8 IO printen hangen met elk 16 IO. Je kan dus tot 128 dingen aansluiten. En dit kan van alles zijn. Magneetwissels, LEDs, terugmelders, schakalaars, druktoetsen, relais, ontkoppelaars etc. De IO printen komen ook in meerdere varianten om de verschillende artikelen aan te kunnen sturen. Er komt een IO print voor het schakelpaneel waarop je direct LEDs en schakelaars kan solderen, en voor onder de baan komen dan iets andere printen met bijvoorbeeld mosfets en relais om de magneet artikelen te kunnen schakelen. Er komt ook een versie met stroomdetectie voor de terugmelding. En deze printen krijgen natuurlijk wel schroefterminals. En misschien dat ik dit combineer met de okkie printen die sommigen van jullie wel kennen.

De I2C bus is niet bekend voor zijn robuustheid op lange afstanden. Het is hier de bedoeling dat het schakelpaneel niet verder dan ~1.5m wordt bekabeld aan de slaves onder de baan.

Het maakt ook niet uit of je de basis print fysiek onder de baan aanbrengt of aan het schakelpaneel vastmaakt.

De bezetmelders in dit verhaal zijn niet bijzonder belangrijk. Je hebt ze niet nodig en je kan prima zonder. Het is natuurlijk wel een leuke nice-to-have. Bezetmelders kunnen twee dingen doen in dit verhaal. Als eerste kan je ze in het computer programma linken aan een output voor een ledje. Het ledje zal dan branden wanneer de bezetmelder een trein of wagon detecteert. Dit kan bijvoorbeeld handig voor in een schaduwstation waar je slecht zicht op heb. De bezetmelders kunnen tevens worden meegenomen in de beveiliging zelf.

Je kan hierbij denken aan wissels die blokkeren tot dat een trein zijn eindmelder bereikt heeft en de route plannen kan een passeerspoor gebruiken als een bepaald spoor op de route al bezet is. En door de aard van het Nx beestje zelf, kan je natuurlijk ook niet per ongeluk een wissel verkeerd zetten  ::).

Het is ook mogelijk om de statussen van de bezetmelders ook uit te zenden op de Xpressnet bus. Daar zou je misschien dan iets leuks mee kunnen doen. Als het goed is, doen sommige centrales waaronder de z/Z21 hun eigen bezetmelders ook doorsluizen naar de Xpressnet bus. Zo kan het Nx schakelpaneel ook gebruik maken van de reeds aanwezige melders. Maar first things first  :police:

Als ik na het project nog tijd en zin over heb  :P dan kan ik misschien iets leuks bedenken om een trein te laten pendelen. Het aansturen van een trein via arduino & Xnet is me immers al gelukt.

Mvg,

Bas




Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 19 april 2021, 18:09:09
Beste mensen,

Afgelopen week heb ik hevig geworsteld met de GUI. Ik moest veel dingen inbouwen en veel dingen uit het project slopen. Gelukkig ben ik erg goed in dat laatste, hehe  ;D

De GUI is voor mij nu erg belangrijk omdat ik hem nodig had om de data te maken voor de SD kaart. En vandaag is dat nu eindelijk gelukt.

Dit is hoe het er nu uit ziet. Ik heb meteen van de gelegenheid gebruik gemaakt om een voorbeeldje te maken van hoe je het moet instellen.

Stap 1 teken je layout. Dit doe je door eerst op 'M' of 'm' te drukken en vervolgens kan je vanaf de rechterkant dingen slepen naar hun plek. Met de pijltjes toetsen kan je dingen draaien. Als je niks aan het slepen ben, kan je de met de pijltjes toetsen de hele layout verplaatsen met 1 vakje per keer.
(https://images.beneluxspoor.net/bnls/deleteme-607d9599d3c50.png) (https://images.beneluxspoor.net/bnls/deleteme-607d9599d3c50.png)

Als je het baanplan getekend heb, moet je het programma vertellen wat wat is en wat waar zit op aangesloten. Alle componenten hebben een 'ID' nodig. Dit kan instellen door eerst op 'N'/'n' te drukken. Dan verschijnt er de tekst 'SETTING ID' in het zwart groene scherm. Als je vervolgens op een component klikt, dan vult het scherm zich met onderstaande informatie.
(https://images.beneluxspoor.net/bnls/deleteme2-607d988ff071a.png) (https://images.beneluxspoor.net/bnls/deleteme2-607d988ff071a.png)
Je kan met de numerieke toesten, backspace en pijltjes links/rechts het getal aanpassen. Als je dat voor alle items gedaan heb, moet je de IO informatie instellen.

Als je met dit programma bezig is, dan zou je al iets van een schakelpaneel of schema gemaakt moeten hebben. Ik heb nog geen hardware dus ik heb het een en ander op papier gekalkt.

Er zijn in totaal vier dingen je moet invullen. Het ID zoals hier boven beschreven, de input pin, de output pin en wat voor type het is. Let op dat niet alle objecten input pinnen en output pinnen hebben. Een wissel heeft geen input, alleen een output en als het een DCC wissel betreft dan heeft hij geen van beiden. Een start stop knop heeft in principe alleen een input, maar ik wil ook nog een ledje toevoegen zodat je kan zien wat je als laatste heb ingedrukt. In dit voorbeeld heb ik geen leds toegevoegd. De bezetmelders hebben hier zowel een input als een output pin. De input pin zit dan aangesloten op de bezetmelder zelf en er zit een ledje op het schakelpaneel. Deze is natuurlijk optioneel, maar het is natuurlijk leuk om te hebben.

Dan het schema. Ik raad aan om het plaatje eerst 90 graden te draaien, ik heb daar nog steeds een onenigheid mee met mijn hosting site  :o

Ik heb hier 1 basis print en 3 IO modules op getekend. IO module I zit direct in de basisprint, en de andere twee zitten met een rj12 kabel aangesloten onder de baan.
(https://i.imgur.com/CQNFpCt.jpeg)
(N.A. is Not Available, pin 8 en 16 zijn niet gebruikt.)

Op print I zitten alle 7 start/stop knoppen en 7 ledjes voor de bezetmelders aangesloten.
Op print II zitten de 7 bezetmelders aangesloten
Op print III zitten de magneet wissels aangesloten

Merk ook op dat de pinnen worden doorgenummerd. Dus IO print I heeft 1 t/m 16, print II 17 t/m 32 en print III 33 t/m 48

(https://i.imgur.com/WNASYdQ.jpeg)

Het is even een klusje maar als je geordend adhv je schema te werk gaat dan moet je er wel uitkomen.  (y)

Hier een voorbeeldje. Terugmelder #1 is aangesloten op pin 17, dat is dus de input pin en de bijbehorende output pin is aangesloten op pin 1 (dus op het schakelpaneel).
(https://images.beneluxspoor.net/bnls/deleteme2-607d959dbb4b1.png) (https://images.beneluxspoor.net/bnls/deleteme2-607d959dbb4b1.png)

Het vierde ding wat je moet invullen hier heet IO type en hier vertel je aan het programma wat voor type IO het is. Een wissel bijvoorbeeld kan je aansturen met pulsen en daar heb je IO voor nodig. Je kan een wissel ook continu schakelen als je aandrijvingen zijn voorzien van afschakelingen. En dit kan je doen met 2 losse IO maar dit kan je doen met een relaitje en 1 IO. Hoe je je wissel aanstuur, vul je dus in bij IO type. Het wijst zich vanzelf de weg. Je kan hier dus ook opgeven dat het om een DCC aangestuurde wissel gaat. In dit geval, doet het schakelpaneel niks met de IO, maar verstuurt hij een instructie over XpressNet om een DCC wissel te schakelen.  :police:

Op dezelfde manier hoop ik ook dat het paneel instructies via de Xpressnet bus kan ontvangen over de status van bezetmeldingen. Ik heb begrepen dat sommige centrales zo 'aardig' zijn dat ze ook bezetmeldstatussen over de XpressNet bus versturen  :angel:.

Wat voor vandaag het belangrijkste is, zal voor jullie wel het saaist zijn  ::). Het programma doet nu alle informatie opslaan op drie plaatsen in twee bestanden. In het eerste bestand wordt alles vastgelegd. Dit bestand wordt dan weer gebruikt voor het openen zodat je verder kan waar je gebleven was. En in het andere bestand ligt de layout informatie over twee blokken verdeeld. Het eerste blok bevat de informatie met alle traject elementen. Hier liggen de X en Y coordinaten, de types (lijntje, bocht, wissel etc) en de hoeken van alle elementen. In het 2e blokje ligt de informatie over de IO vastgelegd. Hier staan dus: het ID, de input pin, de output Pin en het IO type

// ID, type, input, output
[IO]
1,8,0,0
1,1,1,0
2,8,0,0
3,8,0,0
4,8,0,0
3,1,3,0
7,3,23,15
6,3,22,14
5,3,21,13
4,3,20,12
3,3,19,11
5,8,0,0
6,8,0,0
7,8,0,0
8,8,0,0
4,1,4,0
5,1,5,0
6,1,6,0
7,1,7,0
2,1,2,0
1,2,17,9
2,3,18,10
0,0,0,1
0,0,0,1
0,0,10,0

De 2e update vanaf deze zal kort en niet zo heel interessant is. De volgende stap in het proces is dat de arduino de informatie van de SD kaart byte voor byte ontcijfert en opslaat op een plekje op het I2C EEPROM geheugen.

Ik heb nog een interessant gesprek met Peter Kleton gehad. Hij was zo aardig me nog wat details uit te leggen over de beveiliging van het originele NX systeem. Hij was namelijk nieuwsgierig naar hoe ik de beveiliging in gedachte. Dus @Peter, bedankt voor de informatie  ;)

Het leek me ook wel leuk om daarover ook een korte update te houden  ;)

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 20 april 2021, 22:19:22
De beveiliging.

Hoewel het originele idee van dit NX schakelpaneel get gemakkelijk bedienen van wissels was, wilde ik vanaf dag 1 ook al bezetmelding en ledjes inbouwen voor visuele feedback. Dat leek me wel handig voor schaduwstations enzo.

Maar als je zo bezig bent met bezetmelding dan duurt het niet lang voordat je doordenkt en op beveiligingen uit komt. Met dank aan Peter Kleton, wil ik simpel de kern uitleggen hoe NX in het echt beveiligde. Er konden geen kruisende bewegingen tegelijk worden gelegd. Als delen van een route gereserveerd of bezet waren konden deze delen niet voor een andere route gebruikt worden. Elke wissel werd hierbij teruggemeld. Pas zodra een wissel weer op kwam, kon de wissel meteen worden gebruikt voor een nieuwe route. Op deze manier werden kruisende routes fysiek uitgesloten.

Omwille van praktische redenen, wil ik niet elke wissel gaan terugmelden. Het zou in software niet eens zo bijzonder lastig worden, maar bij grote emplacementen zou het misschien te veel IO opslurpen. Bovendien is een wissel terugmelden elektronisch gezien ook nog wel lastig. Als ik dit zou doen, zou ik LDR's toepassen omdat dat wagons en locs zou detecteren je zou niet moeilijk hoeven te doen door met een dremel in al je wissels te zagen. Maar ook elektronisch gezien, komt er gewoon veel bij kijken.

Wat ik wel wil toepassen, is dat een gelegde route gereserveerd wordt opdat de route niet kan worden onderbroken voordat de trein zijn eindbestemming heeft bereikt. Pas wanneer een trein de bezetmelder bereikt heeft op het spoor van eindbestemming worden alle gereserveerde wissels en stukken spoor weer vrijgegeven. Zodat je ze kan gebruiken voor een nieuwe route. 

Een andere beveiliging die ik wil toepassen, zal simpelweg bestaan uit een inrijsein. Bij dit sein kan ik optioneel nog iets van een ABC remmodule of een afschakelbare sectie bij versieren. Het doel is dus te voorkomen dat een trein je emplacement kan op rijden wanneer de wissels niet goed liggen. Het inrijsein dient dan alleen groen te tonen, wanneer er een geldige route gelegd is.

Zo wil ik ook proberen om uitrijseinen toe te voegen. Het plan is dat ook een uitrijsein groen toont wanneer er een route wordt gelegd vanaf dat uitrijsein. Dit uitrijsein moet dan vanzelf weer rood tonen, wanneer de trein van het emplacement is. In de praktijk zullen de uitrijseinen standaard op rood staan. Dit moet dan voorkomen dat een trein ooit zou kunnen doorschieten op het spoor van bestemming.

Als alles een beetje meezit, moet het dan fysiek onmogelijk worden om handmatig een ontsporing of botsing te veroorzaken  :police:

Het leek me ook wel leuk om een sleutelschakelaar toe te voegen om een schakelpaneel (of alle seinen?) te kunnen blokkeren.
(https://hackerstore.nl/Afbeeldingen/523klein.jpg)
Voor thuis is het natuurlijk niet zo interessant, maar op een clubbaan daarentegen kan het misschien leuk zijn?

Als andere mensen nog puntjes van kritiek of mogelijke goede ideeen hebben, schroom je vooral niet  ;)

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: meino op 20 april 2021, 23:10:34
De smaak voor Loconet snap ik maar al te best. Het is mijn optiek bij verreweg de beste bus met een peer 2 peer systeem. Dat vind ik ook het nadeel van Xpressnet, je hebt een centrale nodig. Bij mijn onderzoek, is dat praktisch elk Loconet apparaat behoorlijk aan de prijs is. En Xpressnet draait op iets goedkopere spulletjes. Ik heb speciaal daarom een z21 start gekocht voor dit project. Ik kwam per toeval een losse z21 tegen voor €90 zonder multimaus die had ik maar meteen op de kop getikt.

Bas ken je deze site https://mrrwa.org/loconet-interface/ (https://mrrwa.org/loconet-interface/) ?

Overigens ik gebruik Koploper om mijn pseudo NX tableau aan te sturen. Die regelt alles met routes.

Groet Meino
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Martin Hornis op 20 april 2021, 23:38:58
Hallo Bas,

Heel mooi dat je met NX aan de slag gaat. Ik ben benieuwd wat het gaat opleveren. Zelf ben ik met het Track-Control-systeem van Uhlenbrock aan de slag gegaan. Maar daar hangt een minder leuk prijskaartje aan. Een collegamodelspoorder heeft het station van Pontresina nagebouwd. De Uhlenbrock-oplossing vergt ca. EUR 6.000.
... Een wissel heeft geen input, alleen een output ... Een start stop knop heeft in principe alleen een input, maar ...
En hier raak ik de draad kwijt. Waarschijnlijk bedoel je iets anders dan dat je schrijft.

Een wissel heeft een elektrische input nodig. Waarschijnlijk bedoel je: Een wissel wordt niet op een inputmodule aangesloten, maar op een outputmodule.
Een start-/stopknop geeft in principe een outputsignaal. Waarschijnlijk bedoel je: Een start-/stopknop wordt in principe op een inputmodule aangesloten.
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Martin Hornis op 20 april 2021, 23:57:15
a) Pas wanneer een trein de bezetmelder bereikt heeft op het spoor van eindbestemming worden alle gereserveerde wissels en stukken spoor weer vrijgegeven.
.
b) (https://hackerstore.nl/Afbeeldingen/523klein.jpg)
Voor thuis is het natuurlijk niet zo interessant, ...
a) Dan moet de trein een bepaalde maximale lengte hebben. Zoiets is vaak een vereiste bij het 2-rail-systeem. Bij het 3-rail-systeem werkt het juist andersom: Als de 1e bezetmelder van het aankomstblok vrij komt (nadat het bezet is geweest!) dan worden alle gereserveerde wissels en stukken spoor weer vrijgegeven.

b) In mijn vorige voedingssysteem had ik een sleutelschakelaar. Bij kortsluiting op de baan werd alles uitgeschakeld. Slechts met een sleutelschakelaar kon alles weer ingeschakeld worden. De sleutel kon ik daarna er uit halen en meenemen. Daardoor konden de kinderen overdag met treinen rijden. Bij problemen moesten ze helaas op papa wachten. Daardoor waren ze extra voorzichtig.
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 21 april 2021, 10:23:44
Hallo Martin,

Ik vind het track control systeem erg interessant. Als je het werkend heb, wil ik natuurlijk wel een filmpje zien  :P Die blokjes zijn natuurlijk handig omdat je ermee meerdere panelen kan maken, maar aan de andere kant. Het komt niet vaak voor dat je schakelpaneel verandert. Ik vind 6000 euro wel erg veel geld.

Citaat
... Een wissel heeft geen input, alleen een output ... Een start stop knop heeft in principe alleen een input, maar ...
Ik zei het het goed. Ik beredeneer namelijk vanuit de software gezien. Bij het inleren van een artikel kan je een input pin en een outpin meegeven. Dit is belangrijk omdat de arduino alle I2C inputs en outputs moet configureren en moet uitlezen.

In het systeem zoals ik het bedacht heb. Komt een wissel alleen maar voor als output apparaat. Het is iets wat je aanstuurt en niet iets wat je inleest. En dat is het verschil. Een start-stop knopje daarentegen, is een input. Die wordt ingelezen. Optioneel komt er dan de optie bij dat je ook nog een output pin kan configureren zodat je een extra ledje kan toevoegen aan het schakelpaneel. De software is met name geintereseerd in de inputpinnen omdat die nummers een rol spelen bij het geheugen opslag op de EEPROM.

Natuurlijk hebben de wissels wel input nodig, daar heb je gelijk in. Er moet natuurlijk iets zijn wat aan de wissel vertelt wat de wissel moet doen. Nadat je een start en stopknop heb ingedrukt, doet de software die de route gaat zoeken, bijouden welke wissels er wel of niet omgelegd moeten worden. Als de route software de route gevonden heeft, dan worden alle wissel instructies uitgedeeld, zijnde dat over XpressnNet of de I2C bus.

Ik kan overigens wel de optie toevoegen om alsnog een extra input pin voor een wissel te gebruiken. Dat stelt je in staat om bepaalde wissels individueel te schakelen. Goed idee Martin  ;D

Mvg,

Bas

Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Geert2 op 21 april 2021, 11:34:40
Leuk project om te volgen. Hier ga ik wel wat van gebruiken voor mijn projecten.  ;)

Ik ben met een gelijkaardig project bezig maar dan op basis van LocoNet zelfbouw.

Geert
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: gvandersel op 21 april 2021, 12:16:27
Waarom de normale drukknoppen niet als matrix aangelsoten? Kan je zeker bij grotere borden een heleboel pennen schelen (vanaf 6 drukknoppen scheelt het).
Omdat je eNtrace en eXit knop tegelijk moet indrukken heb je dus twee matrixen nodig.

Groet,

Gerard van der Sel.
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 21 april 2021, 13:20:30
Dat is een goed idee, Gerard. Ik moet wel eerste onderzoeken of ik het kan toepassen. Ik heb mcp23017s vaker gebruikt met een 4x4 toetsenmatrices. Ik hoopte eigenlijk dat 128 IO wel genoeg zou zijn voor alle toepassingen.

De IO modules voor op het schakelpaneel had ik zo bedacht dat je tussen 2 aansluitpunten een led of een schakelaar kon aansluiten.

Ik heb 1 rij met de 8 IO en een rij die is verbonden met een 470 Ohm weerstand array naar gnd. Dit houdt in dat je direct een ledje kan aansluiten of dat je ook direct een schakelaar kan aansluiten. Voor inputs maak ik standaard gebruik van de interne pull-up weerstanden van ca 100 kOhm. Als je de input dan met een schakelaar verbindt aan de 470 Ohm weerstand dan maak je een weerstandsdeling. Maar aangezien 470 Ohm nagenoeg niks is tov 100 kOhm wordt dat als een logische 0 gezien.

(https://images.beneluxspoor.net/bnls/deleteme3-6080054fb19fe.png) (https://images.beneluxspoor.net/bnls/deleteme3-6080054fb19fe.png)

(https://images.beneluxspoor.net/bnls/deleteme1-60800331b7f4f.png) (https://images.beneluxspoor.net/bnls/deleteme1-60800331b7f4f.png)

(https://images.beneluxspoor.net/bnls/deleteme2-608003367c6f0.png) (https://images.beneluxspoor.net/bnls/deleteme2-608003367c6f0.png)

Voor een matrix moet ik natuurlijk een andere print maken. Ik wil niet beide IO poorten van de mcp23017 hiervoor combineren. Ik vind 64 inputs voor een IO blokje net even te veel van het goede. Als ik met beide poorten elk een matrix maak dan ga ik van 16 IO naar 32 IO.

Dat zal er zo dan zo ongeveer uit zien in het schema
(https://images.beneluxspoor.net/bnls/deleteme4-608007dfe7976.png) (https://images.beneluxspoor.net/bnls/deleteme4-608007dfe7976.png)

Ik weet dat dit niet precies is wat jij bedoelt. Bij mij is er geen onderscheid tussen een startknop of een stopknop (of eNtrace en eXit). Een knop kan als beide fungeren. De software bekijkt welke knop als eerste is ingedrukt en kiest die als start knop. Ik vond het namelijk een beetje onzinnig om daarvoor daadwerkelijk verschillende knoppen te maken.   

In theorie kan ik zo ook een matrix voor leds gebruiken maar ik weet niet of ik dat ook ga doen.

Back to the drawing board  :police:

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Peter Kleton op 21 april 2021, 14:40:31
Ik heb voor mijn relais gestuurde N X systeem een gele knop als N  knop en een zwarte knop als X  knop.
Peter
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: gvandersel op 22 april 2021, 07:40:16
Bas,

Gebruikelijk is om een diode en een schakelaar in serie te plaatsen. Deze diode voorkomt dat je foutselecties krijgt bij indrukken van meerdere schakelaars. Is in het geval van een NX tableau misschien niet nodig, maar denk er aan je drawingboard even aan.

Groet,

Gerard van der Sel.
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 22 april 2021, 08:00:54
Ja ik weet het  :o. Mijn pauze was op en ik had geen tijd meer om er diodes in te krabbelen   ;D. Ik heb van Timo geleerd dat dat effect 'Ghosting' heet. In ieder geval bedankt, Gerard voor je input. Het wordt gewaardeerd  :angel:

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 09 juni 2021, 20:48:00
Ik heb weer iets te melden. Ik heb afgelopen weken er niet veel aan gewerkt. Lichtelijk vermoeid, werk, klusjes, afwezigheid van zin. Soms moet je eens wat anders doen, zoals een beetje scenery aanbrengen of een treintje verven, gewoon ff iets simpels.

Het was even worstelen met het overpompen van de data. Ik moest aan zowel GUI als arduino kant nog het een en ander ontwikkelen en debuggen.
De eerste stap hier was om te checken of de data zoals de GUI het opslaat, goed door de Arduino kan worden uitgelezen.

Hier een simpele screenshot. Links zoals de data op het bestandje staat en rechts dezelfde data maar dan uitgelezen door de arduino en byte voor byte naar het scherm gestuurd. So far so good.

(https://images.beneluxspoor.net/bnls/dataDump-60c1011998434.png) (https://images.beneluxspoor.net/bnls/dataDump-60c1011998434.png)

Toen kwam het volgende, de arduino moest alle data gaan 'parsen' of verwerken. Alle data op de SD kaart is in ASCII formaat opgeslagen. Dat betekent dat het getal 100 bijvoorbeeld niet daadwerkelijk 100 binair is, maar '1', '0' en '0'. En in decimale waardes zoals wij dat begrijpen is het dan 49, 48 en 48.

Op de volgende screenshot zie je links een kleine code snippet die de bytes verwerkt. De kern van de zgn. state machine staat er in. En de case of state genaamd 'makeNumber' die de getallen omzet van ascii naar decimaal.

Aan de rechter kant zie je weer dezelfde SD data voorbij komen, maar dan ietsjes anders opgeschreven.
(https://images.beneluxspoor.net/bnls/dataProcessed-60c10119a49b2.png) (https://images.beneluxspoor.net/bnls/dataProcessed-60c10119a49b2.png)

Vervolgens... ja het treintje is er nog niet.. moest de verwerkte data worden opgeslagen in het EEPROM geheugen. De reden dat dit nodig is, is om sneller dingen op te kunnen zoek. Als je in een SD kaart gaat zoeken, naar een bepaalde getallen reeks dan moet je elke laatste byte uitlezen... elke keer opnieuw wanneer je iets nodig heb.

Om een beetje snelheid en makkelijkheid te winnen. Worden alle inputs en outputs op plaatsen gezet die overeen komen met een daadwerkelijk input nummer. Als ik dan alle inputs ga uitlezen en ik zie dat input 8 van 'state' is veranderd. Dan gebruik ik hier nummertje 8 om het adres te bereken op het EEPROM en dan kan ik hem in 1x ophalen.

Volgende screenshot is wat je krijgt te zien wanneer ik een knopje in druk op het schakelpaneel. Als ik een knopje indruk dan weet de arduino daar nu een start en een stop knop aan te koppelen. Wie start en wie stop is, is afhankelijk van welke knop ik als eerste indruk.
(https://images.beneluxspoor.net/bnls/buttonPressed-60c101198efdb.png) (https://images.beneluxspoor.net/bnls/buttonPressed-60c101198efdb.png)
Behalve dat je de input nummers zie, zie je ook nog andere getalletjes. En die getalletjes zijn belangrijk. Daarin staan onder anderen de X en de Y coordinaten van de start en stopknoppen zoals ze bestaan in de GUI. Hier wordt dus de slag gemaakt tussen inputs naar begin en eind coordinaten van het route zoeken.

Voornamelijk voor mijn eigen gemak, heb ik de GUI aangepast zodat hij ook X en Y posities van de elementen op het scherm toont, wanneer ik iets aanklik. Zo kan ik nagaan of de getallen die ik te zien krijg wanneer ik een knopje indruk overeenkomt met de daadwerkelijke positie op de GUI.

(https://images.beneluxspoor.net/bnls/switchPanel-60c10119caaa7.png) (https://images.beneluxspoor.net/bnls/switchPanel-60c10119caaa7.png)
Achteraf gezien zou het beter geweest zijn, als de getallen van de screenshot ook matchen. Zo konden jullie ook zien dat het daadwerkelijk werkt. Ik zeg natuurlijk van wel, maar is it?  ;D

Nu ik weet waar ik begin en waar ik moet eindigen, moet ik de route gaan zoeken. Dat klinkt heel moeilijk maar het valt eigenlijk wel mee. Men heeft al sinds voordat ik geboren ben algoritmes voor dit soort zaken bedacht. En het helpt ook erg mee, dat ik slechts twee kanten op kan bij een wissel.

Als de routezoeker bij een vertakkende wissel aankomt, dan neem ik als volgende stuk altijd dat wat aan de niet-buigende kant ligt. De truuk is hier dat je onthoudt over welke wissels je allemaal komt. Elke keer dat de routezoeker de stop knop niet vindt. Dan ga je terug naar de laatst gepasseerde wissel en dan pak je de gebogen kant. En dit blijf je net zo lang herhalen totdat je op een keer je stopknop tegen komt. Het kan natuurlijk voorkomen, dat er geen route beschikbaar is. Misschien omdat het spoor bezet is, misschien omdat je de verkeerde knoppen indrukt waar tussen je niet in een keer kan rijden. In dat geval moet er een rood ledje gaan knipperen om aan te duiden dat er geen route is gevonden.

Ik ga hier nog wel wat werk aan hebben, denk ik zo  8). Waarmee ik me nu wil gaan bezig houden, is het vinden van naburige railstukken. Ik had in mijn eerste opstelling van het eeprom geheugen gepland om op voorhand (dus in de GUI) al vast te leggen wat de grenzende elementen zijn. Bij het uitwerken, kwam ik er achter dat dat onnodig veel geheugen zou vreten.

Wat ik nu wil doen is het volgende. Alle railstukken hebben elk 4 bytes. Dat zijn een X en een Y coordinaat, een type (bocht, wissel links, wissel rechts, of overig (alle rechte stukken dus ontkoppelaars, bezetmelders, knoppen etc) en de richting waarin railstuk ligt. Aan de hand van deze vier gegevens kan de Arduino zelf berekenen wat de X en de Y coordinaten zijn van het aangrenzende stuk.

Ik heb onderstaande tabellen gemaakt om me hier bij te helpen. Er bestaan vier tabellen met 0, -1 en 1 voor de 4 verschillende railstukken zoals ik hierboven heb beschreven. Ik neem dus het type en de richting, en aan de hand van die twee gegevens kan ik 2 getallen halen uit een van de tabellen die ik dan kan verrekenen met de huidige X en Y coordinaten om zo het naburige element op te sporen.
(https://images.beneluxspoor.net/bnls/offsets-60c10119c8073.png) (https://images.beneluxspoor.net/bnls/offsets-60c10119c8073.png)

Ik hoop dat ik een beetje duidelijk ben geweest in mijn uitleg. Ik kan me voorstellen dat het A veel is en B erg droog is. Maar het is wat het is  ;D

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 05 april 2022, 21:55:10
Zo weer een klein jaar verder. Hoewel ik een lange tijd niet zo veel gedaan heb, heb ik niet stil gezeten.

Naarmate het werk vorderde, begon ik het vertrouwen enigszins te verliezen in het computer programma en de SD kaart. En dan bedoel ik niet dat het niet zou lukken, maar meer dat het te ingewikkeld werd. Het moest simpeler worden.

Buiten dit project om heb ik ook heel projectjes on the side gehad. Waaronder dit simpele printje.
(https://i.imgur.com/IWbn5AZ.jpg)

Het idee van dit printje was, om er tot 16 schakelaars aan te knopen en aan elke schakelaar kon je een wissel naar keuze inleren. Dit inleren was een nieuwe techniek die ik wilde proberen. Het enige wat je hoeft te doen, is het schuifje omzetten, met je multimaus oid een wissel om te zetten en een van je schakelaars om te zetten. En als je klaar ben, zet je het schuifje weer terug en dan kan je alle ingeleerde wissels bedienen. Mooi makkelijk dacht ik zo.

Precies dit wilde ik ook gaan gebruiken voor het NX project. Elk 'ding' (wissel, start/stop knop, bezetmelder, sein, noem het op) moest elk een knopje en een ledje krijgen. Het idee was nu geworden om eerst alle 'dingen' te koppelen aan een DCC adres zoals ik hierboven heb beschreven (behalve de start/stop knopjes en daarna zouden de rijwegen zelf moeten worden ingeleerd.

Rijwegen inleren moet je dan doen, door eerst een startknopje en een stopknopje in te drukken, hierbij is de volgorde niet van belang. En daarna kan je alle wissels toevoegen door op het knopje te drukken van de desbetreffende wissels. En mocht de wissel verkeerd staan, dan druk je gewoon nog een keer op hetzelfde knopje en dan is de wissel omgekeerd. Voor grote emplacementen zal dit een wel klusje zijn.

De hardware
Een ding wat me al een tijdje dwars zat, was dat ik geen werkende alternatief kon bedenken voor Uhlenbrocks track control system. Daar was ik stiekem toch een beetje jaloers op. Ik moest dat ook hebben, maar hoe?

Na wat hevig denkwerk op de fiets van en naar werk, ging bij mij eindelijk het gloeilampje aan.

Ik heb dit bedacht:
(https://i.imgur.com/bhZ68Or.jpg)

(https://i.imgur.com/F3w4ZNS.jpg)
Het betreft zeshoekige printjes die je in een soort honingraster kan aanbrengen. Er zijn printjes voor wissels, start/stop knoppen, bezetmelders en ook drieweg wissels en Engelse wissels.

In tegenstelling tot het uhlenbrock systeem, kan je deze zeshoekjes niet direct in elkaar prikken. Daarvoor heb ik aparte IO printen gemaakt die je met zgn. Grove kabels kan verbinden. Deze kabels kan je los kopen en je kan ze niet verkeerd om aansluiten.

Je kan tot maximaal 8 van deze printen doorsteken (je kan ook het hoekje om gaan) en op elke print kan je 8 'items' aansluiten. Dit betekent dat je gelimiteerd ben aan maximaal 64 verschillende items. Dit is dus inclusief alle start/stop knopjes en wissels. En als je dan ruimte nog over heb, kan je eventueel nog een bezetmelder of sein ding gebruiken. En merk op dat een Engelse wissel en drieweg wissels 2 IO kabels nodig hebben.
(https://i.imgur.com/TVfpuRl.jpg)

Op elektrisch vlak is het niet zo bijzonder ingewikkeld daar kom ik zo op. De uitdaging zat hem meer in het mechanische ontwerp. Alle ledjes en alle drukknopjes omschrijven een cirkel baan.
(https://i.imgur.com/2SNK6BE.jpg)

Merk hier op dat bij het Engelse wissel alle 6 de posities gebruikt voor leds en knopjes.
(https://images.beneluxspoor.net/bnls/deleteme-624c9ae0db12c.png) (https://images.beneluxspoor.net/bnls/deleteme-624c9ae0db12c.png)

(https://images.beneluxspoor.net/bnls/deleteme-624c92867ed7d.png) (https://images.beneluxspoor.net/bnls/deleteme-624c92867ed7d.png)

Het elektrische gedeelte is tamelijk simpel. Door elk kabeltje loopt een 5V, gnd en 2 IO lijntjes. Ik had het zo bedacht dat alle even pinnen voor de knopjes zijn (inputs) en alle oneven pinnen zijn voor de leds (outputs)

Door de leds en weerstanden in deze configuratie te zetten, kan je 2 leds op 1 output pin gebruiken.
(https://images.beneluxspoor.net/bnls/deleteme2-624c928684899.png) (https://images.beneluxspoor.net/bnls/deleteme2-624c928684899.png)

Nu had ik mechanisch ook alles opgelost. Ik had op papier een heel compleet 3D geprint systeem bedacht waarbij je net als dat uhlenbrock systeem alles bij elkaar kon steken. Je hebt dan ingebouwde kabelgoten en met dit honingraster, kan je alle mogelijke sporen plannen tekenen. Ook de IO printen pasten er precies in met de maten. Ik ben alleen dat verrekte noteboek kwijt op dit moment anders kon ik beter mijn visie uiten. Ik vermoed dat ik hem misschien op m'n MSV heb laten liggen  ::).

Maar ik heb nog steeds mijn geodriehoek dus ik zal eerdaags eens een knappe tekening fabrieken van een zo'n zeshoekje. Dan kan je zien hoe je de modules aan elkaar zou kunnen knoppen (en ik heb de tekening nodig om een clublid te strikken om iets te laten 3D tekenen.... en printen  8) )

Mvg,

Bas





Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Martin Hornis op 05 april 2022, 22:28:36
Dat ziet er veel belovend uit.
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Frank 123 op 06 april 2022, 06:45:12
Blijf me verwonderen over de zaken die sommige hier zelf produceren. Dit is er ook een van. Petje af  (y)
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: MOVisser op 06 april 2022, 08:42:50
Maar goed, als je zelf al in dat vak zit......

Dan kan je je daar thuis ook gebruik van maken. (y)
Voor anderen is het een no-go.

Ronald Visser
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 09 april 2022, 18:26:12
Ik heb de eerste printjes in elkaar gesoldeerd. Het is fijn dat er allemaal zo weinig op zit  ::)

Ik heb nu 8 printjes voor 3 wissels en 4 start/stop knopjes gemaakt.
(https://i.imgur.com/5RLBQFu.jpg)


Ik wil ze gebruiken om het station van Haarsem Oost te kunnen bedienen.
(https://i.imgur.com/M77gO0t.jpg)

Ik was alle IO aan het testen, en het viel me op dat de helft niet goed werkte... Ik raakte al een paniek en dacht meteen aan een ontwerp fout ergens... Gelukkig bleken het aan de lange kabels te liggen.

De korte zijn goed
(https://i.imgur.com/c3WnuyC.jpg)

De lange niet
(https://i.imgur.com/zVgFTGp.jpg)

Tijdelijke oplossing:
(https://i.imgur.com/KB164Pj.jpg)

Het idee van bedienen is dat je 2 knopjes ingedrukt houdt. Beide printjes moeten dan blauw licht geven bij een geldige combinatie en de rijweg moet dan ingesteld worden.

Als laatste heb ik nog een filmpje van de ledjes (https://i.imgur.com/bjdLq5G.mp4)

Ik wil nu het paneel zelf gaan maken. Omdat ik nog niet de 3D geprinte blokjes heb, wil ik het eerste paneel gaan maken van een plaatje triplex, waarin ik alle gaatjes boor.

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Martin Hornis op 10 april 2022, 22:41:42
Ik ben benieuwd....
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 12 april 2022, 20:26:29
Ik heb vandaag even wat in elkaar 'gekrabbeld'  ::).

Mijn idee was om elk printje in een 3D geprinte behuizing te stoppen. Aan de bovenzijde moeten de zes gaten komen voor knopjes en ledjes. En tussen de poten moet een ruimte komen om kabels door te voeren.

Aan de binnenkant moeten op de hoekjes verdikkingen komen waartegen de zeshoekprintjes moeten komen. De tactile schakelaar behuizingen en de weerstanden passen er dan precies tussen terwijl de ledjes en de zwarte knopjes van de schakelaren door de gaten steken.
(https://i.imgur.com/5T7NpSj.jpg)

Ik wilde de bovenkant ook voorzien van een uitsparing van strepen. Deze uitsparing zou goed zijn om het sporenplan op te tekenen met een stift of met verf. Of... met verwijderbare styreen strips ofzo. Dan kan je er in de toekomst nog wat anders van maken.
(https://i.imgur.com/hYo9UZq.jpg)


De randen had ik ook uit gedacht. In de dubbele rand past precies 1 IO blokje. Als je een wat groter paneel heb, kan je meerdere IO blokjes vast maken aan de randen en dan de randen in elkaar steken. Behalve de dubbele rand, zou ik een enkele en 2 verschillende hoeken nodig hebben om het geheel rond te krijgen. De controller print zou in van de overige randdelen moeten komen.

(https://images.beneluxspoor.net/bnls/hexagons-plural-6255c11282bd6.png) (https://images.beneluxspoor.net/bnls/hexagons-plural-6255c11282bd6.png)

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 12 april 2022, 20:34:50
Ik vergat nog wat!

De printjes en de behuizingen dienen bij elkaar te worden gehouden door een zeshoekjes met 3 uitstekende delen (clipjes). Deze clips klemmen de printplaten in van de onderzijde en houden de kunststofbehuizingen bij elkaar.

(https://i.imgur.com/8Z5R8zE.jpg)
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: MOVisser op 19 april 2022, 19:26:42
Voor de volgers van dit topic:

Ik heb de stukjes ontworpen en ga ze tekenen.
Morgen ga ik de onderdelen als een test printen.

Groet
Ronald Visser
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: NS264 op 19 april 2022, 21:20:10
Als het werkt zou ik er een domeinnaampje aan hangen.
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 19 april 2022, 21:26:41
Citaat
Als wanneer het werkt zou ik er een domeinnaampje aan hangen.
;D ;D ;D
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 06 november 2022, 23:13:16
Ik heb een kleine update. Ik heb inmiddels een klein schakelpaneel geprint. Maar dat gedeelte komt nog.

Door de hoeveel projecten die ik heb, heb ik met regelmaat een 'crossover'. Dan heb ik voor 2 projecten hetzelfde nodig. Zo komt 1 project rustig een half jaartje op pauze te staan terwijl ik iets uitontwikkel in een ander project.

In mijn FunctionBlox project (https://forum.beneluxspoor.net/index.php?topic=104404.msg3222341283#msg3222341283) heb ik namelijk iets gebouwd wat ik voor mijn Nx paneel ook wil hebben.

In mijn allereerste meesterplan had ik een GUI in gedachte. Het idee was dat ik railsstukje voor railsstukje ging kijken wat er aan wat verbonden was. Hoewel dat niet zo zeer heel lastig was, was het best nog wel een gedoe. Je moet eerst kijken in welke richting je bocht, rechte stuk of wissel staat. Dan moet je kijken naar de coordinaten naast je, of daar een railstuk staat. Dan moet je nog controlleren of dat railstuk in de goede richting stond... gedoe allemaal  :-X gauw vergeten die hap..

De ontwikkeling in FunctionBlox die ik wilde hebben, was namelijk het systeem om tussen 2 blokjes (wissels in dit geval) een verbinden te trekken met een enkel lijntje. Dat lijntje is dan feitelijk elke stukje rails tussen 2 wissels.

Op het moment dat een lijntje geplaatst is tussen 2 blokken, ligt de connectie al vast. Dit heeft als voordeel dat het tekenen van een paneel sneller gaat en de arduino kan veel sneller en makkelijker een route zoeken.

Dat inleren van wisselstraten, is opzich wel leuk. Maar ik had op zo'n BMB rijdag daar best wel wat werk aan om alleen al een fiddle yard in te leren in mijn handregelaar. Dus voor kleine panelen is het inleren leuk, voor grote emplacementen is dat route zoeken dus noodzakelijk.

Ik kreeg te horen dat de EMV ook interesse had in een XpressNet aangestuurd paneeltje voor station Eindhoven dacht ik. Nu is mijn systeem nog verre van af dus wilde ik eventjes tussen door een simpele middelweg maken. En dat heb ik. De snelste manier om een Nx stijl paneeltje aan de praat te krijgen is door de combinaties zgn. te hardcoderen in software.

In leken taal: Er komt in de software 1 enkele tabel te staan, waarin alle combinaties liggen. Om wijzigingen te doen, hoef je slechts een paar getalletjes aan te passen. Je hoeft er ook niet echt voor te kunnen programmeren. En dan schiet je het programma met de Arduino IDE in de Arduino en dan:

https://www.youtube.com/v/khs93KNSrBk

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: MOVisser op 07 november 2022, 09:21:18
Bas, je bent heel inventief bezig.  (y)

Dat er verschillende projecten tegelijk lopen is niet anders dan bij de meeste hobbyisten.
Ik heb daar ook "last" van.

Maar zelfs als leek begrijp ik niet wat je aan het doen bent en waarom.
Dat komt zeker door mij, omdat ik niet in deze electonica wereld bekend ben.
Maar zeker niet in de gedachten van het schakelen en aansturen van trein combinaties en de wissel en sein aansturingen.

Ik rij met de hand en bepaal dan zelf de route. :angel:

Maar ga door, anderen hebben daar veel profijt van (y)

Ronald Visser
(de Boxtel serie heb ik bekeken.)
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: mdjr78 op 07 november 2022, 19:01:52
Hey Bas,

Hoeveel knopjes (dus begin- en eindposities) kan je aan de Arduino koppelen?
En wat als je meer knopjes nodig hebt?
Ik neem aan dat twee Arduino's niet met elkaar gaan communiceren.

Groeten,
Werner
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 07 november 2022, 19:51:23
De Arduino zelf kan tot maximaal 22 maar...

Met io extenders tot oneindig. Zelfde met outputs. Daar hebben we schuifregisters chips voor.

Citaat
Ik neem aan dat twee Arduino's niet met elkaar gaan communiceren.
O zeker wel dat kan met rs232, rs485, canbus, loconet, xpressnet, infrarood, bluetooth, Ethernet, I2C, SPI... take your pick  ;D

Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: bask185 op 28 januari 2023, 22:37:38
Ik heb eindelijk weer eens wat te melden.

De Hardware
Ik heb mijn zeshoekjes paneel lichtelijk aangepast. Naar aanleiding van mijn recente endeavors (schakelpaneel PCBs van Ns264 en Hans van den Burgt) had ik bedacht om ook bij de zeshoekjes het printplaat materiaal als front end te gebruiken.

(https://images.beneluxspoor.net/bnls_2023/deleteme-63d589a695e39.png) (https://images.beneluxspoor.net/bnls_2023/deleteme-63d589a695e39.png)

Dit paneel zoals je ziet is 220mm breed en 126mm hoog. Uiteraard is het niet zo mooi zoals the original, maar het kan er naar mijn mening mee door  :angel:
(https://images.beneluxspoor.net/bnls_2022/AE401ED8-5689-4EA7-BCF0-695D31E06FE8-639cb8cc42970.png)

Ik weet niet of dit een mooie grootte is, ze zijn kleiner dan de vorige maar ik denk dat ze nog wel iets kleiner kunnen  ???

De wissel printjes hebben nu alleen nog maar een paar ledjes. Net zoals bij koen (filmpje onderin) wil ik de leds ook uit kunnen zetten met als einddoel alleen de huidige route op te laten lichten. Ik had koens paneel daar eigenlijk niet voor ontworpen dat leds van wissels ook uit konden, maar.. het kan dus. En ik vond het wel een leuk idee om 1 route te highlighten.  (y)
(https://images.beneluxspoor.net/bnls_2023/deleteme3-63d58b098dd9c.png) (https://images.beneluxspoor.net/bnls_2023/deleteme3-63d58b098dd9c.png)

De voordelen zijn:
Ik kan gebruik maken van SMD assemblage dan hoef ik de zeshoekje op een connector na niet zelf in elkaar te solderen
Ik heb aanzienlijk minder 3D geprint materiaal nodig.

(schakelaars moet ik nog vervangen door SMD type)

Onder deze printjes komen nu een een soort ronde of driehoekige torentjes met 3 uitsteeksels waarop je de printen kan klikken. Ik had even gekeken, en als je dit soort printjes strak tegen elkaar zet, dan zie je de naad niet heel erg zitten.
(https://i.imgur.com/Lgd0FmZ.jpg)

Software en bediening
Dan had ik nog iets leuks bedacht omtrent software. Ik had even gebabbeld met Reindert van TrainTastic over het gebruik van zijn software om voor mijn controller wat routes te dumpen. Dat handmatig inleren van al die combinaties  :-X.. ik zag dat niet zo zitten. Dat leidt geheid tot fouten en het is vooral voor grote panelen heel erg veel werk met als gevolg... erg veel fouten.

Ik wil terug naar mijn GUI idee, maar dan met gebruik van andere software zoals TrainTastic. TrainTastic is momenteel nog niet zo ver (ik gelukkig ook niet  :P) maar ik ging kijken naar alternatieven. Voor de duidelijkheid. Ik wil dus dat een GUI voor mij de routes uitspuugt zodat mijn controller snapt wat hij moet doen.

Per toeval is het zo dat het programma Rocrail alle routes voor je uitspuugt. Ik kan dus in Rocrail een baanplan namaken met blokken, dat opslaan en dan heb ik een XML bestandje met... routes.

De routes lopen echter alleen over een wisselstraat tussen 2 blokken. De routes kunnen niet door een blok heen lopen. Eerst dacht ik.. meh jammer nou weer. Maar aan de andere kant, kan ik nog steeds het eindpunt vinden door een recursief zoek algoritme er op los te laten. Dat is opzich niet heel erg ingewikkeld, het was wat tricky om het in code te krijgen, maar dan heb je ook wat.

Ik ging testen met dit fictioneel plan:
(https://images.beneluxspoor.net/bnls_2023/deleteme1-63d589a6ef4d8.png) (https://images.beneluxspoor.net/bnls_2023/deleteme1-63d589a6ef4d8.png)

Rocrail kan voor mij de routes uitspugen tussen twee van die takken. Verder moet ik het zelf uitzoeken. Dat kan alleen door alle mogelijke routes uit te proberen en precies dat doet mijn zoek algoritme.

Ik liet een arduino een route zoeken van blok 1 naar blok 31.
Ik laat hier een datadump zien waarmee ik getest heb. Het resultaat staat in de onderste 5 regels.
(https://images.beneluxspoor.net/bnls_2023/deleteme2-63d589a718284.png) (https://images.beneluxspoor.net/bnls_2023/deleteme2-63d589a718284.png)

De Arduino kon succesvol bepalen dat hij van blok 1 naar 2 moest rijden,
van 2 naar 5
van 5 naar 21
van 21 naar 24
en van 21 naar 31.

Vanaf dit punt hoef ik alleen nog maar op te zoeken welke wissels daarbij horen en de bijbehorende ledjes aan te zetten en de instructies uit te delen.

Als de blokken bezetmelders hebben, is het ook nog relatief makkelijk om om een bezetblok heen te navigeren. Je hoeft er feitelijk niks extra's voor te doen. Alleen tijdens het route zoeken, bekijken of een blok al bezet is of niet, en zo ja -> dat blok negeren.

Citaat
Maar zelfs als leek begrijp ik niet wat je aan het doen bent en waarom.
In kort: ik ontwerp componenten en software waarmee men zelf Nx type schakelpanelen kan assembleren en configureren om zo alle wissels goed te leggen.

Citaat
Ik rij met de hand en bepaal dan zelf de route.
Precies dat doe je met een Nx paneel. Het is geen automatisering of iets dergelijks. Het is slechts een manier van wissels stellen. Ik heb dat in het begin van het draadje uitgelegd. Bij Nx druk je gelijktijdig op twee knopjes die overeen komen met het spoor waarvan je vertrekt en waar je naar toe wilt. Het systeem zorgt er voor dat alle wissels goed worden gezet en zoals ik net zei, om eventueel voorbij bezette blokken heen te navigeren.

Losse wissels stellen is leuk, maar vroeger of later... vergeet je er eentje.

Dit filmpje laat o.a. de werking van dat systeem zien. En dit is wat ik wil dat mijn zeshoekjes dadelijk ook moeten doen.
https://www.youtube.com/v/ncy9wpZGlu0&


Mvg,

Bas
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Marijn op 28 januari 2023, 23:02:26
Hey Bas, mooie vooruitgang boek jij in dit project.

Erg leuk om te zien dat jij ook ArduinoNX aan het bouwen bent. (y)
Ik heb zelf 6 jaar terug ook een NX paneel gemaakt (en later ook toegepast) maar veel minder sjiek en uitgebreid dan die van jou.

https://www.youtube.com/v/9jQuT1Q125A&t=144s

Anywho, ik blijf dit draadje zeker volgen ! ;)
Titel: Re: De ontwikkeling van een nieuw Nx schakelpaneel.
Bericht door: Servé op 29 januari 2023, 09:00:03
@Marijn, welke drukknoppen heb jij gebruikt?