Koppeling maken met PC voor uitlezen Koploper - rwmodeltrain/departure-board GitHub Wiki

Aanpassen train.sh

Het script in het bestand train.sh wordt uitgevoerd op het moment dat de RPi wordt opgestart. Dit bestand staat in de home directory van de gebruiker 'pi'. Type in de console van de RPi:

nano train.sh

Het bestand bevat de volgende regels:

#! /bin/sh
sudo modprobe fbtft_device name=sainsmart18 rotate=270
sleep 3
con2fbmap 1 1
sleep 2
amixer set PCM -- 0
sudo mount.cifs //192.168.1.61/Data /mnt/koploper -o username=username,password=password

if [ -f master.txt ]
then
sudo python 1.py
else
sudo -u pi python 1.py
fi

Hieronder een uitleg van de regels in het script:

sudo modprobe fbtft_device name=sainsmart18 rotate=270: Schakelt de drivers voor het TFT scherm in, waarbij het scherm 270 graden wordt gedraaid. Het is in ieder geval nodig om het scherm 90 graden te draaien zodat het in de lengterichting wordt gebruikt, voor gebruik in de behuizing zoals opgenomen in deze implementatie moet het scherm nogmaals 180 graden worden gedraaid.

sleep 3: Wacht 3 seconden. Niet duidelijk of dit nog nodig is

con2fbmap 1 1: Schakelt over naar het TFT scherm. Als er nog geen TFT scherm is aangesloten dient deze regel nog vooraf worden gegaan door de #. Ook als een gewoon HDMI scherm wordt gebruikt naast het TFT scherm kan deze regel uitgeschakeld blijven.

amixer set PCM -- 0: Schakel het volume van de RPi in, standaard staat deze heel laag. Als voor 1000 wordt gekozen in plaats van 0 dan is het volume 100%

sudo mount.cifs //192.168.1.61/Data /mnt/koploper -o username=username,password=password: Vervang //192.168.1.61/Data door de verwijzing naar de gedeelde map op de Windows computer waar de Koploperbestanden te vinden zijn. Kijk hier voor meer informatie. Er wordt met deze een zg 'mount' gemaakt zodat de map voor de RPi bereikbaar is via de interne verwijzing /mnt/koploper/. Uiteraard moeten de gebruikersnaam en wachtwoord ook vervangen worden door de gebruikersnaam en wachtwoord van de windows gebruiker die lees- en schrijfrechten heeft op de gedeelde map.

Het laatste blok:

if [ -f master.txt ]
then
sudo python 1.py
else
sudo -u pi python 1.py
fi

Er wordt gecontroleerd of de huidige RPi de 'master' is, dat wil zeggen dat deze RPi rechten heeft om de huidige baansituatie op te slaan en de andere RPi's mag rebooten/afsluiten. Als het bestand master.txt aanwezig is, wordt de Python code gestart als sudo (administrator), dit is nodig om de baansituatie op de Windows share weg te schrijven. De baansituatie wordt op de share weggeschreven, want alle RPi's maken gebruik van deze informatie. Als de huidige RPi geen master is dan dient het master.txt bestand verwijderd te worden, dit kan via de console of via een programma als filezilla. Op deze pagina staat hierover meer informatie. Als de RPi geen master is wordt de baansituatie bij afsluiten niet opgeslagen. Alleen de master RPi kan dit.

Gebruik CTRL-X en 'y' om het bestand op te slaan en de texteditor af te sluiten.