RocView op 2 monitoren – het resultaat

Dit is het vervolg op de blog “RocView op 2 monitoren – de stand van zaken”.

Inmiddels zijn alle componenten binnen en kan het “assembleren” beginnen. Allereerst de laatste stappen op software gebied gezet. Bij het installeren van RocView op de Raspberry PI Zero was het de bedoeling dat RocView automatisch zou starten op het moment dat de PI Zero gestart wordt. Raspberry PI’s worden nog al eens gebruikt om in “kiosk mode” te draaien. Dat wil zeggen zonder toetsenbord en meestal alleen om een webpagina te tonen of een bepaald programma te starten en op het scherm te tonen. Met een simpele configuratie kun je dit regelen. Je moet daarvoor het “autostart” bestand aanpassen. En als er nog geen autostart bestand is, dan moet je die zelf aanmaken.

Alleen was de documentatie die ik had niet helemaal juist, en was het niet duidelijk welk autostart bestand ik moest hebben. Op meerdere plekken is een autostart bestand aanwezig met een andere inhoud. Uiteindelijk is het gelukt om het juiste autostart bestand te vinden, en de juiste opdracht toe te voegen. Belangrijk om te weten is, dat RocView het rocview.ini bestand nodig heeft van de gebruiker die RocView start. RocView start je op vanuit de installatiefolder van RocRail. Belangrijk om te weten is ook dat je niet RocView moet starten, maar het script rocview.sh. Dit script voert eerst een cd command uit naar de home directory zodat de rocview.ini beschikbaar is.
Om RocView automatisch op te starten moet je de volgende regel toevoegen aan het bestand /etc/xdg/lxsession/LXDE-pi/autostart:
@/opt/rocrail/rocview.sh

Nu dit gefixt is, is het niet meer nodig de VNC server te starten en via VNC de applicatie met de hand te starten. In de configuratie is VNC uit gezet. Hoe minder er draait op de PI Zero, des te beter. Het is per slot van rekening geen krachtige computer.

Nu alle componenten aanwezig zijn eerst even een kleine proefopstelling gemaakt en alles aangesloten en, daar waar nodig, met elkaar verbonden. En tot mijn tevredenheid werkt alles zoals het moet werken. Nu wordt het tijd om de voorbereidingen te treffen om de monitoren aan de muur te bevestigen, de Raspberry’s weg te werken achter de monitoren en de aansluitingen te regelen. Eén van de dingen waar je goed over na moet denken is, de aansluitingen. In mijn situatie valt dat nog mee. De beide monitoren hebben dankzij het dubbele apparaatsnoer maar 1 stopcontact nodig, de Raspberry PI Zero krijgt zijn voeding uit de Raspberry PI en de Raspberry gebruiken WiFi voor de netwerkverbinding. Zodoende heb ik alleen een dubbel stopcontact in de buurt nodig om alles aan te kunnen sluiten.

Ophangen monitoren

Ik heb gekozen voor relatief simpele en goedkope muurbeugels. Deze zijn draaibaar en kantelbaar. Ik heb nog overwogen om muurbeugels te nemen die vast zijn, maar dan komen de schermen erg dicht tegen de muur te hangen en ik weet niet of ik dan voldoende ruimte heb om de Raspberry’s weg te werken en of ik er überhaupt nog bij kan. Bovendien was het prijsverschil zeer gering.

Om de monitoren op de juiste onderlinge afstand op te kunnen hangen, tegen elkaar aan, en op gelijke hoogte, heb ik eerst een mal gemaakt van een strook multiplex. Deze strook plat op de grond gelegd, de eerste muurbeugel op de plank bevestigd, monitor er aan bevestigd en de tweede monitor, met muurbeugel, er naast gelegd. Vervolgens afgetekend waar de tweede muurbeugel moet komen en deze vastgeschroefd op de mal. Vervolgens gecontroleerd of de monitoren netjes tegen elkaar aansloten en vervolgens de muurbeugels verwijderd en de gaten opgeboord zodat deze overeenkomen met de maat van de boor om de gaten in de muur te boren. Gaten in de muur geboord, beugels bevestigd, monitoren bevestigd en bekabeling aangesloten.

De Raspberry’s zijn met zelfklevend klittenband bevestigd achter de monitoren. Het kan nog wel eens nodig zijn om deze er af te halen voor technische zaken.

In de kamer, waar de treinbaan staat, is slecht 1 stopcontact aanwezig, en dat is te weinig om alles aan te kunnen sluiten. Ik heb daarom een kabelgoot systeem  aangebracht en op die manier een aantal extra stopcontacten aangebracht. helaas zit er in de buurt van de monitoren nog geen stopcontacten. Toen ik de kabelgoot ging monteren wist ik al wel dat ik 2 monitoren zou gaan gebruiken en ook een stopcontact voor de Raspberry nodig had, maar ik had op dat moment nog geen idee waar alles zou komen te hangen en waar de stopcontacten geplaatst moesten worden. Maar gelukkig is met het systeem waarvoor ik gekozen heb, het K40 Plintsysteem van Attema, vrij eenvoudig om achteraf aanpassingen te doen en extra stopcontacten toe te voegen. Maar dat is een klusje voor later.

