Raspberry Pi en Nokia 5110 LCD schermpje

De Raspberry PI, een minicomputer, is een van de leukere gadgets om aan te schaffen. Alhoewel je de Raspberry PI kunt ombouwen naar een mediacenter is mijn aandacht uitgegaan naar de GPIO poort die op de Pi aanwezig is. Hier kan men elektronica mee aansturen.

Een van mijn eerste projectjes op dat gebied is het aansturen van een Nokia 5110 LCD schermpje, een 84×48 pixel monochroom LCD display. Ik moet hierbij bekennen dat ikzelf niet veel heb uitgevonden maar slaafs de instructies nagevolgd die ik op de website van Bartlomiej Bania kon vinden (deze link werkt ondertussen niet meer0. Zoals men op onderstaande foto kan zien met goed resultaat.

Zoals op de foto ook te zien is heb ik mijn Raspberry Pi systeem een beetje aangepast. Door een Raspberry PI GPIO Expansion Board op een breadboard te plaatsen en deze via een flatcable met de GPIO van de Raspberry te verbinden kan men een iets makkelijker te manipuleren werkomgeving creëren. Via jumper wires en DuPont kabels is vervolgens het LCD schermpje verbonden met het breadboard.

Raspberry Pi Monitor

Ik ben nu  al enige tijd in het bezit van een Raspberry Pi, een leuke mini computer om mee te spelen. Een van de dingen waar ik een beetje mee worstelde was het koppelen van een “dedicated” monitor aan de Raspberry. Ik gebruikte een TV met HDMI switch waar dan meerdere apparaten op waren aangesloten en die situatie vond ik niet ideaal. Ik was weliswaar in het bezit van een Sony 10 inch monitor maar die had alleen maar een VGA connector. In eerste instantie heb ik dus geprobeerd de Rapsberry met een HDMI naar VGA adapter aan de monitor te koppelen.  Daarover kan ik kort zijn, ik heb er drie geprobeerd maar geen van allen werkten.  Ik overwoog ook nog even om een mini-schermpje te kopen dat je kunt aansluiten op de speciale connector die op de Pi aanwezig is maar besloot uiteindelijk om voorlopig eerst een andere oplossing te proberen. Ik ben naar de Kringloopwinkel gegaan en heb daar voor 15  € een NEC multisync monitor met DVI connector gekocht. Deze heb ik met behulp van een DVI naar HDMI connector aan de  Raspberry gekoppeld. Zoals op onderstaande foto te zien is werkt dat perfect. Deze monitor geeft me ook een goede opslagplaats voor het bijbehorende Logitech toetsenbord.

De screendimmer van de Raspberry Pi uitschakelen

Een van die zaken die niet zo gemakkelijk te realiseren zijn op de Raspberry Pi is het uitzetten van de screendimmer. In het verleden lukte me dat door gebruik te maken van onderstaande procedure.

Open een terminal window en type in:

  • sudo nano /etc/rc.local

Voeg aan de nu geopende file de volgende twee regels toe:

# turn of console blanking
setter –blank 0

Het “setterm –blank 0” commando zet de terminal  blanking periode op 0 s hetgeen betekend dat deze uitgeschakeld wordt. RC.local wordt uitgevoerd op het einde van de boot procedure met root privileges zodat het commando alle fysieke consoles (TV&HDMI) beïnvloedt.

Controleer of het script werkt door in de terminal in te typen.

  • sudo sh /etc/rc.local

Men krijgt dan het IP adres te zien. Het uitprinten daarvan is ook opgenomen in het script.

Jammer genoeg werkt deze oplossing niet meer. Na 15 min krijgt men nog steeds een zwart scherm te zien. Via Google heb ik de volgende, eenvoudig uit te voeren, oplossing gevonden.

Installeer de xscreensaver door in een terminal in te typen:

  • sudo apt-get install xscreensaver

Reboot hierna de Raspberry Pi. In de preferences kan men nu een screensaver optie vinden alwaar men de screensaver kan uitschakelen. Deze oplossing werkte voor mij.

Raspberry PI snel installeren

Een van de problemen die ik met de Raspberry Pi regelmatig heb is dat als deze niet netje afgesloten wordt (via shutdown) deze soms niet meer opstarten wil. Dat is me nu al verschillende malen gebeurd en de uiteindelijke oplossing was steeds om het operating system opnieuw te installeren. Om dat probleem iets dragelijker te maken heb ik de volgende procedure ontwikkeld waarbij ik gebruik maak van 2 SD kaarten waarop het systeem zo volledig mogelijk geïnstalleerd is. Als er 1 faalt, kan ik altijd weer verder terwijl ik op de defecte weer alles installeer vanaf het hierbeneden beschreven punt. Aangezien ik ook met de GPIO zit te spelen en daardoor ook allerlei drivers installeer helpt dit ook om mijn systeem schoon te houden. Veel van wat hierbeneden beschreven wordt kan men in tijdschriften eb boeken over de Raspberry Pi vinden, ik heb het alleen met een specifiek doel gecombineerd.

Een van de noodzakelijke eisen waaraan men moet voldoen is dat men een PC moet bezitten waarop Windows is geïnstalleerd en die toegang heeft tot het internet.

Voordat men aan de slag gaat moet men een tweetal programma’s installeren op de PC nl. SDFormatter en Win32DiskImager.

SDFormatter gebruikt men om de SD kaart die men op de Raspberry Pi gaat gebruiken te formatteren. Gebruik hierbij de volgende instellingen:

  • Option setting –> Format Size Adjustments: ON
  • Selecteer FAT32 als bestandsysteem
  • Vink de optie “Fast Format” aan

Als men deze actie uitvoert is het verstandig erop te letten dat men inderdaad de SD kaart formatteert en niet de harde schijf.

Download de “Debian” image file van de Raspberry website.

Gebruik het Win32DiskImager programma om de image file op de SD kaart te zetten.

Steek de SD kaart in de Raspberry Pi en laat het systeem opstarten. Bij de 1ste keer opstarten komt men in een configuratiescherm terecht. Daar voer ik twee acties uit:

  • Aanpassen van de regionale instellingen (tijdzone, locatie)
  • De optie om in de grafische schil op te starten selecteren

Laat de Raspberry Pi opnieuw opstarten. Het systeem start nu op in de grafische scheel.

Ikzelf gebruik een Logitech K400 keyboard die zowel een toetsenboard als een touchpad bevat.  Dit toetsenbord is echter ingedeeld volgens de “US”  terwijl de Raspberry Pi aanneemt dat de indeling “GB” van toepassing is, hetgeen kan resulteren in toetsen die een ander leesteken produceren dan men verwacht (bv #). Als eerste pas ik dus het toetsenbord aan.

Open een terminal venster en type daar in:

  • sudo nano /etc/default/keyboard

“Nano” is een heel eenvoudige tekst editor. Het commando “sudo” zorgt ervoor dat men als superuser opstart. Als men geen superuser is kan men geen configuratiefiles aanpassen.  (Als men eerste “sudo su” intypt hoeft men niet steeds voor een commando “sudo” te zetten).

Pas de tekst die weergegeven is aan. Verander XKBLAYOUT = “gb” in XKBLAYOUT = “us”.

Save de file en reboot het system weer.

Open een terminal venster en begin onderstaande commando’s in te typen.

  • sudo apt-get update

Om het system te updaten.

  • sudo apt-get dist upgrade

Om de distributie te upgraden.

  • sudo apt-get upgrade

Om de upgrade te installeren.

  • sudo apt-get autoclean

Om het systeem op te schonen.

  • sudo apt-get autoremove

Om installatie restanten te verwijderen.

Reboot het system. Na opstarten is het besturingssysteem van de Raspberry Pi  helemaal “up-to-date”. Open wederom een terminal venster en begin weer commando’s in te typen.

  • sudo apt-get install chromium

Installeert een alternatieve browser die een stuk sneller is dan de bijgeleverde.

  • sudo apt-get install synaptic

Om de Synaptic Package Manager te installeren.

  • sudo apt-get install geany

Een uitgebreide teksteditor.

  • sudo apt-get install mc

Midnight Commander is een grafische file manager.

  • sudo apt-get install audacity

Voor geluidsbewerking.

Men kan natuurlijk meer programma’s installeren, maar dit is een aardige basis.

Als men de set-up configuratie niet goed aangepast heeft kan men dit achteraf corrigeren door in het terminal venster in te typen:

  • sudo raspi-config

Het configuratiescherm start dan op.

Badblocks en Raspberry Pi

Of hoe je je Raspberry Pi ook iets anders kunt gebruiken.

Als je zoals ik al jaren speelt met computers dan zal je ook wel de nodige interne en externe hard disks hebben verzameld. In het kader van een van mijn opruimacties wilde ik van meen van mijn oudere WD USB drives af (160 GB). Hij werkt nog perfect maar de capaciteit is eigenlijk te laag (wat soms een beetje raar kinkt voor iemand die op een C64 met een geheugen van 64 kbit begonnen is).

Wat ik het liefste doe met zulke spullen is ze naar de kringloopwinkel brengen. Met oudere PC’s low level formatteer ik eerst de harde schijf en zet er dan Linux op. Als ik me niet zeker voel en er heeft teveel privé informatie op de harde schijf heeft gestaan haal ik deze eruit en demonteer de harde schijf.

Op zich heb ik dit altijd zonde gevonden en met deze externe harde schijf (vroeger als back up gebruikt) besloot ik het iets anders te gaan aanpakken. Als je iets verder wilt gaan op het gebied van veiligheid dan een low-level format dan wil je de dat elke sector een aantal malen beschreven en weer verwijderd is.

In een PC Active (# 280, 2015, p. 96)  las ik over het Linux commando/programma <badblocks> en ik bedacht me dat ik dat als oplossing voor bovenstaand probleem kon gebruiken. Het commando <badblocks> is bedoeld om te testen of een harde schijf nog in orde is. Daarvoor schrijft het de gehele harde schijf vol met random data en checksums. Vervolgens wordt de data ingelezen en gecontroleerd via de checksum. Voor en na de operatie wordt ook de S.M.A.R.T. uitgelezen. Deze gegevens laten zien hoe gezond de hard disk is maar nog belangrijker, het zorgt ervoor dat de gehele hard schijf beschreven is en niet alleen maar de bootsectors. De operatie duurt wel een tijdje maar dat heb er wel voor over. In dit geval, voor een 160 GB harde schijf, ongeveer 16 uur.

Het is vooral leuk om de Raspberry Pi hiervoor te gebruiken. Dit was ook weer eens zulk een toepassing waar ik nog niet eerder over nagedacht had. Door de Raspberry Pi te gebruiken is het niet nodig om een laptop of desktop uren achter elkaar te laten draaien. Je hoeft ook niet bang te zijn dat er opeens updates geïnstalleerd worden en de operatie afgebroken. Dat is me wel eens onder Windows gebeurd is terwijl ik een harde schijf sector voor sector liet nalopen, hetgeen meer dan 2 dagen duurde.  Met Linux heb je daar geen last van.

De procedure die ik heb gevolgd ging als volgt:

  • Start de Raspberry Pi op
  • Verbindt de externe harde schijf met een van de USB poorten van de Raspberry Pi.
  • Deze wordt herkend, de Filemanager opent automatisch en vraagt of je de disk wilt “mounten”
  • Open een Terminal Window
  • Type in: lsblk
  • Men krijgt nu een overzicht van alle schijven te zien waaronder de USB drive.
    In mijn geval: sda
  • Unmount eerst de harde schijf via de filemanager door op het driekhoekige symbool naast de drive te drukken
  • Type in: sudo badblocks –wsv /dev/sda
  • De schijf wordt nu gecontroleerd en beschreven.

De parameters –wsv refereren naar destructieve read-write modus (-w) waarbij 4 verschillende patronen over de gehele partitie geschreven worden die vervolgens teruggelezen en geverifieerd worden. De voortgang wordt weergegeven door het uitschrijven van block nummers als deze gecontroleerd worden (-s = show, -v = verbose). Alle data op de partitie worden overschreven op block niveau.