LPS, Local Positioning System

Het blijft me bezighouden: hoe bepaal ik de positie van treinen en wagonnen. Dus opnieuw een idee uitgeprobeerd: met behulp van ultrasoon geluid!

Nu klinkt dat [pun intended] misschien wat raar, maar geluid gaat met een snelheid van ‘slechts’ zo’n 340 meter per seconde. Dus 34cm per milliseconde. En als je je bedenkt dat een Arduino zo ongeveer op de microseconde kan meten, dan weet je dat in principe een positiebepaling door het verschil wanneer een geluidspuls vanaf een loc bij verschillende ontvangers aankomt te meten, ook de daadwerkelijk positie heel redelijk bepaald kan worden. Eigenlijk wat een GPS-ontvanger ook doet, maar dan op kleinere schaal en met geluid in plaats van radio-golven.

Maar helaas, een eerste test verliep niet goed. Bij onze grote vriend AliExpress een stuk of wat ultrasone tranceivers gekocht, en daar mee aan het experimenteren.

Helaas blijken deze jongens heel erg richtingsgevoelig. Als je er net naast mikt wordt er meteen helemaal niets meer ontvangen. En dan wordt in de praktijk vrijwel geen enkele puls die vanaf de loc wordt verstuurd daadwerkelijk door een ontvanger ‘gezien’.

Op zoek naar een andere oplossing…

220V voorziening

Toch maar een keer alles wat met 220V te maken heeft op één plank gemonteerd. Bovenaan een kunststof behuizing met aansluitingen voor een apparaatstekker, de noodschakelaar, twee stopcontacten waarvan er een geschakeld wordt via de noodschakelaar en de andere -voor de pc- niet, en twee aanluiten naar de gelijk- en wisselstroomvoedingen.

Detectie

Om te detecteren waar een trein zich bevindt heb ik gekozen voor Hall-sensoren die tussen de bielzen geplaatst worden. De treinen en wagonnen worden voorzien van magneten, zodat elke Hall-sensor een signaal afgeeft zodra een trein of wagon over de sensor rijdt.

Per detectiepunt zijn er twee sensoren, zodat ook de beweegrichting bepaald kan worden.

En het werkt! Let op het led’je boven in beeld dat even aan gaat op het moment dat de wagon over de sensor beweegt:

 

Weer iets verder…

De Electronica-bak is weer iets verder, en de eerste vijf wissels zijn aangesloten.

Ongeveer een uur kwijtgeraakt aan een defecte trafo, maar na een paar uurtjes zweten heb je dan ook wat.

Een bak aan electronica…

De electronica voor de automatisering heeft ook ruimte nodig. Hiervoor heb ik een houten bak gemaakt met als bodem vrij dun triplex. Hierdoor is het lichtgewicht en kan er toch her en der iets met boutjes in vast gezet worden.
De bak wordt met onder de baan tegen de wand bevestigd, met scharnieren zodat ik ook nog bij de onderkant kan om de boutje aan te draaien.

Rechts tegen de wand van de doos zie je de USB naar I2C-convertor. Dit is het punt waar de PC met het geheel verbonden wordt.
De uitgang van de I2C gaat naar twee blokken van elk 16 relais. Deze bedient straks de wissels en ontkoppelrails.
Links zie je een gevoede USB-hub die zorgt voor de voeding van het I2C-gebeuren.

Een rij bedieningen voor de seinen is het volgende dat wordt toegevoegd.

De baanbesturing

Om de baan te kunnen besturen is niet alleen software nodig, maar ook een scherm om het programma op te kunnen tonen.

De bediening met een muis is lastig , maar op Marktplaats.nl heb ik een touchscreen-monitor op de kop kunnen tikken.

Baandetectie via Barcode

Een andere idee voor baandetectie is het plakken van een barcode onder elke loc en/of wagon, en in de baan met behulp van een IR-led en IR-ontvanger die barcode van een rijdende trein uitlezen. Ik heb dit nog niet uitgeprobeerd, maar al wel wat ideeën hier over:

  • De barcode mag niet symmetrisch zijn. Dat wil zeggen, je moet kunnen detecteren welke kant de loc op rijdt.
  • De barcode moet groot genoeg zijn voor een goede detectie

Baandetectie via RFID/NFC

Een tijdje geleden had ik het idee via Near Field Communication (NFC, https://nl.wikipedia.org/wiki/Near-field_communication) te detecteren waar een trein zich op de baan bevindt. Het idee is dan dat elke loc (en eventueel zelfs elke wagon, RFID-chips kosten vrijwel niets meer) een RFID-chip aan boord heeft. Onder de baan bevinden zich dan de uitlezers, en die geven hun info dan weer door aan de centrale computer die op basis van die gegevens de seinen, wissels etc aan kan sturen.

Helaas blijkt dit vooralsnog niet te werken. Het detecteren van de chip van de rijdende trein is niet betrouwbaar genoeg. En dan houdt het eventjes op 🙁