Uiteindelijk is dit het resultaat:

 

RocView op 2 monitoren

Nu het project om RocRail opnieuw te installeren op de Raspberry PI succesvol afgerond is, is het tijd voor de volgende fase.

Eerlijk gezegd ben ik tevredener dan voorheen. Ik ben eigenlijk nooit erg tevreden geweest over Ubuntu Mate op de Raspberry. En ook het feit dat ik ingelogd moest zijn op de desktop om o.a. achtergrond processen uit te laten voeren was niet echt ideaal. Vooral omdat er daardoor niet dagelijks een back-up gemaakt werd van de RocRail bestanden. En eerlijk gezegd draait Raspbian gewoon beter op een Raspberry.
Toen de Raspberry met Ubuntu Mate “De geest gaf” was ik gelukkig in staat de bestanden te redden van het SD kaartje. Ik werk zelf met een Linux PC en het kaartje was nog leesbaar, en daardoor kon ik de bestanden veilig stellen. Of dat met een Windows PC ook gelukt was, weet ik niet. Vaak lukt het niet om een SD kaart met een Linux bestandssysteem te lezen, of is slechts een deel zichtbaar. En wat je niet ziet, kun je niet kopiëren.

Het is van meet af aan de bedoeling geweest om met twee monitoren te gaan werken. In RocRail is het, voor zo ver ik weet, alleen mogelijk om meerdere niveaus in het baanplan te gebruiken door extra tabs aan te maken in het Track Plan. Misschien lukt het wel in één tab, maar of je dan een representatieve weergave van je baan hebt weet ik niet. Ik geef er in ieder geval de voorkeur aan om ieder niveau op een eigen tab weer te geven. En aangezien mijn baan 2 niveaus heeft, betekent dat dat er ook twee monitoren nodig zijn om het weer te geven. Althans, dat is mijn stelling.

Het zal ongetwijfeld mogelijk zijn om alles op één scherm weer te geven, maar of dat ook nog een beetje zichtbaar en leesbaar is? Sowieso komen de schermen aan de muur, boven de baan te hangen. En de baan is 1 meter breed, dus sta je minimaal 1 meter van het scherm af. Nu heb ik wel een 24″ monitor in gedachten, maar alles op één scherm?

Maar voordat ik een tweede monitor ga kopen, ééntje heb ik er al, moet ik eerst weten of het überhaupt wel kan. Twee monitoren aan een Raspberry, er zit maar één HDMI aansluiting op, en of het mogelijk is om RocView op twee monitoren te krijgen. Als ik twee monitoren aansluit op de Raspberry, dan wordt hetzelfde beeld op beide schermen getoond. En dat is niet de bedoeling. Ik moet of de desktop kunnen extenden naar de tweede monitor, of de twee schermen als één grote desktop kunnen gebruiken. Er zijn wel oplossingen in de vorm van hardware, maar die zijn vrij prijzig. Dan gaat het al snel richting de €70 – €80. En dat is ook niet de bedoeling. Dan heb ik een goedkoper alternatief in de vorm van een Raspberry PI Zero. Die kost ongeveer €10, en dat is een stuk goedkoper. Bovedien heb ik hem alleen nodig om RocView op te draaien, meer niet.

RocView ondersteund in ieder geval het gebruik van meerdere monitoren, of het tonen van meerdere RocView instanties tegelijkertijd. In de wiki van RocView kwam ik deze handleiding tegen. Hij is er ook in het Nederlands, maar die is minder compleet. Ik ben aan het testen geweest op mijn eigen PC, en het werkt perfect. Tenminste, als je even de “foutjes” haalt uit de documentatie.

Inmiddels heb ik op voorhand een tweede monitor besteld. Wat de oplossing ook wordt, een tweede monitor is nodig. Ik had nog even kunnen wachten totdat ik zeker weet welke oplossing het gaat worden, maar ik wilde twee identieke monitoren en de monitor die ik nu heb, heb ik al bijna twee jaar. De winkel waar ik hem gekocht heb had er nog twee op voorraad, en ook de leverancier had er nog maar twee op voorraad. Dus de kans is groot dat ik straks stad en land af moet om een tweede exemplaar te vinden.
Verder heb ik een HDMI splitter kabel besteld en twee simpele muurbeugels om de monitoren op te hangen.

Of het allemaal gaat lukken, en hoe het opgelost is, dat lees je in een volgende aflevering.

RocRail installeren op een Raspberry PI – Deel 2

Toen ik aan deze blog begon had ik nog geen idee hoe lang het verhaal zou worden. Gaandeweg kwam ik er al snel achter dat dit een te groot verhaal zou worden voor één blog en heb ik besloten het op te knippen in meerdere delen. Uiteindelijk zijn het 4 delen geworden en heb ik getracht de indeling zo logisch mogelijk te houden. Je hoeft dus niet alle delen te lezen, maar kunt er uit pikken wat voor jou interessant of relevant is. De indeling is als volgt:

  • Deel 1, inleiding en motivering van mijn keuzes.
  • Deel 2, Stukje geschiedenis hoe het verlopen is.
  • Deel 3, Installatie van tools, Raspbian en RocRail.
  • Deel 4, Bonus, additionele tools, tips, links en wijsheden.

