BeneluxSpoor.net forum

Wat zijn we aan het bouwen? => Al het andere! => Topic gestart door: Rasp op 17 december 2021, 23:42:49

Titel: Raspberry Railways
Bericht door: Rasp op 17 december 2021, 23:42:49
Heren,

Even een kleine intro, ik ben Mark en kom uit een klein dorpje bij Alphen a/d Rijn in de buurt.
Zo als zo vele vroeger besmet geraakt en zonder vaccinatie is het een beetje uit de hand gelopen.
De set van vroeger was een klassieke startset van Fleischmann dus zijn we lekker door gegaan met gelijkspanning HO.
Kleine "test" baantjes gemaakt om dingen uit te proberen en in de tussentijd voor materieel verzameld om te rijden.

Ik vind het rijden en het verzamelen van de modelen het mooist. Scenery enzo vind ik niet heel boeiend.
Maar dat is ook het mooie van de hobby, iedereen kan doen wat hij wilt. Beroemde uitspraak van iemand op het forum hier is volgens mij ook dat het net een buffet is en je kan pakken wat je wilt.
Ondertussen een aardige verzameling aan NS spul, maar ik vind genoeg exoten ook leuk zoals de Big Boy, Flying Scotsman of de Krokodil

De mogelijkheden van digitaal rijden vindt ik mooi en wil de baan ook automatisch laten rijden maar ook mogelijkheden hebben voor handbediening.
Toch wil ik mijn loc's die analoog zijn niet allemaal ombouwen.
Gelukkig snap ik wel het een en ander van programmeren en elektronica en ik vind mezelf een aardige tobber dus!!!
Voor me werk reis ik veel en heb dan ook de tijd om dingen uit te zoeken en te bedenken
De ideeen waren er al vroeg, eerst wou ik de baan automatiseren met een oude S5 siemens PLC en een bediening op de PC.
Toen heeft het een en ander aardig stil gelegen ivm ruimte gebrek en andere prio's.
Daarna waren er steeds meer andere mogelijkheden, zelf wat printjes gemaakt en werkte wel leuk als test.
Maar de grote stap kwam met de Raspberry Pi, eerst daar weer wat geprobeerd met diverse boardjes maar was het allemaal net niet wat ik wou.
Nu is laatst de Pico Pi uitgebracht en dat bracht weer meer mogelijkheden!!!

Het idee is nu om de Raspberry Pi als master een python programma te laten draaien met een GUI voor de afhandeling en besturing naar de blokken waarvoor ik bij elk blok een Pico wil gebruiken voor de aansturing.
Daarbij wil ik de blokken aan gaan sturen met bekende dingen zoals PWM, stroom detectie, optische sensoren gebruiken en nog veel meer wat Ali ons bied ;)
Maar goed, zover ben ik nog niet eerst de hoofdlijnen goed en eens naar een baanplan kijken.

Groeten


 

Titel: Re: Raspberry Railways
Bericht door: Rasp op 19 december 2021, 09:36:39
Even een beetje gepuzzeld met good old paint om een beetje beeld te krijgen, de Pico's gaan via de I2C bus als slave met de Pi praten, dat is makkelijker dan met een Arduino omdat die 5 volt voor de bus gebruikt en de Raspbarry's 3,3 volt dus dan heb ik geen convertors nodig.

(https://images.beneluxspoor.net/bnls/I2C-61beed50374f4.bmp) (https://images.beneluxspoor.net/bnls/I2C-61beed50374f4.bmp)

Ook een overzichtje gemaakt voor de voeding. Heb op Ali mooie ampere+volt meters besteld en die wil ik gebruiken voor controle/fun.
Dan is er nog een 5 volt voeding om alle besturing te voeden en deze dus altijd constant er moet zijn.
De 12 volt wil ik gebruiken voor de voeding voor de PWM modules, daar heb ik voor de zekerheid nog een soort noodstop bedacht die de voeding moet kunnen afschakelen in het geval van een type fout ;)

(https://images.beneluxspoor.net/bnls/Voeding-61beed57bd5f6.bmp) (https://images.beneluxspoor.net/bnls/Voeding-61beed57bd5f6.bmp)
Titel: Re: Raspberry Railways
Bericht door: 72sonett op 19 december 2021, 09:43:08
Wat zijn al die K1 en S2 dingen in het schema?
Titel: Re: Raspberry Railways
Bericht door: Rasp op 19 december 2021, 09:47:05
K1 is een simpel meer polige relais.
S1 is de noodstopknop
S2 is de resetknop met een ledje erin

De bedoeling is ook dat alle stuurprints een detectie krijgen of de 12 volt voeding er is.
Titel: Re: Raspberry Railways
Bericht door: Remco_Nzo op 19 december 2021, 19:45:38
Je gaat dus alle prints centraal plaatsen IPV verspreid onder de baan (omdat je als bus i2c gekozen hebt ) ?

Remco
Titel: Re: Raspberry Railways
Bericht door: Rasp op 19 december 2021, 20:51:33
Hallo Remco,

Nee wil de prints wel onder de baan hebben.
Jij bedoelt op dat de draadlengte dan een probleem kan zijn, dat is wel een goede. Hoor er wisselende verhalen over dus kan het alleen maar zelf eens testen denk.
Anders even zoeken naar een ander protocol, ben niet vast gepint aan I2C.
Ben morgen weer onderweg dus heb ik weer wat om uit te zoeken ;)
Titel: Re: Raspberry Railways
Bericht door: Rasp op 22 december 2021, 20:44:14
Oke heb wat zitten zoeken, in theorie zou de snelheid van de bus naar beneden kunnen worden gehaald om een grotere afstand te kunnen overbruggen. Standaard is dit 100 Kbit/s maar als je die zou verlagen naar 10 Kbit/s zou er theorie wel 10-15 meter mee overbrugd kunnen worden.

Mocht dit niet werken lees ik ook over mensen die de UART als een soort "Daisy-Chain" aan elkaar verbinden.

