Nieuw huis, nieuwe vitrines

Sinds een paar maanden hebben we een nieuw huis. Dus weer een nieuwe baan, maar ook nieuwe vitrinekasten. Weer besteld bij vitrine24.de, al ging dat deze keer bepaald niet van een leien dakje. Al met al een week of 10 moeten wachten…

Maar, gisteren opgehangen, vandaag gaan we ‘m vullen!

Een nieuwe baan.

…en toen waren we opeens meer dan twee jaar verder. En een stuk of 3 of 4 woonadressen. In twee landen. Oftewel, verhuisd naar Spanje, teruggekomen ivm o.a. Corona, en een nieuw huis gekocht.

Nu na drie maanden begin ik eindelijk tijd te krijgen om weer met de modelspoorbaan te beginnen. Voordeel is wel dat ik deze keer een zolder heb met het trapgat in het midden. Dat betekent dat er straks echt rondgereden kan worden.
Het plan is nu als volgt:

Met name het gedeelte rechtsboven zal nog wel anders worden.

En de eerste werkzaamheden zijn ook begonnen, wat je hieronder ziet wordt het gedeelte rechtsonder van het sporenplan.

Nog een keer treindetectie…

Na meerdere pogingen voor een goede, betrouwbare en betaalbare treindetectie kreeg ik een link onder ogen naar een site met info over detectie met RFID. Nou had ik dat al een keer gepoogd met slecht resultaat. Maar wat blijkt: ik gebruikte een RFID-tag met 13.56MHz, en in het artikel werd een tag met 125KHz gebruikt.

Dus ome Ali weer eens bezocht en wat 125KHz-spulletjes besteld, zowel een RFID-reader die aangesloten kan worden op een Arduino, als een setje tags. De reader kostte zo’n 2,50 euro, met verzendkosten 4 euro. De tags waren 10 stuks voor 3,50 euro. Mocht het allemaal gaan werken dan zijn deze spullen in grotere hoeveelheden veel goedkoper.

Na vele weken wachten (Chinees nieuwjaar, Corona-virus) kwamen de spullen eindelijk binnen. De reader onder de testrails geplaatst:

Reader aangesloten op de Arduino:

De Arduino geprogrammeerd aan de hand van deze video, en toen een van de tags boven de reader gehouden… Werkt!

Toen een tags onder een loc geplakt en deze over de rails over de reader laden rijden. Helaas. Geen reactie. Naar blijkt is die afstand nét te groot, of je moet de tag zo laag plaatsen dat deze zichtbaar wordt, en dat wil je niet, toch?!
Daarom heb ik zojuist super-kleine glazen tags besteld. Deze zijn 2 bij 12mm en kunnen onder een wielstel geplakt worden. Nu nog even weer een paar weken wachten op ome Ali…

Treindetectie met een Raspberry Pi Zero

Het probleem van hoe een trein te detecteren blijft me bezighouden. Eerder heb ik dit al geprobeerd met barcodes, Hall-sensoren en ultrasoon geluid. Hiervan werkt alleen de oplossing met Hall-sensoren, maar die heeft weer als nadeel dat je ze in de baan moet inbouwen.

Mijn nieuwe poging is om een bewegende trein te laten detecteren door een videocamera. Dit klinkt ingewikkeld en vooral duur, maar dat valt op zich wel mee.
Wat je nodig hebt is een Raspberry Pi Zero W, die koop je voor zo’n 10 tot 15 euro, bijvoorbeeld hier. Bij AliExpress koop je een camera voor een paar euro. Let wel op dat je eentje koopt die voor de Zero geschikt is, de aansluiting is anders dan op een ‘normale’ Raspberry Pi.
Ook heb je wellicht nog wat kabeltjes nodig om een muis, toetsenbord en monitor aan te sluiten. Dat is uiteraard niet meer nodig als alles klaar is, maar tijdens de bouw wel. Let op dat er een micro-usb aansluiting zit op de Zero voor muis en toetsenbord, en een mini-hdmi voor de monitor. Er zijn wel leuke aanbiedingen te vinden waarbij je alles in een keer koopt.
Ook heb je een micro-sd-kaart nodig. Liefst eentje van 32GB of meer. En let op: dat kaartje MOET geformateerd worden met FAT32 en dus NIET exFat of NTFS!