Deel 2

De eerste poging

Toen ik tijdens mijn zoektocht naar geschikte software gestuit was op RocRail heb ik vrijwel direct besloten om die uit te gaan proberen. Mijn voorkeur ging uit naar RocRail op Raspbian omdat ik daar het beste in thuis ben. In Raspbian welteverstaan. Ik was echter nog niet zo goed thuis in RocRail en kwam meerdere downloadpagina’s tegen met verschillende downloads en benamingen. Eerlijk gezegd zag ik door de bomen het bos niet meer. Ik heb toen e.e.a. aan software gedownload en getracht te installeren, helaas zonder succes.

Omdat RocRail ook beschikbaar is voor Ubuntu werd dat de volgende stap. Een installatie op Ubuntu. Maar omdat ik een Raspberry PI hiervoor wil gebruiken betekende dat wel dat ik eerst een versie van Ubuntu moest vinden die geschikt is om te installeren op een Raspberry PI.

Nu gaat het installeren van een OS op een Raspberry PI iets ander dan het installeren van bijvoorbeeld Windows of Linux op een PC. Een Raspberry PI heeft geen harde schijf, maar maakt gebruik van een (micro)SD kaartje. Dit houdt in dat je eerst een image met het OS moet downloaden en vervolgens, met speciale software, dat image kopieert naar het SD kaartje. Deze actie voer je uit op een PC en als dat gebeurd is steek je het SD kaartje in de Raspberry en start je de Raspberry op.

Ubuntu Mate

Het heeft even geduurd eer dat ik een Ubuntu versie vond die, en geschikt was voor de PI, en die door RocRail ondersteund wordt. Want dat is ook een puntje bij Linux en Linux varianten. Niet iedere versie van software is geschikt voor iedere versie van het OS. Soms heb je geluk en werkt het, maar vaak krijg je foutmeldingen en werkt de software niet, of maar gedeeltelijk. Dit heeft dan te maken met de versie van een bepaalde softwarelibrary van het OS, die niet overeenkomt met de noodzakelijke versie van de software die je wilt gebruiken. Voor wie hier niet in thuis is, het is een complex verhaal.
Maar goed, uiteindelijk uitgekomen bij Ubuntu Mate, een “lichtere”variant van Ubuntu die geschikt gemaakt is voor de Rasberry PI.

Helaas verliepen de eerste pogingen niet geheel vlekkeloos. Na de installatie van Ubuntu Mate had ik een instabiel systeem, dat crashte of vastliep bij de installatie van RocRail. Onwerkbaar. Ik heb meerdere keren een installatie van Ubuntu Mate uitgevoerd, een ander SD kaartje geprobeerd, zelfs het image opnieuw gedownload tot ik uiteindelijk een goed werkend en stabiel systeem had.

Toen er eenmaal een goed werkend OS op de Raspberry stond was het niet zo’n probleem om RocRail te installeren. Nadat dat gebeurd was kon ik aan de slag en gaan experimenteren. Ik ben begonnen met een testbaantje, een simpel dubbelsporig ovaal met een inhaalspoor en 2 wissels om van de buitenste baan in de binnenste baan te komen. Vervolgens de baan in blokken gaan verdelen, bezetmelders aangesloten, en geconfigureerd in RocRail. Zo zijn mijn eerste schreden gezet op het gebied van de digitale spoorbaan.

Hobbels

In de periode na de installatie van RocRail, het testen van RocRail met het testbaantje, en de overgang naar de definitieve baan, heb ik nog wel wat probleempjes gehad met RocRail en RocView. Het is te lang geleden om het mij nog exact te herinneren, maar er ligt me wel nog wat van bij, dat het te maken had met de locatie waar het baanplan opgeslagen wordt en welke workspace gebruikt wordt. Of het gebeurd is tijdens de herinstallatie van de client op een PC of een herinstallatie van RocRail op de Raspberry, ik weet het niet meer. Feit was wel dat ik niet meer de laatste versie van het baanplan had. Dit had onder andere te maken met de bestandslocatie die door de server gebruikt werd. Het leek er op dat deze de locatie van de client gebruikte waardoor wijzigingen niet correct opgeslagen werden. uiteindelijk heb ik dit op kunnen lossen door de data in de client en server gelijk te trekken. Dit heeft wel als gevolg gehad dat er wijzigingen verloren gegaan zijn. Een goede reden om back-ups te gaan maken van de directory waar de bestanden staan.

Back-up script

Om er voor te zorgen dat ik in de toekomst terug kan vallen op de meest recente bestanden, heb ik besloten om van de RocRail folder dagelijks een back-up te maken, zodat ik bij problemen hier op terug kan vallen. Ik heb meerdere Raspberry PI’s in gebruik, voor verschillende doeleinden, en daar maak ik ook gebruik van een back-up script om data veilig te stellen. Met een kleine aanpassing kan ik dit script ook gebruiken op de RocRail machine. Zo gezegd, zo gedaan. Door middel van een cronjob wordt iedere dag het back-up script uitgevoerd en een back-up gemaakt van de RocRail directory en naar een FTP server gekopieerd.

