Gebruik van speciale image - rwmodeltrain/departure-board GitHub Wiki
Image voor Raspberry B+
Er is een 'disk-image' beschikbaar met de complete installatie van departure-board, waarbij de instellingen van de Epinal baan zijn opgenomen. Er zijn nog een paar aanpassingen nodig om de image ook op het thuis-netwerk te laten functioneren, zo heeft iedere RPi een eigen IP nummer nodig dat past binnen het netwerk en moet worden aangegeven waar de gedeelde map op de Windows machine staat. Ook de ini-files moeten worden aangepast met informatie over de eigen baan, dat is elders beschreven.
Downloaden van image en wegschrijven naar Micro SD kaart
Het imagebestand is hier te vinden: Klik. Het werkt voor zover bekend alleen op een Raspberry B+.
Na het downloaden van het image-bestand moet deze worden weggeschreven naar de Micro SD kaart. Er is een Micro SD kaart nodig met een minimale capaciteit van 2GB. Het wegschrijven van het image-bestand naar de Micro SD kaart kan met het programma Win32 Disk image, te vinden op Sourceforge.
- Start het programma
- Selecteer het image-bestand dat je gedownload hebt
- Kies de drive waar de SD kaart zicht bevindt (kies de juiste!)
- Klik op 'Write' en wacht tot het image-bestand is weggeschreven
- Sluit het programma en verwijder (veilig) de SD kaart
Aanpassen installatie
Plaats de Micro SD kaart in de Raspberry PI B+, zonder dat deze op het netwerk is aangesloten. De installatie gaat er nog niet vanuit dat een TFT scherm is aangesloten, het zal opstarten via het op de HDMI-poort aangesloten scherm. Er wordt automatisch ingelogd met gebruiker 'pi' en wachtwoord 'raspberry'. Er zijn twee bestanden die aangepast moeten worden: interfaces
en trains.sh
.
Aanpassen netwerkconfiguratie
In het bestand interfaces
staat de netwerkconfiguratie van de RPi. Hierin staat een IP adres van de RPi, deze dient aangepast te worden naar de eigen netwerkomgeving. Om de RPi makkelijk bereikbaar te maken via bijvoorbeeld een terminal programma of een programma om bestanden van en naar de RPi te verplaatsen is het raadzaam om met een vast ip-adres te werken.
Om het bestand interfaces
aan te passen zijn sudo (administrator) rechten nodig, open het bestand met:
sudo nano /etc/network/interfaces
Hier staat nu:
iface eth0 inet static
address 192.168.1.25
netmask 255.255.255.0
gateway 192.168.1.1
Vervang 192.168.1.25
door een IP nummer dat past binnen de eigen netwerk-range. Pas zo nodig ook de gateway aan, dit is meestal het IP adres van de router. Gebruik CTRL-X en 'y' om het bestand op te slaan en de texteditor af te sluiten.
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', daar zijn we al mee ingelogd. Er zijn dan ook geen 'sudo' rechten nodig om het bestand aan te passen. 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
Om het script uitvoerbaar te maken moeten de hashtags (#) worden verwijderd, behalve de eerste! 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.
Herstart de Pi
Om de wijzigingen actief te maken dient de RPi opnieuw opgestart te worden. Zorg dat de Windows machine aan staat, sluit de RPi aan met een netwerkkabel en type in de console van de RPi:
sudo reboot
De RPi start opnieuw op, zal overschakelen naar het TFT scherm (als aangegeven), zal het volume op 96% zetten, koppelt de RPi met de share op de Windows machine en start vervolgens departure-board op. Bij het opstarten is ook een treinhoorn te horen, zodat duidelijk is dat het geluid werkt. Afsluiten van departure-board kan via de 0
op het numerieke toetsenbord, vervolgens wordt gevraagd wat te doen met de andere RPi's (kies 0
en druk enter
) en of de applicatie moet worden afgesloten (kies 1
en druk enter
).