Als je alle spullen verzameld hebt kan je beginnen de software te installeren.
– Download Raspbian Stretch full version.
– Pak dit bestand uit, je hebt nu een .img bestand
– Zet deze image op je sd-kaart, bijvoorbeeld met balenaEtcher.
– Start je Raspberry Pi Zero met deze sd-kaart, en volg de instructies
– Start een terminal en type ‘sudo raspi-config’, en kies bij de advanced options de eerste optie om het geheugengebruik te optimaliseren. Bij de interfacing options kies je ook weer de eerste optie om de camera te activeren. Herstart hierna je Raspberry Pi Zero.
– Installeer OpenCV door weer een terminal te starten en een script te downloaden:wget http://www.alexkwak.nl/rpz/install_cv3.script. Maak dit script uitvoerbaar door: chmod a+x install_cv3.script. En voer het uit: ./install_cv3.script. Meer info vind je hier.
– Installeer de module imutils door: pip3 install imutils.
– Download nu de demo van het bewegings-herkenningsprogramma: wget http://www.alexkwak.nl/rpz/motion_detector.py en start deze met python3 motion_detector.py. Meer info vind je hier.

Dit is de basis voor (trein)detectie. In een volgend artikel zal ik ingaan op de verdere uitwerking.

Autootjes…

Niet alleen materieel op rails is nodig voor een baan, aankleding met auto’s moet natuurlijk ook.

Gisteren naar een modelautobeurs geweest, en daar voor een heel schappelijk prijsje flink wat kunnen aanschaffen

Geluid met Arduino

Stationsgeluiden, de bellen bij een overweg, enz enz.
Hartstikke leuk natuurlijk om die ook te laten horen op de baan. En dat moet dan toch kunnen met een Arduino? Ja, maar niet zonder slag of stoot…

Het probleem is dat er geen eenvoudige manier is waarmee je ‘gewoon’ een MP3 of WAV aan kunt bieden en dat die dan afgespeeld wordt.
Wat ik uiteindelijk heb gebruikt is https://www.hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio. Probleem daarmee is dat er nogal wat onduidelijkheden staan op die site. Ik zal hier mijn bevindingen plaatsen:

Allereerst heb je iets nodig om je geluidsbestanden op te plaatsen: een SD-kaart. Ik heb deze bij AliExpress aangeschaft: https://nl.aliexpress.com/item/1PCS-Micro-SD-Storage-Expansion-Board-Mciro-SD-TF-Card-Memory-Shield-Module-SPI-For-Arduino/32523546123.html

SimpleSDAudio leest NIET het bestand dat opgegeven wordt, maar zoekt de eerste sector op de schijf op en leest daarna domweg de volgende sectoren. Als een bestand gefragmenteerd is werkt dit dus niet. Oplossing: formatteer je SD-kaart, en plaats je bestanden. Nieuw bestand toevoegen? Geen probleem…. totdat je ook een keer een bestand hebt verwijderd 🙁

SimpleSDAudio leest geen MP3 of WAV(!), maar alleen een raw-bestand dat in feite per byte het volume weergeeft. Door dat 31250 keer per seconde te doen krijg je geluid.
Zo’n raw-bestand maak je met het meegeleverde ‘sox’. Het commando dat ik gebruik en goed werkt is:

sox spoor12.mp3 --norm=-1 -e unsigned-integer -b 8 -r 31250 -c 1 -t raw converted/spoor12.raw

Let er ook op dat bestandsnamen aan de prehistorische eis van maximaal 8+3 karakters moet voldoen.

Hierna is het een kwestie van een kleine sketch maken:

#include <SimpleSDAudio.h>

void setup() {
SdPlay.setSDCSPin(4); // sd card cs pin
SdPlay.init(SSDA_MODE_HALFRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER);
play("ding.raw");
play("spoor12.raw");
}

void loop(void) { }

void play(String file) {
SdPlay.setFile(file.c_str());
SdPlay.play(); // play music
while (!SdPlay.isStopped()) { }
}

Verkeerslichten met een Arduino

Had ik al gezegd dat knutselen met een Arduino verslavend is? 🙂
Nu in een uurtje een verkeerslicht gemaakt. Nou ja, de vekeerslichten zelf zijn nog in bestelling bij AliExpress, dus maar even een paar seinen gepakt. Vandaar dat groen boven zit enz.
De sessie start met knipperend oranje. Dan klik ik op een knop op de PC en gaan even alle lichten op rood, waarna de normale groen-oranje-rood cyclus wordt doorlopen, net zo lang tot ik weer op de knop klik. Dan gaat na afloop van een cyclus even alles op rood, om daarna weer oranje te gaan knipperen.