Helaas blijkt dit in de praktijk wat minder goed te werken. De cronjob wordt alleen uitgevoerd als er een gebruiker ingelogd is via de desktop. En dat is niet altijd het geval. Na een herstart kan het nog wel eens enkele dagen, of langer, duren voordat via de desktop ingelogd wordt en wordt er ook geen back-up gemaakt.

SD kaart corrupt?

Het afgelopen jaar heb ik, door omstandigheden, niets met de treinbaan gedaan en dus ook niets met RocRail. Een paar weken terug wilde ik de machine updaten op OS niveau. Helaas kreeg ik een foutmelding en heb ik de Raspberry herstart. Helaas wilde deze niet meer opstarten. De oorzaak zou kunnen zijn dat de SD kaart corrupt geraakt is. Dit wel eens voorkomen bij een Raspberry. Oorzaak zou ook ergens anders in kunnen zitten, maar ik had niet zo veel zin om het uit te zoeken. Bovendien wilde ik de Raspberry eigenlijk toch al vanaf een USB stick draaien. Dat is stabieler dan een SD kaartje.

Van Ubuntu Mate naar Raspbian

Als voorbereiding op de nieuwe installatie ging ik alvast op zoek naar de laatste versie van RocRail om te downloaden. Op de downloadpagina vond ik nu wel welke download ik moet hebben om het op Raspbian te installeren en bovendien is er een duidelijke handleiding voor de installatie.

De installatieprocedure van zowel Raspbian als RocRail zal ik in deel 3 beschrijven. Ook zal ik er wat tips bij geven om je RocRail installatie te beschermen tegen onheil en herstelopties geven.

Deel 1 Deel 3

RocRail installeren op een Raspberry PI – Deel 1

Toen ik aan deze blog begon had ik nog geen idee hoe lang het verhaal zou worden. Gaandeweg kwam ik er al snel achter dat dit een te groot verhaal zou worden voor één blog en heb ik besloten het op te knippen in meerdere delen. Uiteindelijk zijn het 4 delen geworden en heb ik getracht de indeling zo logisch mogelijk te houden. Je hoeft dus niet alle delen te lezen, maar kunt er uit pikken wat voor jou interessant of relevant is. De indeling is als volgt:

  • Deel 1, inleiding en motivering van mijn keuzes.
  • Deel 2, Stukje geschiedenis hoe het verlopen is.
  • Deel 3, Installatie van tools, Raspbian en RocRail.
  • Deel 4, Bonus, additionele tools, tips, links en wijsheden.

Deel 1

Hoe het begon

Toen ik een paar jaar geleden besloot mijn oude hobby weer op te pakken moest ik weer vanaf 0 (niet spoor-0) beginnen. Gezien de beschikbare ruimte die ik heb, heb ik gekozen voor N spoor. Daarnaast wilde ik digitaal gaan rijden en volledig automatisch. Dat laatste zal wel komen doordat ik zelf in de ICT werk en van automatiseren ben.

Op het gebied van digitale modelbanen was ik een noob (beginneling) en heb mijzelf eerst verdiept in wat er allemaal nodig is en wat er bij komt kijken om digitaal te gaan rijden. Gelukkig is er op dat gebied genoeg informatie te vinden. Ik kwam er al snel achter dat digitale centrales nogal prijzig kunnen zijn. Ook was het mij nog niet direct duidelijk waar de prijsverschillen in zitten. Met andere woorden: kan een duurdere centrale veel meer dan een goedkopere en heb ik dat nodig als beginneling? Gelukkig kwam op dat moment net de centrale van Digikeijs, de DR5000 op de markt. Al wel te bestellen, maar nog niet direct leverbaar. Maar wel voor een hele schappelijke prijs. Als beginner leek mij dat een prima centrale om mee te starten.

Het volgend item op mijn zoektocht was software om de baan aan te sturen. Ook daarin was ik een noob. Wederom veel informatie gevonden en veel wijzer geworden. Maar ik had zelf ook een paar wensen en eisen waaraan de software moest voldoen. Het liefst software die op Linux draait en niet te duur, bij voorkeur open source. Nog prettiger zou het zijn dat het op een Raspberry PI kan draaien. Ik had veel gelezen over Koploper en dat dat door veel spoorfanaten gebruikt wordt. Zeer prettig, want dan zijn er ook veel mensen die je eventueel kunnen helpen bij vragen of problemen. Maar ik had ook gelezen dat het product eigenlijk niet meer verder ontwikkeld wordt, alleen wat bug fixes. Dat maakt het minder interessant. Daarnaast draait de software alleen op Windows. Uiteindelijk zijn er twee producten overgebleven die voldeden aan mijn wensen en eisen, iTrain en RocRail.

RocRail versus iTrain

