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.