Voor meer info zie ook http://www.alexkwak.nl/elektronica/spelen-met-arduinos/

Spelen met Arduino’s

Arduino’s zijn kleine computertjes, waarmee je heel eenvoudig zaken aan kunt sturen.

Zo had ik een tijd geleden een mini-display aangeschaft, en ben er vandaag eens voor gaan zitten om hiermee een stations-informatiebord te maken. En dat was binnen een uur gepiept. Ook de koppeling met de PC is eenvoudig gemaakt. Met een klik van de muis verandert de tekst op het display:

Wil je dit zelf doen? Dat kan eenvoudiger dan je wellicht denkt.
Wat heb je nodig:
1) Een Arduino Uno, ongeveer 3 euro, bijvoorbeeld https://nl.aliexpress.com/item/Free-shipping-UNO-R3-MEGA328P-with-usb-cable-for-Arduino-Compatible-Dropshipping/32241225914.html
2) Een display, ongeveer 2 euro, bijvoorbeeld deze: https://nl.aliexpress.com/item/1pcs-0-96-yellow-blue-0-96-inch-OLED-module-New-128X64-OLED-LCD-LED-Display/32637614958.html
3) Wat kabeltjes, ongeveer 1 euro: https://nl.aliexpress.com/item/40PIN-Dupont-Lijn-10-cm-20-cm-30-cm-Male-naar-Male-Vrouwelijke-naar-Mannelijke-en/32891879068.html Voor dit project heb je alleen male-female nodig, maar als je toch besteld, bestel dan van alles wat.
4) Een USB-kabel, type A naar type B, ongeveer 1 euro: https://nl.aliexpress.com/item/Hoge-Snelheid-Transparant-Blauw-USB-2-0-Printer-Kabel-Type-A-Male-naar-B-Male-Dual/32845453952.html
5) De code, gratis. Ik heb een voorbeeld gemaakt voor een ‘sketch’ (=programma) voor de Arduino dat twee verschillende teksten kan schrijven op het display, en een C#-programma dat een commando vanaf de Windows-PC naar de Arduino kan sturen zodat je onder andere kan wisselen van tekst. Je vindt die code op deze pagina.

Installeer de Arduino-IDE (https://www.arduino.cc/en/main/software). Open de Arduino-sketch van punt 5 hierboven. Selecteer in de Arduino-IDE het juiste apparaat en de juiste com-poort, en upload de sketch.
Verbind het display met de Arduino:
SDA -> A4
SCK -> A5
VDD -> 3.3V
GND -> GND
Je moet nu het eerste scherm al op het display zien. Herstart eventueel de Arduino.

Installeer nu Visual Studio van Microsoft (https://visualstudio.microsoft.com/downloads/, gratis!) en open het C#-project van punt 5 hierboven. Voer deze uit en in het scherm dat verschijnt select de juiste com-poort en stuur commando 254. Als antwoord moet je dan krijgen: “4;Arduino Uno;NS board”.
Stuur commando 253 en de tekst op het display zal wijzigen.

Ballast

Een tijd geleden had ik al de nodige ballast gekocht van Woodland. Hiermee heb ik bijvoorbeeld de brug gedaan. Op zich is deze ballast heel er mooi: de structuur lijkt goed op de echte ballast, en de kleur is ook mooi.

Maar… het verwerken vind ik tegenvallen. Om het vast te leggen gebruik ik transparant opdrogende voorstrijk. Die zou makkelijk in de ballast moeten vloeien, maar dat gebeurt dus niet. De druppels blijven eerst een tijdje liggen voordat deze eindelijk in de ballast trekken. Hierdoor ontstaat een soort maanlandschap, niet mooi dus.

Toevallig moest ik ook een paadje aanleggen en gebruikte ik hiervoor een soort ballast van Busch. En dat werkte echt vele malen beter! Dus op naar de winkel en het laatste zakje Busch 7070 ballast gekocht. Net zo’n mooie kleur, alleen is de korrel wat meer afgerond waardoor het net wat minder echt lijkt. Het zij zo.

De ‘oude’ laag Woodland is inmiddels verwijderd (met spiritus, gaat prima) en nu verder bezig de nieuwe laag te leggen.