Nu heb ik geen heel erg uitgebreide test en vergelijking gedaan tussen RocRail en iTrain, maar eigenlijk al snel gekozen voor RocRail. Ik was in eerste instantie al gestart met RocRail en heb later pas iTrain uitgeprobeerd. Misschien niet de meest logische volgorde, maar zo is het nu eenmaal gegaan. Hieronder in het kort even een paar verschillen tussen iTrain en RocRail die invloed hebben gehad op mijn keuze.

  • Licentiekosten van iTrain. Afhankelijk van welke opties je wilt kunnen gebruiken gaat de prijs fors omhoog.
  • RocRail is gratis, je mag een donatie doen, maar het moet niet. Zonder donatie werkt alles, je hebt alleen een pop-up bij het opstarten van de client.
  • RocRail gebruikt een client-server model. de voordelen zal ik later toelichten
  • De gebruikersinterface van iTrain ziet er beter uit dan van RocRail. Het ziet er allemaal wat “gelikter” uit.

Raspberry PI

Ik liet al doorschemeren dat mijn voorkeur uitgaat naar software die kan draaien op een Raspberry PI en wel om de volgende redenen:

  • Een Raspberry PI is goedkoop in aanschaf, een complete startset is al te koop voor ongeveer €65,-
  • Een Raspberry PI gebruikt nauwelijks stroom en produceert weinig warmte.
  • Een Raspberry PI is klein en bijna overal te plaatsten of weg te werken.
  • Prestaties zijn ruim voldoende voor het draaien van iTrain of RocRail.
  • Een Raspberry PI heeft tegenwoordig standaard WiFi aan boord dat out-of-the-box werkt. Je hoeft dus geen netwerkaansluiting in de buurt te hebben en dat maakt het plaatsen een stuk makkelijker, je hebt alleen een stopcontact nodig en WiFi is denk ik in de meeste woningen wel voorhanden.
  • Een Raspberry PI is eventueel ook te bevestigen achter een monitor of TV, er zijn zelfs speciale VESA mounts te koop. Handig als de monitor voorzien is van VESA bevestigingspunten.

RocRail en Raspberry PI

Er zijn twee opties om RocRail op een Raspberry PI te installeren, of liever gezegd er zijn twee verschillende operating systems geschikt om RocRail op een Raspberry PI te gebruiken, Raspbian en Ubuntu Mate.
Raspbian is min of meer het standaard operating system voor een Raspberry PI en is gebaseerd op Debian Linux. Ubuntu Mate is een afgeslankte versie van Ubuntu speciaal bedoeld voor computers met beperkte capaciteit zoals een Raspberry PI.

Ubuntu is een Linux tegenhanger voor een Windows PC en dat geldt min of meer ook voor Ubuntu Mate. Raspbian is meer gericht op het laten draaien van software zonder al te veel toeters en bellen. er is ook een “light” variant die wat verder uitgekleed is en bijvoorbeeld geen grafische interface (desktop) heeft. Beide versie zijn geschikt voor RocRail.

Aangezien RocRail een client-server architectuur heeft kun je daar heel handig gebruik van maken en heb je het voordeel dat je direct bij je baan geen PC nodig hebt. Het server component wordt geconfigureerd met behulp van de client en heeft daarom ook geen beeldscherm nodig. Zodoende kun je de Raspberry direct bij de baan plaatsen of eventueel onder de baan wegwerken. Eigenlijk op dezelfde plaatsen als waar je ook je decoders en bezetmelders monteert. Zorg er wel voor dat je er redelijk makkelijk bij kunt. Dat is soms nodig.

De client, RocView genaamd, wordt standaard ook geïnstalleerd met RocRail, maar kun je ook op een andere PC installeren. Dit kan een Windows PC zijn, maar ook een Mac of een Linux PC. Vanaf de client configureer je de server, maak je het baanplan voor de aansturing en koppel je alle componenten, zoals bezetmelders, decoders, etc. aan je baanbesturing.

Mijn setup

Op dit moment heb ik op een klein tafeltje bij de treinbaan, de ruimte is niet zo groot, een monitor staan en ligt de Raspberry daar vlakbij, en maak ik gebruik van een draadloos toetsenbord met geïntegreerd touchpad. Op mijn PC in mijn werkkamer en op mijn laptop heb ik de client geïnstalleerd. Ik werk meestal op mijn werkkamer omdat ik daar een stuk comfortabeler zit dan aan het tafeltje bij de treinbaan. Uiteindelijk zal de monitor, met daarachter de Raspberry, opgehangen worden aan de muur. Met behulp van het draadloze toetsenbord kan ik dan de baan bedienen of ik kan mijn laptop pakken en daarmee de baan bedienen.

Deel 2

Een permanente camera op je baan

Er zijn heel wat mensen die een camera inbouwen in een modeltrein, er opnames mee maken en deze delen op internet zodat je het gevoel krijgt alsof je als machinist op de trein rijdt. Ook zijn er heel wat mensen die een filmpje maken, al dan niet met geluid, met hun smartphone of videocamera, en dat delen met de rest van de wereld.

Ik had een ander idee.

Eén of meerdere camera’s die op de baan weggewerkt worden zodat ze niet zichtbaar zijn en die continu het beeld tonen dar door de lens geregistreerd wordt. Een camera gericht op het paradespoor die de voorbijrazende treinen mooi weergeeft, bijvoorbeeld vanuit een tunnel. Een camera in het stationsgebouw die een deel van het perron toont met de reizigers en alle binnenkomende en vertrekkende treinen laat zien. Of…. ach verzin ook maar zelf wat er allemaal mogelijk is.