.------.
|  M   |      .-------.       .--------.
|  A   |--->|RX TX|--->|RX  TX|----.
|  S   |      |         |      |          |     |
|  T   |      `-------'       `-------'     |
|  E   |<------------------------------'
|  R   |
`-----'

Zou in mijn geval ook kunnen werken, de Pico voor wie het bericht is past het gewoon aan en stuurd het door tot dat het weer bij de Pi is.
Nadeel is wel als er een Pico weg valt dan is alle communicatie weg en ik vraag me af hoe snel dit is.
Titel: Re: Raspberry Railways
Bericht door: Robert E op 22 december 2021, 22:12:59
Citaat
lees ik ook over mensen die de UART als een soort "Daisy-Chain" aan elkaar verbinden.

Ik zou dan voor RS485 gaan ipv UART's doorlussen, is wel master / slave.
XpressNet is master/slave bijvoorbeeld, aktief afvragen van de gekoppelde units...

Spec tref je o.a. hier aan https://wiki.rocrail.net/lib/exe/fetch.php?media=xpressnet:xpressnet-v2.pdf (https://wiki.rocrail.net/lib/exe/fetch.php?media=xpressnet:xpressnet-v2.pdf)

Even geen idee of die Pico's CAN ondersteunen maar met Ali spul kom je ver met CAN.
Link als voorbeeld, zijn er nog tich rond CAN en Pi's.

https://www.hackster.io/youness/how-to-connect-raspberry-pi-to-can-bus-b60235

CAN zit ook in je auto en weet ik wat voor andere zaken..

Mvg

Robert

Titel: Re: Raspberry Railways
Bericht door: meino op 22 december 2021, 23:57:04
Dat is wat ik ook gedaan heb om Can bus voor de communicatie te gebruiken. Zie mijn draadje over de Canbus. Ik vond zelf het grote voordeel dat er geen master/slave situatie is. Afgezien dat je die uitdrukking eigenlijk niet meer kan gebruiken, heb ik ook wat technische issues met een dergelijke oplossing omdat het een "single point of failure" introduceert.

Groet Meino
Titel: Re: Raspberry Railways
Bericht door: bask185 op 23 december 2021, 10:29:43
Ik vind het zeer leuk wat je wilt gaan maken, maar er zitten meer risico's aan verbonden dan je misschien lief zijn.

Ik ben zelf ook een tijdje bezig geweest om een gecombineerde terugmeld/accesoire decoder bus te maken. Ik reed dan welliswaar niet analoog. Ik had toen ook bedacht om een rs485 bus te leggen naar de decoders onder te baan en dat met I2C verder te vertakken naar kleine satelliet printjes die niet verder dan 50cm van decoder af zou zitten. Uiteindelijk had ik wel wat werkends op mijn bureau, maar het kostte me een klein jaar en toen kon ik nog steeds geen wissels schakelen... en op een gegeven moment wil je toch wel eens dat de boel gewoon werkt...

De grap is, wat ik maakte, bestond eigenlijk al en het heet loconet.... Ik had dus beter mijn tijd kunnen steken in mijn printen te laten werken op loconet dan.. moeilijk doen... achteraf gezien.

Wat je probeert na te maken, is niks meer en minder dan het dinamo systeem. Die schakelt ook een blok per trein en daar kan analoog en digitaal door elkaar rijden. Ik wil je niet ontmoedigen, maar of dit 'even' na te maken dat is meer werk dan je misschien denkt. Ik denk dat je hier ten minste 3 jaar voor nodig heb. Voor zo'n blok regeling is het nodig dat elke module weet wat er aan komt. De baansignalen, zijnde DCC of PWM moeten synchroon lopen.

Risico #1 waar je tegen aanloopt: Je gaat waarschijnlijk interesse verliezen op een gegeven moment...

Voor wat jij wilt, kan ik je nu al vertellen dat I2C een nogo is, dat werkt niet op die afstanden. Je moet ten minste een Rs485 bus gebruiken, alleen dan kamp je met het probleem dat je ook nog een communicatie protocol moet inbakken. Dat kan XpressNet zijn, dat kan Modbus zijn of weet ik veel wat voor 485 bussen je nog meer heb. Nog beter is het om Can te gebruiken. Can = 485 + ingebouwd communicatie protocol compleet met error handling, networking en collision detection/avoiding en de hele mikmak en dit zit allemaal in de can chips ingebouwd.

De elektronica hier achter wordt ook nog ingewikkeld. Je hebt per baanvlak al een H brug nodig met tenminste 2 terugmelders en kortsluit beveiliging.

Ook als je de elektronica al af heb, dan moet je alles nog laten communiceren. Ik zelf zou een bus aanleggen met ten minste deze lijnen. Je moet sws DCC doorvoeren, misschien ook het pwm signaal tussen 2 modules voor de synchronisaties. Maar als je al 4 baanvlakken per print heb, moet dat al in 4-voud. Of je gebruikt 1 vaste frequentie en dan kan je 1 centrale kloklijn gebruiken.
(https://images.beneluxspoor.net/bnls/deleteme1-61c43acbd88e5.png) (https://images.beneluxspoor.net/bnls/deleteme1-61c43acbd88e5.png)

Voor pwm kan je ook een relais gebruiken voor de polariteit en open collector stijl schakelen, zo krijg je geen kortsluiting als een trein van de ene baanvlak naar de andere rijdt en de signalen niet synchroon zijn.

Die blokken met elkaar laten overleggen wat er aan komt, zal niet zo heel lastig zijn. Maar de blokken moeten wel weten wat er op staat in de eerste plaats. Je moet op je Rpi dus een trein kunnen plaatsen in een blok voordat je er mee kan rijden. En dan heb je nog weinig geautomatiseerd.

Om de treinen automatisch te laten rijden op je zelfbouw systeem, moet je ook zelf nog even software hiervoor uit je mouw schudden. Ik denk dat dit hier ook al een jaar software werk in zit, minstens. Of je moet het systeem laten werken met iTrain of koploper zoals dinamo dat kan, maar dat zie ik somber in...

Je wisselstraten worden ook ingewikkeld. Als je op een wisselstraat tegelijkertijd een analoge trein naar links en naar rechts moet sturen, moet je ook een relais gebruiken per wissel. Elke wissel moet via een keten van relais worden verbonden aan het stuk spoor waar de de trein vandaan komt. Om hier een aparte print voor te maken, is misschien ook wel zo handig..

Je moet ook bedenken, dat wanneer je al wat verder ben, dat je je GUI van de centrale tegelijk moet debuggen met je hardware. Als je trein sluiting maakt tussen 2 blokken, heeft de communicatie bus dan gefaald? Heeft een blok gefaald? heeft de centrale gefaald? Ook als er bijvoorbeeld ruis ontstaat op een kloklijn, op je bezetmelders of je communicatie bus, dan zal je een erg slechte tijd tegemoet gaan... En dan moet je ook nog maar bidden dat het geen hardware fout is in je zelfbouw printen waarvan je er net 10 in elkaar heb gesoldeerd....

Om toch een wat... positievere bijdrage te leveren:

Om dingen voor jezelf niet alleen simpeler maar daadwerkelijk haalbaar te maken, zou ik het systeem zo maken dat je of 100% analoog rijdt of 100% digitaal, maar niet zoals het dinamo systeem alles tegelijk door elkaar willen gebruiken.

Wat ik je ook aanraad, is om een communicatie bus te gebruiken die we ook in de modeltreinwereld gebruiken. Voor jouw toepassing lijkt de loconet bus het meest geschikt. Het hebben van deze bus, geeft je meteen de mogelijkheid om bestaande loconet apparatuur te koppelen aan je systeem. Je kan dus loconet handregelaren gebruiken of bijvoorbeeld een loconet accesoire decoder. Met de loconet-B bus wordt het DCC signaal ook meteen doorgevoerd.

Ik heb thuis bijvoorbeeld een analoge baan die ik aanstuur met een multimaus. Een zelfbouw print, communiceert met de maus via XpressNet, haalt alle snelheidsinstructies uit de bus en vertaalt dat naar PWM voor de treinen. Met de nummer toetsen kan ik relais aan en uit zetten, wissels stellen en straks ook rijwegen leggen van punt A naar punt B. Ik kan later ook een andere handregelaar pakken of er meerdere op aansluiten of een XpressNet compatibel schakelpaneel toevoegen etc.

Nu heb ik 1 centrale PWM regelaar, maar als ik elke spoor een eigen H-brug zou geven, zou ik in theorie ook meerdere analoge treinen tegelijk aan kunnen sturen met meerdere mausen bijvoorbeeld.

Mvg,

Bas

Titel: Re: Raspberry Railways
Bericht door: Rasp op 23 december 2021, 21:00:13
Leuk deze reacties allemaal en goed tips bedankt.
Om over te gaan naar CAN-bus is zeker wel een goede optie. Ik zit momenteel nog 3 weken in USA dus als ik thuis ben wil ik eerst mijn eigen dingen testen, blijf toch eigenwijs  ;D
Maar anders is het ook niet veel moeite om over te gaan naar CAN of eens te kijken naar loconet

Om ook even terug te komen op intresse verliezen, dat denk ik niet. Het mooie van deze hobby is dat ik het even kan parkeren en weer kan oppaken wanneer ik wil. En ook steeds kleine stukjes kan doen en ben nog jong (vind ik) dus het hoeft niet gelijk af.

De bedoeling is trouwens ook gewoon om het ten alle tijden een "analoog" systeem te houden dus een dinamo systeem wordt het niet, al spiek ik er wel wat dingen vanaf.

Elke Pico stuurt 1 blok aan en dus heeft 1 PWM sturing, deze setting komt vanaf de Raspberry en is dus qua frequentie en duty-cycle vanuit daar te synchroon te krijgen. Alleen wat je dan niet heb is dat ze met een ander offset kunnen lopen dus dat je daar een verschuiving in heb, of dit een probleem is weet ik nog niet en moet ik eerst nog testen.

Verder is het de bedoeling om het automaat en hand stukje helemaal in de Raspberry te schijven, dus helemaal costum made en ja ik weet dat dat een tijd kost. Maar dat zit ik juist leuk!
Titel: Re: Raspberry Railways
Bericht door: Remco_Nzo op 23 december 2021, 21:31:52
Leuk, gewoon doen waar je zin in hebt.

....It's my railroad....

Ikzelf wilde ook het wiel zelf uitvinden. Dus zelfbouw alleen heb ik het in Arduino gedaan en geen raspi - het is maar net wat je ligt.

Ligt er naar net aan waar je je tijd aan kwijt wilt. Hardware ontwikkeling, protocol bouwen/debuggen, stoorsignalen filteren, beturingslogica , keuzes zat.

Ik heb er dus wel voor gekozen om loconet als bus te gebruiken. Ik kan daarmee mijn zelfgemaakte printen hergebruiken mocht ik toch ooit een centrale of iets als rocrail/itrain willen gaan gebruiken. De bekabeling enzo is dan geen desinvestering. Gewoon een rol platte telefoonkabel, rj connectortjes en een krimptang.
En ik gebruik daarom dus ook een loconet bibliotheek als protocol.
Scheelde een hoop gedoe 

Titel: Re: Raspberry Railways
Bericht door: Klaas Zondervan op 23 december 2021, 22:26:40
Elke Pico stuurt 1 blok aan en dus heeft 1 PWM sturing, deze setting komt vanaf de Raspberry en is dus qua frequentie en duty-cycle vanuit daar te synchroon te krijgen. Alleen wat je dan niet heb is dat ze met een ander offset kunnen lopen dus dat je daar een verschuiving in heb, of dit een probleem is weet ik nog niet en moet ik eerst nog testen.
Dit probleem heb ik ook op mijn spoorbaan "Uit en Thuis". Dat is volkomen in hardware uitgevoerd en levert een Permaloog signaal aan de baan. (beschrijving op mijn webstek) Elke blokprint heeft zijn eigen oscillator voor het opwekken van het HF-signaal en een eigen PWM generator. Die lopen per definitie niet synchroon en dat levert dus kortsluiting bij het overschrijden van de blokgrens.

Ik heb dat als volgt opgelost: als een trein op het punt staat om een volgend blok in te rijden, dan wordt het blok waar de trein vandaan komt via een relaiscontact hard gekoppeld aan het blok waar de trein naar toe gaat. Bij het rijden over de scheiding hangen beide blokken dus aan dezelfde blokprint.
Zodra de trein het vorige blok heeft verlaten, wordt de koppeling weer verbroken.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 23 december 2021, 22:42:57
Oke dus dat wordt zeker een probleem om met 2 verschillende PWM's te werken, even bedenken hoe ik de mooi kan oplossen.


Verder als ik naar de hardware kijk van Loconet:


(https://images.beneluxspoor.net/bnls/LocoNetInterface-61c4ec583981b.png) (https://images.beneluxspoor.net/bnls/LocoNetInterface-61c4ec583981b.png)

Kan ik dit misschien ook gebruiken om me eigen protocol overheen te sturen aangezien hij leest en schijft over dezelfde lijn.
De voeding moet denk wel 3,3V worden als ik het voor de Raspberry's wil gebruiken
Titel: Re: Raspberry Railways
Bericht door: Klaas Zondervan op 23 december 2021, 22:57:43
Je weet toch wel dat Loconet een peer-to-peer systeem is?
Dat betekent dat elk aangesloten apparaat zelf het initiatief neemt om een bericht op de lijn te slingeren. Maar tegelijk moet hij terugluisteren of het signaal op de lijn gelijk is aan wat hij aan het zenden is. Als dat niet zo is, dan betekent het dat twee apparaten door elkaar staan te praten en moet één van de twee zijn mond houden en wachten tot het weer stil is op de lijn.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 23 december 2021, 23:03:33
Nee wist ik niet, maar daar kan ik zelf wel een protocol van maken en alleen de hardware gebruiken om alle bitjes overal te krijgen.
Titel: Re: Raspberry Railways
Bericht door: bask185 op 23 december 2021, 23:15:42
Citaat
Oke dus dat wordt zeker een probleem om met 2 verschillende PWM's te werken, even bedenken hoe ik de mooi kan oplossen.
Nee in tegendeel. Jij kan gewoon 1 centrale kloklijn aanbrengen. Daar kan je je pwm op synchroniseren.

Je kan ook de H brug vervangen door een dpdt relais en met een enkele Mosfet PWM doen. Dan maakt het namelijk niet zo veel uit als je singalen niet synchroon zijn. Het ergste wat je dan kan zien, is dat de trein een sprongetje maakt bij een overgang.

Mvg,

Bas
Titel: Re: Raspberry Railways
Bericht door: Klaas Zondervan op 24 december 2021, 10:34:42
Nee wist ik niet, maar daar kan ik zelf wel een protocol van maken en alleen de hardware gebruiken om alle bitjes overal te krijgen.
Inderdaad, ik was een beetje voorbarig met het peer-to-peer verhaal. De hardware zoals getoond kun je ook gebruiken voor een handshake systeem met een centrale verkeersregelaar.
Je hebt bij dit systeem nog wel een stroombron nodig die de datalijn hoog houdt in rust. Transistor Q2 trekt hem dan naar beneden.
Titel: Re: Raspberry Railways
Bericht door: bask185 op 24 december 2021, 11:35:41
Mark,

Als je toch 1 controller per baan vlak neemt, kan je net zo goed Arduino nano's gebruiken voor een aantal redenen.

- De Pico is zwaar overkill voor wat je er mee gaat doen.
- De nano is uitermate goedkoop. Deze heb ik de laatste keer voor €1,40 p/s gekocht op AliExpress.
- Er zijn voor zowel loconet als xpressnet libraries beschikbaar die 100% compatibel zijn met de nano's atmega328.
- de nano werkt ook op 3v3 als het moet, maar met 485/can/loconet maakt dat niet eens uit.

Wel zou het interessant zijn als je die statemachine techniek van die IO modules van de Pico kan gebruiken om de signalen te decoderen en en coderen  ;D

Ik heb thuis trouwens nog een Pico liggen, ik weet nog steeds niet wat ik ermee moet doen  ;D

Mvg,

Bas
Titel: Re: Raspberry Railways
Bericht door: Rasp op 24 december 2021, 21:51:04
Misschien een domme opmerking maar kan ik niet gewoon alle Rx en Tx aan elkaar knopen en zo alles met elkaar te laten babbelen zonder de LM311 schakeling?

En als ik die wel nodig hebt, moet ik die dan voeden met 3,3V of 5V?
Titel: Re: Raspberry Railways
Bericht door: bask185 op 24 december 2021, 22:06:25
Citaat
Misschien een domme opmerking
Nee hoor.

Citaat
maar kan ik niet gewoon alle Rx en Tx aan elkaar knopen en zo alles met elkaar te laten babbelen zonder de LM311 schakeling
Die zijn daar niet echt voor bedoeld, misschien dat je dat wel werkend krijg, maar op lange afstanden kan je geheid problemen verwachten. Het schijnt dat de hogere spanning van loconet icm met hoe zij de 6 polige kabel gebruiken wonderbaarlijk goed werkt.

Het loconet circuit met de Omamp zorgt er wel voor dat de spanningsniveaus van je printen mag verschillen. Dus zowel 5V als 3V3 apparaten kun je op de loconet bus aansluiten.

Ik weet niet hoe bedreven je bent met elektronica, maar het is het makkelijkst als je een paar printen voor je Pico's (en/of nano's :P) ontwerpt en besteld. Draadje knippen, strippen, solderen dat gaat inderdaad snel vervelen.

Om even gauw een shield in elkaar te flansen in Kicad, is voor mij niet zoveel werk en wil ik je met liefde mee helpen.

De loconet bus bestaat FYI uit de B voor booster bus en de T bus. De buitenste aders van de T bus, voeren 12VDC waarmee je randapparatuur kan voeden, hoewel je niet al te veel vermogen er uit kan trekken. Loconet handregelaars en terugmelders worden onder anderen zo gevoed.

Bij de B bus, wordt door de centrale het DCC signaal vervoerd door de buitenste aders om de loconet boosters te synchroniseren. De boosters versterken dit signaal voor de rails. Jij kan voor jouw doeleind misschien het DCC gedeelte voor andere doeleindes "re-purpose'n" zoals bijvoorbeeld een kloklijn.

Mvg,

Bas
Titel: Re: Raspberry Railways
Bericht door: Rasp op 24 december 2021, 23:09:11
Moet de loconet bus nog apart ergens met een voeding en een pull-up weerstand gevoed worden?
Heb net ergens gelezen dat ik de Pico clock waar de PWM uit gemaakt wordt wel op een manier de offset kan "nullen"
Thuis maar eens uitzoeken want daar staat me hobby PC met MicroPython erop.

Bedankt voor het aanbod! Alle hulp is welkom vandaar ook dat ik een draadje aangemaakt heb juist hier.
Ben zelf ook al het een en ander aan het bedenken voor de aansturing in EasyEDA, maar daar later meer over...

Als je zou kunnen helpen met een opzetje voor de communicatie zou dat top zijn, ik wil pin GP0 en GP1 van de Pico gebruiken daarvoor.
Dus als we de locobus als voorbeeld gebruiken, wil ik daar 5v + 0V voor de voeding van de print oversturen, de "locobus" communicatie en eventueel een Clockpulse.
Als ik dat zou bekijk heb ik daar 2 circuits voor nodig, 1 voor de Pico's (Soort Slave, waar ook de 5V voeding wordt gebruikt) en 1 voor de Pi waar ook een externe 5 Volt wordt aangeboden.

Maar goed even nog laten borrelen hier, eerst met de vrouw en kids naar het Kerst Diner.
Voor iedereen ook nog een mooie Kerst!
Titel: Re: Raspberry Railways
Bericht door: bask185 op 24 december 2021, 23:46:59
Citaat
Moet de loconet bus nog apart ergens met een voeding en een pull-up weerstand gevoed worden?

Dit is het schema, van wat ik zie, trekt de uitgang van de opamp de lijn omhoog en omlaag via een 220k weerstand
(http://mrrwa.org/wp-content/uploads/2014/12/LocoNetInterface.png)

Op deze site wordt het eea uitgelegd over hoe die opamp precies wordt gebruikt:
https://electronics.stackexchange.com/questions/92317/what-does-this-lm393n-circuit-do (https://electronics.stackexchange.com/questions/92317/what-does-this-lm393n-circuit-do)

Citaat
Als je zou kunnen helpen met een opzetje voor de communicatie zou dat top zijn,
Printje kan ik bij helpen, de software is een ander verhaal. Ene kerel genaamd Alex Shepherd heeft een library gemaakt. Ik heb hem zelf nog niet gebruikt omdat ik mezelf meer met XpressNet heb vermaakt.
https://pgahtow.de/w/Loconet (https://pgahtow.de/w/Loconet)

Zijn Library is in C++ en dusdanig geschreven om te werken voor een atmega chip, een van de redenen waarom ik dus een Nano adviseerde. Ik denk met een beetje liefde dat het niet al te moeilijk moet zijn om hem aan te passen voor je Pico, maar dan we het over een C++ programma. Ik weet niet of python of micropython (nooit mee gespeeld) hiervoor snel genoeg is. Je zou wel de eerste zijn die dit werkend krijgt.

Behalve je eigen hardware, heb je ook nog bestaande loconet hardware nodig om mee te interfacen of om mee te oefenen. Als je weet dat jouw apparaat goed werkt met een bestaande loconet apparaat dan weet jij dat jij je werk goed gedaan heb. Die dingen groeien helaas niet aan bomen en de goedkoopste is een bezetmelder van ~€50,-. Ik kan er wel een van mij uitlenen als je zover komt.

Dit allemaal gezegd hebbende. Loconet is enigszins lastig omdat al je netwerk, handshaking, errordetectie, collision elende in software zit. Precies dit zit bij Can in de chips zelf. Om vanuit scratch even een library te kloppen voor een andere taal zoals micropython zal in alle waarschijnlijkheid ontzettend veel werk zijn. Dus als de keuze perse moet zijn Pico + python zou ik Loconet in de eerste instantie niet aanraden en je toch richting, 485, can, 422 oid proberen te sturen. Zou de keuze Pico + C++ zijn, zou ik zeggen: dat moet te doen zijn. En zoals ik nu 3x vermeld heb, een arduino met atmega -> peanuts, die software bestaat al.

Dus... fijne kerst verder :-D

Mvg,

Bas






Titel: Re: Raspberry Railways
Bericht door: Rasp op 27 december 2021, 04:57:30
Oke even los van de manier van communiceren tussen de Pico's en de Pi en het eventuele probleem met de PWM sync (wat ik denk te kunnen oplossen maar nu heb ik nog een oscilloscoop nodig, misschien dat ik wel een Velleman PCSU02 of dergelijke aanschaf)

Heb ik het printje voor de blok aansturing verder uitgedacht:


(https://images.beneluxspoor.net/bnls/Schematic-Spoorprint-2021-12-17-61c935cfca1bd.png) (https://images.beneluxspoor.net/bnls/Schematic-Spoorprint-2021-12-17-61c935cfca1bd.png)

Even in het kort waar aanknoppunten, ik hoor graag of ik mis zit:
P1 connector voor de 12v, 5v en 0v
J2 connector aansluiting bus communicatie
J11, J12 connector aansluiting voor een infra-rood detectie
J13 connector voor overige inputs
J14 connector voor overige outputs zoals LED (expres een relais gekozen)
J21, J22 connector voor aansluiting van een servo zoals een SG90 voor wissel aansturing
P2 connector aansluiting voor naar de baanvlak

F1, F2 zelf herstellende zekeringen met daar achter een LED indicatie of er spanning is
U2 is de H-brug voor de sturing
SW1 zijn de dip-swichjes voor het adres (maar denk dat 4 er te kort zijn)
U3 spanning detectie dat 12v aanwezig is dus geen kortsluiting en geen noodstop (uit eerder diagram)
U4 stroom detectie in het blok
Titel: Re: Raspberry Railways
Bericht door: GMA70 op 27 december 2021, 08:27:35
Ik ben zeker geen expert op de Pico, maar die heeft toch alleen 3.3v GPIO? In dat geval kan je niet direct een 5v relais aansluiten, en zeker niet zonder een driver/transistor vanwege de gelimiteerde stroom.
Hetzelfde voor de servo aansturing, die heeft ook 5v nodig.

Het nut van standaard 4 relais zal je zelf hebben bepaald, maar misschien wel handig om geen gebruik te maken van een common aansluiting?  Dat kan je later weer beperken.

Misschien nu al meenemen: seinverlichting?
Is 12volt voldoende voor de aansturing, hoeveel spanning staat uiteindelijk op de rails?
Overweeg evt om doorlusmogelijkheden te maken voor bv spanning aansluiting. Toevoegen later is moeilijk, connector niet gebruiken is gemakkelijk.
Evt een motordriver met ingebouwde current sense gebruiken? Kan je gebruiken als gewone detectie maar ook als korsluitdetectie.

Gezien het schema, denk ik dat je redelijk onervaren bent, en nog niet alles op een rijtje hebt wat en hoe je het uiteindelijk wilt hebben. Geeft niets want het is hobby en je leert er snel van.
Daarom zou ik je aanraden om alle losse stukjes van het schema eerst apart te testen op een breadbord, finetunen en dan pas het printplaatje maken. Je zal zien hoeveel veranderingen en fouten er dan nog uitkomen.

Succes, maar vooral veel plezier ermee.

Titel: Re: Raspberry Railways
Bericht door: bask185 op 27 december 2021, 09:03:19
Die relais die slopen geheid je pico, dat beloof ik je. Je kan het het makkelijkst 1 losse ULN2003 of ULN2803 er tussen zetten. Dan kan je je 5v relais schakelen met 3v3, sterker nog dan kan je zelfs 12V relais gaan gebruiken.

Dat schema... ik zeg het gewoon maar: Die moet opnieuw! :police:

Het is onduidelijk opgesteld. Er zitten ook geen labels in verwerkt en je moet af van die 5v,12v en gnd leidingen. En dan heb ik het nog niets eens over dat 'ongelukje' bij J21 en J22... In Kicad heb ik even gouw een voorbeeld er bij gepakt:

Ik heb connectors benaamd en labels gebruikt voor de IO. Stel nu dat je een wijziging hebt in IO, omdat 1 pin geen pwm of interrupt heeft ofzo. In jouw schema moet je dan draden verleggen, in mijn schema swap ik gewoon 2 labels van plaats. + het is gewoon wat overzichtelijker.
(https://images.beneluxspoor.net/bnls/deleteme-61c96ea63a4f3.png) (https://images.beneluxspoor.net/bnls/deleteme-61c96ea63a4f3.png)

Verder wat kleinigheidjes:
- ik zou condensatoren toevoegen bij je servo aansluitingen
- aparte printen houden voor outputs zoals wissels. Ik zie leuk 2 servo's connectors en vier relais, maar waarom? Misschien is het wel handig om wel outputs voor seinen te behouden op je blokprint.
- die zekeringen zijn volgens mij veels te traag en beschermen niet zo veel. Overbelasting/kortsluiting kan je beter inmeten door de baanstroom te meten met een shunt weerstand. Dan kan je veel sneller ingrijpen. Ik denk namelijk dat je H-brug eerder sterft dan dat de zekering ingrijpt.
- Ik heb die H brug niet gegoogled, maar voor analoge treinen wil je waarschijnlijk blusdiodes in het circuit hebben zitten als de H brug ze niet heeft.

Wilde je eigenlijk ook nog digitaal rijden of alleen analoog?

Mvg,

Bas
Titel: Re: Raspberry Railways
Bericht door: Rasp op 05 januari 2022, 00:26:33
Wat spullen besteld her en der voor wat testen, dus even wachten daarop.
Ondertussen wel het schema opgeknapt zodat het er inderdaad beter uit ziet:

(https://images.beneluxspoor.net/bnls/SpoorPrint2-61d4d5c7cccc2.png) (https://images.beneluxspoor.net/bnls/SpoorPrint2-61d4d5c7cccc2.png)

De relais zou inderdaad de uitgang opblazen, nu niet meer hoop ik.
Heb doorlus connectoren gemaakt voor de spanning.
Een condensator bij de 5 volt gemaakt.
De zekering zal misschien ook niet veel beschermen, zit er meer voor me gemoedrust in. De TA8050P heeft een interne overstroom beveiliging en blusdiodes.

Heb niet veel ervaring met elektronica maar wil altijd leren!
En het idee blijft nog altijd dat er gewoon analoge treinen opkomen en geen digitale zoals bij het Dinamo systeem.

Titel: Re: Raspberry Railways
Bericht door: bask185 op 07 januari 2022, 17:16:02
Hey Rasp,

Je gaat er op voorruit. Maar ik heb nog een paar kleine puntjes.
- de label teksten hebben de namen van je IO. Als je kijkt bij je pico. Er komt uit gp0 een draadje, die gaat naar een label... die ook gp0 heet. Je kan hier beter een betekenis volle naam gebruiken zoals home sensor, current sense, relay 1, servo2 etc.
- 5V distrubutie onder de baan is ruk, gaat problemen geven. Vooral als je servo's gaat gebruiken, is het handig om ten minste voldoende capaciteit te hebben of in de buurt van je print een DcDc converter te hebben. Zelf gebruik ik gewoon een spanningsregulator en schakel ik de servo's af om oververhitting te voorkomen.
- Hoewel je gekozen H-brug beveiligd is tegen kortsluiting, kan je volgens mij niet weten wanneer je kortsluiting heb. Ik heb verderop een oplossing staan

Ik heb meerdere malen het begrip open collector laten vallen, maar snap je wat ik daarmee bedoel?
Als je alleen maar analoog rijdt, is dit circuit beter en veiliger dan een H brug.

Met het relais zet je de polariteit, en met de mosfet schakel je de railsspanning. Als een trein dan over 2 baanvlakken tegelijk rijden en het pwm is om wat voor rede dan ook uit fase, dan heb je geen kortsluiting, want beide mosfets mogen gewoon parallel staan.
(https://images.beneluxspoor.net/bnls/deleteme1-61d85c987bdce.png) (https://images.beneluxspoor.net/bnls/deleteme1-61d85c987bdce.png)
Merk wel op, een relais sluit wel de deur voor eventueel digitaal bedrijf in de toekomst.

Als je tussen source en ground nog iets van een 0.5R weerstand zet, kan je analoog ook meten hoeveel stroom je trekt. Dit truukje kan je ook bij de H-brug toepassen. Je kan dan de weerstand tussen de GND van de Hbrug en de GND van je print zetten. Je zou, mits je snel, bent ook nog een kortsluiting kunnen onderscheiden van een optrekkende trein. Dan kan je sneller afschakelen dan anders.

Open collector schakelen in een notendop
(https://images.beneluxspoor.net/bnls/deleteme2-61d85c9b347b6.png) (https://images.beneluxspoor.net/bnls/deleteme2-61d85c9b347b6.png)
Als je hier de weerstand vervangt door een trein, kan je de trein laten rijden door elk van de apparaten een de 0v rails naar ground te trekken. Het maakt hier dus niet welke of hoeveel componenten dit tegelijk doen.

Dan  nog wat vraagjes.
- heb je al iets van een sporenplan in het oog?
- Wat is het doel van de fotocellen, daar je al stroomdetectie heb?

Ik heb ook nog iets te vertellen over wissels. Ik ben ooit begonnen aan een wisselmodule, wiens doel het was om 2 signalen onder een wisselstraat door te leiden met relais. Ik heb dit nodig zodat de bezetmeldlijnen van mijn uitrij en inrijseinen naar de juiste sporen te laten leiden. Als je op voorhand al aan blokken vertelt welke blok waar ligt, heb je dit niet nodig.

Als je alle wissels aan elkaar knoopt aan een voedingspunt, dan kan je niet gelijktijdig in twee richtingen of met verschillende snelheden rijden.

Wat jij misschien wel nodig ga hebben, is een dubbel polig relais onder elke wissel om de railstaven van alle wissels mee te voeden. Waarom ga je dit nodig hebben?  Als elke wissel gevoed wordt door een keten van relais die naar het vertrek of aankomst spoor leiden dan kan je over wisselstraten gelijktijdig meerdere analoge treinen in verschillende richtingen en elk met hun eigen snelheid laten rijden. Elke wissel wordt dan gevoed door een aangrenzende blokmodule, zijnde deze van het spoor waar de trein vandaan komt. Als je wissels ook nog met servo's wilt bedienen en ook nog puntstuk polarisatie wilt toepassen, dan doe je er goed aan om een aparte print te maken voor elke wissel.

Een ander ding waar je over kan nadenken, is om aparte modules te maken onder je hoofdspoor. Als je op een stuk spoor maar 1 kant op rijdt, zal je in de blokken nooit de behoefte hebben om om te moeten polen. Je kan natuurlijk een blokmodule ook naar de buurman met 1 lijntje zelf laten doorgeven wat de stand van zaken is. Ik laat zo bijvoorbeeld mijn seinmodules met een lage frequentie seinbeelden naar elkaar toe sturen. Mijn punt is: modules onder hoofdspoor kunnen aanzienlijk simpeler uitgevoerd worden dan een module op een station die in 2 richtingen bereden moet kunnen worden. Deze methode is enigszins ook veiliger omdat je bloksysteem betrouwbaarder functioneert. Als je raspberry crasht of je vult een verkeerd getal in, kan je zomaar een ongelukje krijgen.

Dergelijke blokmodules hebben door hun onderlinge communcatie geen behoefte aan een centrale controller. Bezetmeld informatie wil je natuurlijk wel doorsluizen En als je met de hand wilt rijden dan moet je alsnog alles centraal regelen. Ik wil natuurlijk niet mijn ideeën opdringen. Het belangrijkste is natuurlijk dat alles in jouw idee past I merely explain things and offer advice

Mvg,

Bas


Titel: Re: Raspberry Railways
Bericht door: 72sonett op 07 januari 2022, 17:53:39
... Ondertussen wel het schema opgeknapt zodat het er inderdaad beter uit ziet
Doorgaans teken je een schema van links naar rechts en van boven naar beneden. In het deel linksboven, met de 2 leds, teken je de nul/massa/GND onderaan en de +12 V bovenaan, dat is duidelijk, maar rond de 4 relais is het net andersom; gnd bovenaan, 12 V onderaan, dat is verwarrend. Als je het omkeert, is de open collector van Q1..Q4 ook duidelijker.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 07 januari 2022, 20:38:52
Bedankt weer voor alle tips!
Ja ik weet wat Open collector is.

De servos wil ik ook uitzetten als ze niet meer hoeven te schakelen.
De photocellen zijn voor extra, zie alleen wel dat ik ze met 3,3v moet voeden

Waarom gaat een externe 5v niet werken, te veel spannings verlies? Anders een 7805 erbij om de 12v naar 5v te maken?
Titel: Re: Raspberry Railways
Bericht door: Robert E op 07 januari 2022, 21:27:15
Wat is eigenlijk je plan met de communicatie?

Ik zie twee (onbeschermde) pinnen GP0 en GP1 die direct naar een connector gaan...

Mvg

Robert
Titel: Re: Raspberry Railways
Bericht door: Rasp op 08 januari 2022, 00:00:27
Het idee was eerst I2C, maar dat werd me afgeraden omdat dat meer voor korte afstanden is.
Dus staat nog open, misschien zelf iets maken op basis van Loconet hardware.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 10 januari 2022, 23:30:52
Baanplan heb ik nog niet. Heb wel wat ideeën maar kom er nog niet uit, wat ik wil is dat treinen (max 1 meter lengte) op verschillende manieren een station binnen kunnen komen en in een schaduwstation kunnen keren of juist ergens anders uit kunnen komen. En dan ook gebruik maken van de volledige breedte van het huis (6 meter), dat is nog even puzzelen dus laat ik ook voor het langere termijn.

Dus voor nu even de "cave" opgeruimd en plek gemaakt voor een test ovaal (de oude ligt er boven nu) waar ik de loc's weer rij baar wil maken en wat principes met aansturen wil testen.

(https://images.beneluxspoor.net/bnls/IMG-20220110-215021-61dcb19418e3f.jpg) (https://images.beneluxspoor.net/bnls/IMG-20220110-215021-61dcb19418e3f.jpg)

Iemand een idee trouwens hoe ik een mooie vitrine kan maken voor de treinen die tegen de 45 graden van het dak aan kan?
Titel: Re: Raspberry Railways
Bericht door: bask185 op 11 januari 2022, 08:24:13
In 1 woord: zagen.

Glas en plexiglas kan je zagen. En hout natuurlijk ook. Ik zou wel eerst heel nauwkeurig de hoeken meten.

Bas

Titel: Re: Raspberry Railways
Bericht door: Rasp op 20 januari 2022, 23:20:13
Ja maar hoe en wat  ???
Maar goed, ik ken iemand met een houtsnijder dus even bedenken hoe ik de beugels wil maken.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 20 januari 2022, 23:31:40
En aangezien ik een beetje eigenwijs ben.....  ;D
Toch even geprobeerd om met I2C te communiceren. Ik heb een aantal Pico's besteld en een Velleman Oscilloscoop.
Dus testen maar! De programmatjes waren zo geschreven via wat hulp op google en draaide eigenlijk ook vrij snel.
(https://images.beneluxspoor.net/bnls/IMG-20220118-230053-61e9df84914d1.jpg) (https://images.beneluxspoor.net/bnls/IMG-20220118-230053-61e9df84914d1.jpg)

Alleen de normale snelheid, 100kbs gaf het genoeg problemen. Zoals te zien op de scoop maar ook in de software door de verbindingsfouten.
(https://images.beneluxspoor.net/bnls/IMG-20220118-230407-61e9df84699af.jpg) (https://images.beneluxspoor.net/bnls/IMG-20220118-230407-61e9df84699af.jpg)

De snelheid verlaagd naar 10kbs en dat ging goed. Geen problemen hier.
(https://images.beneluxspoor.net/bnls/IMG-20220118-230101-61e9df848b594.jpg) (https://images.beneluxspoor.net/bnls/IMG-20220118-230101-61e9df848b594.jpg)

Dus een lange kabel er tussen van 2 meter en kijken wat er gebeurt..... Maar inderdaad, waar ik voor gewaarschuwd werd gebeurde. Geen lange afstanden voor I2C.
(https://images.beneluxspoor.net/bnls/IMG-20220120-230128-61e9df84693bd.jpg) (https://images.beneluxspoor.net/bnls/IMG-20220120-230128-61e9df84693bd.jpg)

Dus tijd voor plan B en ik heb diverse MAX3485 chips besteld om te kijken of die wel afstanden van een aantal meters kan hebben (volgens spec wel).
Nu wachten op China totdat die weer wat anders komt brengen dan de griep...
Titel: Re: Raspberry Railways
Bericht door: Rasp op 27 januari 2022, 17:17:36
Oke ik denk dat ik toch binnen kort even wat voedingen ga bestellen, dat gerommel met een Fleischman trafo en 5v via de USB is ook niets (en kans op een stukke USB poort  :o )

Voor de baanspanning zit ik nu te denken om 15V te gaan bestellen ipv 12V. Heb je toch wat meer speelruimte, wat echt op de baan komt zal door de diodes al minder zijn en anders kan ik de PWM wat minder zetten.

Er was ook een opmerking geplaatst dat een externe 5V onder de baan niet zou werken, maar waarom niet? Het is voor de voeding van de Pi en de Pico's, servo's (die ik uitzet als ze op positie zijn). Volgens mij niet een probleem als ik 0,5mm² in een ringleiding leg.

Ik vind het juist makkelijk want dan kan ik alles onder spanning laten (5V) en als er iets mis gaat de 15V afschakelen.
Titel: Re: Raspberry Railways
Bericht door: bask185 op 27 januari 2022, 18:26:14
Citaat
Voor de baanspanning zit ik nu te denken om 15V te gaan bestellen ipv 12V. Heb je toch wat meer speelruimte, wat echt op de baan komt zal door de diodes al minder zijn en anders kan ik de PWM wat minder zetten.
Dat kan, ik rij zelf ook met 15V maar dat is net toeval dat ik net die voeding had liggen.  Ik rij dan heel langzaam en kan met 12V uit te voeten, maar 15V is geen slecht idee. Ik zou voor de grap wel even kijken naar hoe snel je treinen rijden op 12v met een diode brug. Een nadeel is dan weer dat je 12V relais een extra weerstand nodig hebben, maar dat is natuurlijk makkelijk op te lossen.

Citaat
Er was ook een opmerking geplaatst dat een externe 5V onder de baan niet zou werken, maar waarom niet?
Het probleem wat je hebt, is dat 5V niet geschikt is voor langere afstanden. Vooral wanneer het stroomverbruik gaat toenemen, kan je spanning aan het einde van de lijn indippen. Nu zie ik dat die pico pi een grote ingangspanningstollerantie heeft van 1,8V tot 5.5V. Dus waarschijnlijk zullen die spanningsdippen overleven. Een normale Pi zou het erg vervelend vinden, die hebben echt een goede stabiele 5v voeding nodig. Die servo's werken ook op 5v en kunnen grote piekstromen trekken. Als die dan ook nog eens 4 meter van zijn spanningsbron zit, kan je problemen ervaren op een of meerdere delen van je 5v circuit.

Het is simpelweg niet logisch om er aan te beginnen. Bovendien je moet elke print al 15V aanbieden voor de baanspanning, je hebt dus al een 15V leiding liggen. Als je die al hebt, waarom dan ook nog een aparte 5V kabel aanbrengen die ook nog eens extra dik moet zijn?

Op alie (https://nl.aliexpress.com/item/1005002958710967.html?spm=a2g0o.productlist.0.0.532336a2jhwzyr&algo_pvid=da059020-4f98-4129-821d-d90288cfad62&aem_p4p_detail=2022012708502212730439849292000045628078&algo_exp_id=da059020-4f98-4129-821d-d90288cfad62-19&pdp_ext_f=%7B%22sku_id%22%3A%2212000022960270931%22%7D&pdp_pi=-1%3B0.57%3B-1%3B-1%40salePrice%3BEUR%3Bsearch-mainSearch) heb je tegenwoordig ontzettend kleine en goedkope buckconverters. Deze in kwestie heeft geen uitstekende onderdelen aan de onderzijde. Je kan deze direct plat tegen de achterkant van je eigen printen aan solderen. Als ik terug ben in NL zal ik er een foto van maken. Het is net een printrugzak.

(https://ae01.alicdn.com/kf/Ha55e315487294dc183392b0b2168f9a0D.jpg)

Je hebt natuurlijk ook iets grotere met een kroonsteentje, dan kan je zo'n ding buiten je printplaat laten en dan kan je biijvoorbeeld 2 of 3 naburige printen dezelfde buckconverter laten gebruiken.

Citaat
Ik vind het juist makkelijk want dan kan ik alles onder spanning laten (5V)
Dat kan nog steeds, want de 15V baanspanning kan je net zo goed lokaal in de H-bruggen afschakelen. Ik heb laatst met een attiny45 een circuitbreaker gemaakt, die kan kortsluiting detecteren en binnen 5ms de baanspanning lokaal afschakelen. Die pico pi's kunnen dat net zo goed. Dan hoef je nooit de 15V bij de bron af te schakelen en blijven alle printen en elektronica langs de baan gewoon onder spanning. Die circuitBreakers doel was juist om lokaal spanning af te schakelen zodat niet meteen alle treinen uitvallen op je hele baan. Als je blok beveiliging goed werkt, kan er ook nooit een trein in sectie rijden waar al kortsluiting is. Dus ja een centrale noodstop kan wel, maar als je printen lokaal al afschakelen dan heb je er niet zo veel aan. ( het is natuurlijk wel handig als een trein 'haywire' gaat en richting stootblok crost)

Je kan dan nog denken aan een open collector lijntje die je tussen alle printen kan knopen waarmee elke print kan aangeven aan de andere printen dat er kortsluiting is. Aan diezelfde lijn kan je ook meteen noodstop schakelaars verbinden.

Mvg,

Bas
Titel: Re: Raspberry Railways
Bericht door: Rasp op 12 november 2022, 14:21:35
Al weer even geleden maar vooral niet stil gezeten, wel een beetje druk geweest met werk en reizen maar goed nu weer wat ruimte qua tijd.
Ondertussen zijn er ook diverse onderdelen uit China gekomen om te testen. Zo ook de 12V naar 5V convertor die aangeraden werden.
En ik heb een beginnetje gemaakt in Python om een mooi besturingsprogramma te maken.

Ik heb geprobeerd om de Loconet interface te gebruiken om tussen de Pico en de Pi te communiceren.
Het schema om de voeding te maken was zo gelukt en vrij eenvoudig, ook de Tx kant werkte zo en kon data de "bus" op krijgen.
Alleen het inlezen lukte me niet echt ik heb het schema gevolgd van de LM311 met de weerstanden en dergelijke maar krijg het niet voor mekaar om data uit te lezen met een Raspberry van de bus.
Toen ik een transitor gebruikte en een pull-up weerstand naar 3,3v om zo het signaal van de bus te inverteren en naar 3,3v te krijgen lukte het gelijk.
Vindt deze oplossing wel makkelijk, zit er een nadeel qua opblazen ofzo aan als ik het zo doe?


Titel: Re: Raspberry Railways
Bericht door: bask185 op 12 november 2022, 17:45:42
Je moet eigenlijk alleen letten op de spanningen die op de pin komen te staan en wat je aan stroom probeert te trekken.

Vooral de pi kan niet zo veel sap leveren uit een pin. Uit mijn hoofd 3mA ofzo. En natuurlijk geen 5v op de ingangen zetten.

Die lm311 is een comperator en die creëert een hysterese/Schmitt-trigger in het signaal met als doel om ruis te onderdrukken. Als je nog veel wilt testen aan je bureau kom je met een weerstandsdeling er ook mee weg.

In wat heb je eigenlijk geprogrammeerd? Had je nog wat aan de cpp library?

Mvg,

Bas
Titel: Re: Raspberry Railways
Bericht door: Rasp op 14 november 2022, 17:00:17
Ik heb in Python zelf een handshake gemaakt.
Dit is mijn test versie, de bedoeling is dat de "master" (Raspberry Pi) alle Pico's afloopt voor een antwoord en zo dus alles check.
Dat is net anders als Loconet die de bus zelf in de gaten moet houden, ik gebruik dus alleen het hardware princiepe eigenlijk.



import sys
import os
import time
import vars
import main
import serial
import RPi.GPIO as GPIO

# Fixed length routine
def fix_len(string, lenght):
    while len(string) < lenght:
        string=" "+string
    return string

def loop():

    time.sleep(1)

    #main.debug("Comm: Init GPIO")
    #GPIO.setwarnings(False)
    #GPIO.setmode(GPIO.BCM)
    #GPIO.setup(18, GPIO.OUT)
    #GPIO.output(18, GPIO.LOW)

    # Pin 14 Tx
    # Pin 15 Rx
    # python -m serial.tools.list_ports
    main.debug("Comm: Init Serial connection")

    ser = serial.Serial("/dev/ttyS0",
    baudrate = 9600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=0.1)

    main.debug("Comm: running")
    vars.tic=time.perf_counter() + 10

    while True:

        # Send data
        if vars.tic < time.perf_counter():

            vars.tic=time.perf_counter() + 0.01

            x = 10
            out = vars.out1*1 + vars.out2*2 + vars.out3*4 + vars.out4*8

            # Make send string
            # <AA*BBCCCCCDDDEEEEEFFFFFGGG#
            tx_data  = ""
            tx_data += "<"
            tx_data += fix_len(str(x),2)
            tx_data += "*"
            tx_data += fix_len(str(vars.direction   ),2)
            tx_data += fix_len(str(vars.setpointPWM*650),5)
            tx_data += fix_len(str(vars.setpointFREQ),3)
            tx_data += fix_len(str(1 ),5)
            tx_data += fix_len(str(2 ),5)
            tx_data += fix_len(str(out),3)
            tx_data += "#\n"

            # Send the string
            #try:
            ser.write(tx_data.encode())
            ser.flush()
            #except:
            #    main.debug("Comms SEND error Pico: " + str(x))

            #print(tx_data)

        # Read response
        # >AA*BBB#\n
        # Always read the line length for time-out
        rx_data = ""
        try:
            rx_data = ser.readline().decode()
            if len(rx_data) > 0:
                print(len(rx_data))
                print(rx_data)
        except:
            main.debug("Comms READ error Pico")

        # Check length
        if len(rx_data) == 9:
            # Check Start Char
            if rx_data[0] == ">":
                # Check Mid Char
                if rx_data[3] == "*":
                    # Check End Char
                    if rx_data[7] == "#":
                        # Check Numeric
                        slave=rx_data[1:3].strip()
                        data =rx_data[4:7].strip()
                        if slave.isnumeric() and data.isnumeric():
                            # Handle data
                            vars.input = int(data)
                            # Some monitor thingy
                            vars.tac = time.perf_counter()
                            vars.wdog += 1
                            if vars.wdog > 9999:
                                vars.wdog = 0
                            if not vars.online:
                                vars.online = True
                                main.debug("Comm: Slave online!!!")


        if vars.tac+3 < time.perf_counter():
            if vars.online:
                vars.online = False
                main.debug("Comm: Slave offline...")
Titel: Re: Raspberry Railways
Bericht door: Eric v C op 14 november 2022, 22:27:44
Iemand een idee trouwens hoe ik een mooie vitrine kan maken voor de treinen die tegen de 45 graden van het dak aan kan?

Dakkapel plaatsen ? :P

Leuk draadje trouwen RASP.
Heb je trouwens ervaring met de RPI met 5 inch TFT en 1 of meerdere webcams die daarop getoond kunnen worden ?

Eric
Titel: Re: Raspberry Railways
Bericht door: Rasp op 16 november 2022, 00:04:20
Oke het een en ander geprobeerd om de communicatie stabiel te krijgen met de Loconet hardware.
Kwam er alleen achter dat de UART van de Pico en Pi in Idle-stand een signaal afgeven 3,3V en bij het versturen deze naar -0- zetten.

De Pico kan je makkelijk de UART inventeren via de software, de Pi niet en toen heb ik met testen helaas de RX pin denk een beetje opgeblazen.....
Oepsie  :'( Maar goed dit was toch een oude dus niet heel erg. Nu maar gauw een 74HC04 bestellen voor we weer verder gaan om het niet weer te laten gebeuren...

Ondertussen wel de functies van de Pico printplaat kunnen testen en toen ben ik ongeveer hier op uitgekomen, volgens mij moet alles zo werken.

(https://images.beneluxspoor.net/bnls_2022/Schematic-Spoorprint-2022-11-15-6374181453feb.png) (https://images.beneluxspoor.net/bnls_2022/Schematic-Spoorprint-2022-11-15-6374181453feb.png)
Titel: Re: Raspberry Railways
Bericht door: Rasp op 16 november 2022, 00:08:44
Bedankt Eric, helaas is dat geen optie me vrouw ziet me al aankomen ;)

Nee heb ik nog nooit gedaan maar moet wel kunnen denk.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 06 december 2022, 00:01:43
Oke, even het interface boardje voor de Raspberry gemaakt.
Weet nog niet of ik de Pi extern met 5V wil voeden, maar dan zit het er vast in.
Moet er misschien nog een schottky diode voor de zekerheid tussen de 5V aansluiting en de aansluiting naar de GPIO van de Pi?
Tevens zit er ook gelijk de voeding a la Loconet in voor de interface.
Een 74HC04 om de Rx en Tx om te draaien, extra Rx om via een Python Scripje op me PC de data te loggen en monitoren.
En 3 controlle ledjes.

Hoe breed moet eigenlijk een PCB spoortje zijn voor de 2A van de Raspberry Pi, ik heb nu 0,5 mm (Heb verder de standaard instellingen gebruikt van EasyEDA)

(https://images.beneluxspoor.net/bnls_2022/Rasp1-638e763d2600e.png) (https://images.beneluxspoor.net/bnls_2022/Rasp1-638e763d2600e.png)

(https://images.beneluxspoor.net/bnls_2022/Rasp2-638e763d28044.png) (https://images.beneluxspoor.net/bnls_2022/Rasp2-638e763d28044.png)
Titel: Re: Raspberry Railways
Bericht door: bask185 op 06 december 2022, 09:03:30
Ik zat nog te kijken naar het schema van November, maar ik heb nu pas opmerkingen  :-\

Die 4 x weerstand + bc547 zijn prima, maar uit ervaring kan je vertellen dat je liever een uln2003 IC wilt gebruiken. Die heeft slechts te maken met de assemblage. ICs solderen makkelijk en snel. 4 x weerstand + bc547 is veel meer arbeid. Pootjes buigen, solderen pootjes afknippen, tinzuiger er bij pakken omdat je die bc547 weer eens aan elkaar heb gesoldeerd  :P (tenzij je ruime pads heb). Je blijft bezig...

Je servo connectoren hebben de 5v en gnd omgedraaid voor standaard servo's betreft.

Boven de optocoupler U4 heb je vier losse diodes. Ook dat is moeilijk veel arbeid. Je kan er ook een gelijkrichter neerzetten vanwege de arbeid. Je moet nu 8 pinnen ombuigen, solderen en afknippen. Ik raad ook niet die ronde gelijkrichters aan omdat die lange poten hebben. Ik zou daar een MB10M neerzetten.

Ik heb ook mijn bedenkingen over de zekering F1. Ik weet niet hoe snel die reageert, maar dat kan ontoereikend zijn. Hoewel je met een goed koellichaam er mee zou kunnen komen. Wat je hier kan doen, is om een shunt weerstand (0,1R) te plaatsen tussen de gnd pin van de H brug en de ground van de print. Dan kan je over de shuntweerstand de spanning meten en daarmee kan je de stroom berekenen.

Dan kan je een kortsluiting detecteren in software en na ~50ms afschakelen (gebruikelijke waarde van dcc centrales). Een bijkomend voordeel is dat behalve kortsluitdetectie je ook stroomdetectie heb. Dit kan je ook gebruiken voor detectie en dan kan je je optocoupler weglaten.

Ik zie ook dat je schema building skills er erg op vooruit zijn gegaan  (y). Ik heb slechts een laatste tip die ik kan geven, en dat is om namen te gebruiken voor je labels. Ik zie nu bij de uController dat er aan pin GP11 een ding is aangesloten op iets wat ook GP11 heeft, maar wat is GP11? Je kan je inputs bijvoorbeeld nummeren, Inp1, Inp2, Inp3 etc. Servo1, Servo2, Outp1, Outp2, PWM1, PWM2 etc.

Mvg,

Bas
Titel: Re: Raspberry Railways
Bericht door: Rasp op 06 december 2022, 16:55:33
Haha geeft niet, ben ook nooit de snelste...
Ah natuurlijk, dat is inderdaad makkelijker om een ULN2003 te gebruiken.
Servo aansluitingen loop ik even na.
Ik heb nog van die ronde gelijkrichters liggen dus dat knippen neem ik wel voor lief dan....
Ja die zekering is er ook meer denk voor mijn emotie ;D
Dank je, door de goede feedback leer ik er een hoop over! En dat ik net ook de bedoeling dat ik het zo doe, ik zal de labels wel hernoemen inderdaad makkelijker.

Nog opmerkingen over me andere print waarmee ik de raspberry wil aansluiten?
En is die koperbaan dik genoeg op 0.5mm voor de stromen van of de voeding van een trein HO of de voeding van een Raspberry?
Titel: Re: Raspberry Railways
Bericht door: Rasp op 06 december 2022, 21:37:29
Wat betreft die meeting, dat zou er dan zo uit moeten zien (even snel getekend).
Maar de Pico mag maar 3,3V op de analoge ingang hebben, gaat dat wel goed dan?

(https://images.beneluxspoor.net/bnls_2022/PicoMod-638fa700e268c.png) (https://images.beneluxspoor.net/bnls_2022/PicoMod-638fa700e268c.png)
Titel: Re: Raspberry Railways
Bericht door: bask185 op 06 december 2022, 21:47:36
U = I x R.

2A x 0,1R = 0,2V

0,2 < 3,3

 (y)
Titel: Re: Raspberry Railways
Bericht door: Rasp op 06 december 2022, 22:00:39
Haha, ja sorry das waar. Weer even een tijdje geleden,
maar hoe kom je aan die 2A is dat de maximale stroom van de TA8050p als ik het goed gezien heb,
Is dan 1R niet beter voor meer range?
Titel: Re: Raspberry Railways
Bericht door: bask185 op 06 december 2022, 22:52:47
Ik dacht dat 2A wel een mooie waarde was om de grens te trekken. Je kan ook de grens lager zetten op 1.5A ofzo.... net wat je programmeert.

De warmte ontwikkeling in een weerstand bereken je met P = I^2 x R. Met I = 2A en R = 1R zit je al op 4 Watt. Je hebt ook niet veel range nodig ofzo.

Met arduino heb ik een 10 bits ADC waarde over 5V. 1 ADC stapje is dan 0,005V. Stel dat ik minstens 20mA wilt kunnen detecteren dan bereken ik R shunt met U / I = 0,005/ 0,020 = 0,25R. Maar zet ik de grens op 50mA dan volstaat 0,1R. En dan hebben we het over een ADC waarde van 1.. van de 1023 wat dus al genoeg is voor detectie.

Ik denk dat 0,25R een prima waarde is. Met 1A als max red je het met een 0,25W weerstandje. Anders moet je een iets vettere weerstand pakken van een halve of 1W.

Mvg,

Bas

P.S.
Maak anders een interactief python script voor jezelf waar je deze dingen kan berekenen  :P Dat doe ik ook wel eens.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 08 december 2022, 23:02:01
Top bedankt voor alle tips!

Dit is het schema wat ik nu voor de pico's heb, volgens mij is die compleet zo.

(https://images.beneluxspoor.net/bnls_2022/Pico-63925e890fce8.png) (https://images.beneluxspoor.net/bnls_2022/Pico-63925e890fce8.png)
Titel: Re: Raspberry Railways
Bericht door: Rasp op 09 december 2022, 12:40:41
Oeps ik zie dat de servo aansluiting nog verkeerd zit.... Nouja pas ik nog wel even aan.
Voor de voeding van en naar de baan zat ik aan een koperbreedte van 0,5mm te denken, als ik zo kijk kan die max 1.8A aan met een temperatuur verhoging van 20 graden.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 02 februari 2023, 22:12:27
Duurde even om het ontwerp af te maken, maar vorige week besteld en nu al binnen voor dat geld  (y)
Hopelijk snel even 2 solderen en testen!



(https://images.beneluxspoor.net/bnls_2023/IMG-20230202-220618-63dc26a7d9ace.jpg) (https://images.beneluxspoor.net/bnls_2023/IMG-20230202-220618-63dc26a7d9ace.jpg)
Titel: Re: Raspberry Railways
Bericht door: Rasp op 21 februari 2023, 22:39:13
Een setje printjes in elkaar gezet en wat blijkt.... Werkt gewoon met het test programmatje.  ;D



(https://images.beneluxspoor.net/bnls_2023/IMG-20230221-212938-63f53987ae255.jpg) (https://images.beneluxspoor.net/bnls_2023/IMG-20230221-212938-63f53987ae255.jpg)

(https://images.beneluxspoor.net/bnls_2023/IMG-20230221-221039-63f53987e3b4c.jpg) (https://images.beneluxspoor.net/bnls_2023/IMG-20230221-221039-63f53987e3b4c.jpg)
Titel: Re: Raspberry Railways
Bericht door: bask185 op 22 februari 2023, 08:49:40
 (y)

Die GUI met python + Tkinter library gemaakt?

Bas
Titel: Re: Raspberry Railways
Bericht door: Rasp op 22 februari 2023, 17:01:07
Wel met Python maar met PyQt5, wel beetje het zelfde.
Naast het test programmatje heb ik al een begin van het echte programma wat zo de aansturing moet gaan regelen:



(https://images.beneluxspoor.net/bnls_2023/PyQt5-1-63f63b6d58690.png) (https://images.beneluxspoor.net/bnls_2023/PyQt5-1-63f63b6d58690.png)

(https://images.beneluxspoor.net/bnls_2023/PyQt5-2-63f63b6db05b4.png) (https://images.beneluxspoor.net/bnls_2023/PyQt5-2-63f63b6db05b4.png)

(https://images.beneluxspoor.net/bnls_2023/PyQt5-3-63f63b6e01efe.png) (https://images.beneluxspoor.net/bnls_2023/PyQt5-3-63f63b6e01efe.png)


Je had trouwens wel gelijk, zo een zekering doet niet veel anders dan heel veel warmte maken met kortsluiting. Had de weerstand nog niet besteld, dat nu gedaan en dan software-matig de sturing uit zetten bij kortsluiting.
Titel: Re: Raspberry Railways
Bericht door: Rasp op 23 februari 2023, 00:14:38
Ik wil van de treinen die rond rijden een soort kleine icon/tekening laten zien, ik zie ze wel eens in de footer van iemand die wat post.
Is daar een soort data base van of een programmatje om ze te maken?

Zo iets als dit:

(https://images.beneluxspoor.net/bnls_2023/gettyimages-165592016-2048x2048-63f6a17174498.webp) (https://images.beneluxspoor.net/bnls_2023/gettyimages-165592016-2048x2048-63f6a17174498.webp)

(https://images.beneluxspoor.net/bnls_2023/gettyimages-165607768-612x612-63f6a18130417.jpg) (https://images.beneluxspoor.net/bnls_2023/gettyimages-165607768-612x612-63f6a18130417.jpg)
Titel: Re: Raspberry Railways
Bericht door: Rasp op 02 april 2024, 19:40:24
Oke, was weer even lang stil. Druk druk.

Maar ik heb ondertussen iets van een baanplan, het is HO met profigleis van Fleischmann.
De treinen kunnen hier ronden rijden en keren, zodat een trein niet altijd dezelfde richting op gaat.
Stoppen bij het station als het een passagierstrein is en op het rangeer stuk voor goederen (Is nog niet helemaal af want wil daar juist met de hand kunnen rangeren).
In de toekomst misschien nog een "eind"station maken waar ik nu nog ruimte heb, maar dat is voor later.

Er zitten genoeg rare stukken in, maar die wil ik met flexrail oplossen.
Misschien mag het schaduwstation op het onderste niveau wel ruimere bochten hebben en ik weet niet zeker of op het bovenste niveau de wisselstraten goed gaan in de bochten, daar heb ik geen ervaring mee.

(https://images.beneluxspoor.net/bnls_2024/Baanplan-660c411f165fd.png) (https://images.beneluxspoor.net/bnls_2024/Baanplan-660c411f165fd.png)