Toen ik dit idee lanceerde op de N-spoor Facebook pagina werden er direct een aantal mensen enthousiast en nieuwsgierig hoe dat gerealiseerd kan worden, en hebben gevraagd om een “handleiding” om het ook zelf te kunnen doen.

Nu ben ik zelf een groot liefhebber van Raspberry PI computers.

Een Raspberry PI is een zeer kleine PC, met beperkte mogelijkheden, maar aan de andere kant kun je er heel veel mee. Een Raspberry heeft geen harde schijf, geen modules voor het interne geheugen en ook geen uitbreidingssloten voor extra hardware. Het OS en data gebruiken een SD kaartje voor de opslag. Intern geheugen zit standaard in de Raspberry, maar kan niet uitgebreid worden.

Het is beperkt mogelijk om randapparatuur aan te sluiten. Een Raspberry heeft, afhankelijk van het type, één of meerdere USB poorten. Verder is er standaard een aansluiting voor een camera en kan er, via een gpio connector hardware op de Raspberry aangesloten worden.

Het operating system moet via een PC op de SD kaart geïnstalleerd worden. Hiervoor is speciale software beschikbaar (gratis).

In dit artikel beschrijf ik een stappenplan om een camera op je baan te gebruiken met een Raspberry PI of een Raspberry PI Zero.

Voor je aan dit avontuur begint wil ik je wel even waarschuwen. Je hoeft geen nerd te zijn om dit uit te kunnen voeren, maar enige kennis van computers en je WiFi netwerk is wel noodzakelijk. De meeste mensen krijgen hun WiFi apparatuur van hun internet provider of kabelboer. Vaak al geconfigureerd of kant-en-klaar geïnstalleerd en gebruiken alleen de WPS knop om nieuwe apparaten aan het draadloze netwerk te koppelen. in dit verhaal moet je de naam weten van het SSID en de passphrase om een verbinding te kunnen maken.

Verder moet je ook niet bang zijn om commando’s in te typen en zonder knoppen zoals “OK”, “Cancel” en “Next” te werken. Oftewel je gebruikt in dit verhaal hoofdzakelijk een CLI, Command Line Interface. Voor de oudjes onder ons, denk aan een DOS box. De Raspberry van tegenwoordig beschikt veelal over een grafische interface, maar die wordt hier nauwelijks gebruikt.

Het Operating System dat op een Raspberry gebruikt wordt is een Linux variant. Er is niet 1 OS zoals bijvoorbeeld bij Windows of MacOS. Bij Linux kun je kiezen. Afhankelijk van wat je met je PI gaat doen kies je een OS. Toch is er een soort van standaard OS voor de PI dat veelgebruikt wordt. En dat is Raspbian.

Raspbian is een van Debian Linux afgeleide variant en het officiële OS voor de Raspberry. De meest recente versie is Jessie. Bij Raspbian werken ze met namen voor de verschillende versies in plaats van versie nummers.

Voor de Raspberry zijn, speciaal voor de Raspberry gemaakte, camera’s verkrijgbaar. Die heb je nodig. Of het een officiële camera is van Raspberry of een goedkope clone van Aliexpress maakt niet uit. Mits de camera maar geschikt is voor de Raspberry. Over de kwaliteit van de camera’s kan ik geen uitspraak doen. Ik heb alleen een rasechte Raspberry camera gebruikt.

Heb je al een Raspberry? Dan kun je die prima gebruiken. Het maakt niet uit of je een PI, PI 2 of PI 3 hebt. Al heeft een PI 3 wel het voordeel dat daar al standaard WiFi op zit. Heb je nog geen Raspberry, of wil je er één aanschaffen voor dit doel, bedenk dan goed wat je aanschaft. Eem PI Zero is erg interessant. Goedkoper en kleiner de een PI 3, maar heeft minder mogelijkheden en het kan lastig zijn om deze te configureren zonder de juiste middelen.

In de meest recente versie van Raspbian, Jessie, is SSH disabled. SSH wordt gebruikt om remote in te loggen en het systeem in te richten en te configureren. Om dit aan te kunnen zetten heb je een toetsenbord en beeldscherm nodig. ook voor het configureren van WifI werkt dit erg handig. Houd er rekening mee dat een PI Zero alleen beschikt over een microUSB en mini HDMI connector. Het kan zijn dat je voor het aansluiten van een toetsenbord of beeldscherm verloopstekkers nodig hebt. De PI Zero heeft geen netwerkadapter, je hebt dan de PI Zero W nodig. deze beschikt standaard over WiFi en Bluetooth. Voordeel van de PI Zero is, dat deze een stuk kleiner is dan de gewone PI.

De gewone PI beschikt over standaard USB poorten en een normale HDMI aansluiting. De PI 3 heeft standaard WiFi aan boord. Bij de vorige modellen heb je daarvoor een WiFi dongle nodig. Let bij de aanschaf van een WiFi dongle goed op welke je koopt. Sommige dongles werken niet of niet goed op een Raspberry of hebben drivers nodig die niet standaard aanwezig zijn. De ingebouwde WiFi van de PI 3 heeft dit probleem niet.

 

Als je dit allemaal gelezen hebt, en je hebt er nog steeds zin in, dan volgt hieronder een beschrijving van het gene dat ik uitgevoerd heb om een werkende camera te realiseren.

Kookboek

Wat heb je nodig?

  • Raspberry PI of Raspberry PI Zero W
  • Camera
  • Voeding
  • (micro) SD kaart, 8GB is voldoende.
  • PC met SD card slot of reader
  • Enige computerkennis
  • Optioneel: WiFi dongle
  • WiFi netwerk
Raspberry PI

Heb je al een Raspberry PI? Dan kun je die prima gebruiken hiervoor. Heb je er nog geen? Dan zijn er meerdere opties. Je kunt het beste kiezen voor de meest recente versie. Voor de gewone Raspberry PI is dat de PI 3. Deze heeft standaard WiFi en Bluetooth aan boort en heeft wat meer geheugen en een krachtigere processor dan zijn voorganger. Kies je voor de PI Zero, neem dan de uitvoering met standaard wireless, de W uitvoering.

De PI Zero beschikt over minder mogelijkheden qua aansluiten van randapparatuur, en de aansluitingen zijn allemaal van het mini type. Dit geldt zowel voor de USB als de HDMI aansluiting. Het kan verstandig zijn om Adapter Pack (mee) te bestellen. Vergeet ook niet om een voeding te bestellen, anders kun je niet van start.

Zelf heb ik dit setje besteld: https://www.kiwi-electronics.nl/raspberry-pi/raspberry-pi-zero-w-camera-pack?filter=7

Een voeding en SD kaartje had ik nog liggen en heb ik er niet bij besteld.

OS installeren.

Een OS installeren op een Raspberry gaat wat anders dan op een PC. Je hebt hiervoor een PC of Mac nodig. Ik beschrijf de procedure voor een PC omdat ik geen Mac bezit.

Ik heb Rasbian gebruikt en de laatste versie heet Jessie, en kun je hier downloaden: https://www.raspberrypi.org/downloads/raspbian/

Jessie is er in 2 smaken, de standaard versie en de light versie. Kies de standaard versie.

Nadat je Jessie gedownload hebt, moet je het zip bestand uitpakken. Na het uitpakken heb je een img bestand met bijvoorbeeld de volgende naam: 2017-04-10-raspbian-jessie.img. Onthoud de naam, want die heb je zo nodig in de volgende stap.

Om het img bestand op de SD kaart te zetten, heb je speciale software nodig, een imagewriter. Zelf gebruik ik hiervoor Win32DiskImager. Een gratis tooltje dat je hier kunt downloaden: https://sourceforge.net/projects/win32diskimager/

Mocht dit geheel nieuwe materie voor je zijn, een korte uitleg kun je hier vinden: http://www.raspberry-projects.com/pi/pi-operating-systems/win32diskimager

Het schrijven van het image naar de SD kaart kan enige minuten duren. Je kunt het SD kaartje nu in de Raspberry steken en doorgaan met het configureren van de Raspberry en het installeren van de software. De volgende stappen kun je op 2 manieren uitvoeren. Het SD kaartje direct in de PI Zero steken, toetsenbord en beeldscherm aansluiten, of je gebruikt een andere Raspberry als je die hebt, en voert de eerste stappen daar op uit.

In het verleden kon je direct na het installeren van het OS aan de slag via SSH. In de huidige versie is dat niet meer mogelijk en staat SSH uit. je zult SSH eerst aan moeten zetten en daarvoor heb je een toetsenbord en monitor nodig. Die heb je overigens ook nodig om WiFi te configureren en een netwerkverbinding mogelijk te maken.

De Raspberry configureren

Wanneer je in moet loggen op je Raspberry, dan zijn de standaard inloggegens: gebruiker: PI, wachtwoord: raspberry. Het wachtwoord kun je uiteraard wijzigen en is ook aan te bevelen.

Eén van de eerste zaken die uitgevoerd moeten worden is het configureren van je Raspberry. Om dat uit te voeren staat er een heel handig tooltje op de Raspberry dat heet Raspi Config.

Open een terminal venster op de Raspberry en type het volgende commando: sudo raspi-config.

In het scherm dat nu opent zie je een keuzemenu, ga naar optie 5, Interfacing Options. Navigeren doe je d.m.v. de pijltje omhoog en pijltje omlaag toetsen en de TAB toets.

Je komt nu in een menu waarin je een aantal opties aan en uit kunt zetten.  De volgende opties moeten enabled worden: P1 Camera, P2 SSH en optioneel P3 VNC.

Terug in het hoofdmenu, ga naar 4, Localisation Options. Ga vervolgens naar I1 Change Locale. Selecteer de volgende locales:

  • en-GB.UTF-8
  • en-US.UTF-8
  • nl_NL.UTF-8
  • nl_NL@Euro

Het selecteren van een locales doe je met een klik op de spatiebalk. Wanneer je alle locales geselecteerd hebt, ga je met TAB naar Ok en drukt op Enter.

Terug in het hoofdmenu, selecteer nogmaals optie 4 en ga nu naar optie I2 Change Timezone. selecteer Europe en vervolgens Amsterdam, als je in Nederland woont.

Ga naar I4 Change wi-fi Country en selecteer NL Netherlands.

Als laatste, en wellicht in de huidige versie overbodig, vanuit het hoofdmenu, ga naar optie 7, Advanced Options. Kies vervolgens A1 Expand Filesystem.

Wanneer je een image wegschrijft op een SD kaart, wordt alleen de ruimte de nodig is om de image weg te schrijven gebruikt. Dat betekend dat je geen data kunt opslaan omdat er niet meer ruimte beschikbaar is. Althans, wel beschikbaar, maar niet gebruikt wordt. Met deze optie wordt het filesystem vergroot en alle beschikbare schijfruimte ook daadwerkelijk gebruikt.

Nadat je klaar bent met het aanpassen van de configuratie krijg je de vraag om te rebooten. Dit moet je doen.

Testen

Nu de basis gereed is, de camera aangesloten en geactiveerd in de configuratie, is het tijd voor een klein testje.

Je kunt nu remote verbinden met je Raspberry via SSH, of rechtstreeks je Raspberry gebruiken als je er een muis, toetsenbord en monitor aan gekoppeld hebt.

Via SSH kun je o.a. doen met behulp van Putty. Inloggen vanuit een andere Raspberry, of Linux PC, doe je met het volgende commando: pi@<IP adres>

Als je rechtstreeks de Raspberry gebruikt, open dan een Terminal window. Ben je remote via SSH ingelogd, dan kun je gelijk gaan typen. Geeft het volgende commando is: raspistiil -o test.jpg.

Er wordt nu een foto gemaakt met de camera en opgeslagen als test.jpg. Standaard wordt het bestand opgeslagen in de huidige directory waar je je bevindt. Meestal is dat /home/pi.

Als er een foto aanwezig is en deze toont beeld, dan werkt de camera. Gefeliciteerd! Je hebt nu een heel onhandige fotocamera gebouwd ;-).

Videocamera

Om van je onhandige fototoestel een zeer praktische video camera te maken, heb je nog extra software nodig. er zijn verschillende mogelijkheden om dat te doen. Ik heb gekozen voor RPI-Cam-Web-Interface. deze sluit het best aan bij mijn wensen en eisen en is relatief eenvoudig te installeren.  Let op! Ik zeg relatief eenvoudig, het is best nog veel werk, maar goed te doen, ook voor iemand die wat minder ervaren is.

 

Even wat eigenschappen en mogelijkheden van het product:

RPi-Cam-Web-Interface

 RPi Cam Web Interface is a web interface for the Raspberry Pi Camera module that can be opened on any browser (smartphones included) and contains the following features:
  • View, stop and restart a live-preview with low latency and high framerate. Full sensor area available.
  • Control camera settings like brightness, contrast, … live
  • Record full-hd videos and save them on the sd-card packed into mp4 container while the live-preview continues
  • Take single or multiple (timelapse) full-res pictures and save them on the sd-card (live-preview holds on for a short moment)
  • Preview, download and delete the saved videos and pictures, zip-download for multiple files
  • Trigger captures by motion detection
  • Trigger captures by many scheduling-possibilities
  • Circular buffer to capture the last actions afterwards
  • Control Pan-Tilt or Pi-Light
  • Shutdown/Reboot your Pi from the web interface
  • Show annotations (eg timestamp) on live-preview and taken images/videos
  • Supports selection from 2 cameras when used with a compute module

 

Nu gaat het mij wat te ver om hun hele installatie documentatie over te typen en te vertalen. Ik stel voor dat je de documentatie uit hun Wiki gebruikt: http://elinux.org/RPi-Cam-Web-Interface.

Na het installeren van de software kun je eventueel nog e.e.a. aanpassen via de webinterface. Ik ga dat hier niet beschrijven omdat het vooral je eigen voorkeuren zullen zijn.

Tot slot

Als je alles uitgevoerd hebt zoals hier beschreven, dan zou je nu een werkende Raspberry met camera moeten hebben en in staat zijn video opnames te maken met de camera.

Je zou dan iets zoals dit moeten kunnen produceren:

Ik realiseer me dat deze handleiding verre van perfect is. Ik heb geen idee wat het niveau van mijn lezers op dit gebied is. Hebben ze veel ervaring? Zeer weinig? Staan er een hoop overbodige instructies in? Ik heb geen idee. Laat via de reactiemogelijkheid weten wat je er van vindt, suggesties te verbetering zijn altijd welkom. Ook als je informatie mist hoor ik het graag.

Zelf werk ik al een aantal jaren met Raspberry PI’s en Linux. Ik heb inmiddels al een stuk of 8 Rasperry’s in gebruik en deze worden o.a. gebruikt voor de domotica in mijn huis, aansturing van de treinbaan (met RocRail), uitlezen van de slimme meter, vliegtuigen spotten met Flightradar, Kodi, HA bridge tussen de Amazon Alexa Echo Dot en Domoticz, de domotica server. En ook deze website draait op een Raspberry.