Veröffentlicht am Schreib einen Kommentar

Pi-hole – der Ad-Blocker für Ihr Heimnetz

Pi-hole Logo im pi-hole Beitrag von braspi

Ich bin wahrscheinlich einer der letzten, der das Pi-hole-Projekt entdeckt hat. Aber ich bin begeistert von der Idee und möchte diese hier teilen.

Pi-hole ist eine Art Filter, der die Browser-Werbung innerhalb des geschlossenen Netzes blockiert. Also ähnlich wie ein Ad-Blocker, den man bei sich auf dem Rechner in einem Browser laufen lassen kann. Der größte und beste Unterschied ist – man schützt sein ganzes Heimnetz ab. So entfällt die Notwendigkeit, einen Ad-Blocker auf jedem Gerät zu installieren – zum einen ist es umständlich und zum anderen, bei einigen Geräten, auch schwer möglich. Also ist ein zentraler Ad-Blocker – Pi-hole – eine perfekte Alternative. 

Zudem merkt man im Alltag gar nicht, dass die Werbung gerade gefiltert wird – es gibt keine Geschwindigkeitseinbußen oder Website-Blockaden. Das Einzige, was blockiert wird, ist die nervige Popup-Werbung auf Internet-Seiten. 

Installation

Die Installation verläuft ganz einfach. Alles, was man braucht, ist ein Raspberry Pi mit einer der gängigen Linux-OS (Raspbian, Debian, Fedora, Ubuntu, CentOS etc.) und den Internetanschluss an diesem Pi.

Öffnen sie das Terminal-Fenster und melden Sie sich als root an:

sudo -i

Anschließend führen Sie den folgenden Befehl aus:

curl -sSL https://install.pi-hole.net | bash

Es wird der Installationsskript für Pi-hole geladen und ausgeführt.

In den sich daraufhin öffnenden Fenstern bestätigen Sie einfach die Standard-Vorgaben und schreiben Sie sich unbedingt die IP-Adresse und das Passwort auf, die im letzten Schritt angezeigt werden. Diese brauchen Sie später, um das admin-Panel von Pi-hole zu erreichen und den DNS-Server auf dem Router einzurichten.

Einrichtung des Routers

Um von dem Komfort der zentralen Installation des Pi-hole zu profitieren, müssen an dem heimischen Router, über den der Internetzugriff erfolgt, noch ein paar Eingriffe vorgenommen werden. Und zwar muss in den DNS-Einstellungen des Routers lediglich die vorhin aufgeschriebene IP-Adresse des Pi-hole eingetragen werden und der Router muss neugestartet werden.

Und schon kann man auf jedem Gerät, dass über den Router mit dem Internet verbunden ist, werbefrei surfen. Selbst in einigen Apps wird die Werbung blockiert!!!

Herzlichen Dank an die Menschen hinter Pi-hole: https://pi-hole.net/

Veröffentlicht am Schreib einen Kommentar

Installation und Einrichtung des RetroPie-Sets mit NESPi PLUS Gehäuse

Beschreibung:

Bei diesem Produkt handelt es sich um ein RetroPie-Set mit Raspberry Pi 3 Model B+, verbaut in einem NESPi PLUS Gehäuse von Retroflag, inkl. Controller, HDMI-Kabel und Netzteil.

Was ist RetroPie

RetroPie bietet die Möglichkeit, auf einem Raspberry Pi über 50 verschiedene Spiel-Emulatoren zu betreiben. So kann man z.B. Super Nintendo, Game Boy Color, Playstation Portable (PSP), Sega Megadrive, Atari Konsolen-Spiele auf dem Raspberry Pi spielen. RetroPie bündelt eine Reihe von Projekten wie EmulationStaion, RetroArch.

Für die Einrichtung kann man entweder das fertige RetroPie Image verwenden, oder RetroPie manuell auf einem bestehenden Debian basierendem Linux System wie Raspbian installieren.

In dieser Anleitung wird erklärt, wie man das fertige RetroPie Image auf einem Raspberry Pi 2, 3 und 3B+ installiert, ein USB SNES-Controller einstellt, das WLAN einrichtet und wie man die ROMs (Spiele) auf den Raspberry Pi kopieren kann.

Installation

SD Karte Vorbereiten

Laden Sie das aktuelle RetroPie Images von der RetroPie-Seite herunter. Für das Kopieren des Image auf die mitgelieferte MicroSD-Karte verwenden Sie bitte Etcher. Das Programm ist für Windows, Mac OSX und Linux verfügbar.

Laden Sie Etcher herunter und installieren Sie es.

Öffnen Sie Etcher und wählen Sie das zuvor heruntergeladene RetroPie-Image aus (Image muss nicht entpackt werden). Klicken Sie hierfür auf „Select Image“.

Etcher Benutzung

Wählen Sie mit „Select Drive“ anschließend die MicroSD-Karte als Ziel aus. Etcher sollte automatisch die Micro-SD Karte als Ziel auswählen.

Etcher Verwendung Drive

Klicken Sie nun auf „Flash!“ um den Schreibvorgang zu starten.

Falls Etcher einen Fehler anzeigt, formatieren Sie die MicroSD-Karte neu. Nachdem das Image erfolgreich auf die MicroSD-Karte geschrieben wurde, erscheint folgendes Fenster:

RetroPie Starten und Controller konfigurieren

Stecken Sie nun die MicroSD-Karte in die hierfür vorgesehene Öffnung an der rechten Seite des NESPI-Gehäuses.

NESPI Retroflag Gehäuse MicroSD Einschub

Schließen Sie nun die Konsole per mitgeliefertem HDMI-Kabel an einen Monitor und Verbinden Sie die SNES-Controller mit der Konsole. Anschließend stecken Sie den MicroUSBStecker in die hierfür vorgesehene Buchse an der Konsole. Rspberry Pi startet nun den RetroPie Image.

Als erstes ist  die Tastenbelegung für den angeschlossenen Controller einzustellen.

Beim Erscheinen der folgenden Ansicht, klicken und halten Sie beliebige Taste auf Ihrem Controller.

RetroPie Start

Nachdem der angeschlossene Controller erkannt wurde, erscheint folgende Ansicht.

RetroPie Controller erkannt

Folgen Sie nun den Anweisungen auf dem Bildschirm, um die Tasten des Controllers zu konfigurieren. Nachdem Sie alle Tasten konfiguriert haben, drücken und halten Sie einfach die Taste A, bis Sie zum nächsten Eintrag springen. Wiederholen Sie diesen Schritt, bis Sie zur „OK“-Taste kommen. Mit diesem OK wird die Controller-Konfiguration abgeschlossen.

Ihren zweiten Controller können Sie später im Start-Menü von Emulationstation einrichten.

Die Tasten-Belegung Ihres SNES-Controllers:

Tastenkombination

RetroPie unterstützt Shortcuts von Ihrem Controller. Folgende Funktionen können ausgeführt werden:

Tastenkombination

Funktion

Select+Start

Emulator Beenden

Select+Right Shoulder

Speichern

Select+Left Shoulder

Laden

Select+Right

Input State Slot Increase

Select+Left

Input State Slot Decrease

Select+X

RGUI Menu

Select+B

Reset

 

WIFI/WLAN einrichten (optional)

Die WLAN-Funktion kann dafür verwendet werden, um die Software zu aktualisieren, weitere Programme zu installieren, oder Spiele(ROMS) per WLAN zu übertragen. Für den Betrieb der Konsole ist es nicht notwendig.

Die Einrichtung der WLAN-Funktion ist im Folgenden beschrieben:

BITTE BEACHTEN SIE: Um die WLAN-Funktion auf dem neuen Raspberry Pi 3 B+ nutzen zu können, ist es erforderlich, als erstes das WLAN-Land (WiFi-Country) im Menü„raspi- config„ einzustellen. Die Einstellung finden Sie unter Menüpunkt 4 (Localisation options) des Menüs.

  • Schließen Sie eine Tastatur an und betätigen Sie die Taste F4, um den Terminal zu starten.
  • Im Terminal geben Sie dieses Befehl ein:

sudo raspi-config

Im Einstellungsfenster wählen Sie “Localisation options“ -> “Change WiFi-Country“ und stellen Sie das entsprechende Land ein.

Kehren Sie anschließend zu der RetroPie-Ansicht zurück.

Wählen Sie im Startbildschirm RetroPie aus und drücken Sie die A-Taste, um das Einstellungsmenü aufzurufen.

Wählen Sie ganz unten den Eintrag WIFI und drücken Sie die A-Taste. Folgende Ansicht wird geöffnet. Wählen Sie „Connect to WIG`FI network“.

Wählen Sie Ihre WLAN-SSID aus der Liste aus:

Tippen Sie Ihr Passwort für das ausgewählte WLAN ein:

Wenn die Verbindung erfolgreich hergestellt wurde, erscheint folgendes Fenster mit den Angaben zum Netz.

ROMs (Spiele) zu RetroPie kopieren

Aus urheberrechtlichen Gründen werden keine Spiele mit RetroPie mitgeliefert. Es gibt drei Möglichkeiten, die ROMs auf den RetroPie zu übertragen (USB, SFTP und Samba-Shares). Nach der Übertragung der ROMs muss die Emulationstation neugestartet werden.

Die Spiele-ROMs sind sehr leicht im Internet zu finden. Es empfiehlt sich die Google-Suche für die Suche nach ROMs zu verwenden.

Die Emulationstation wird neugestartet, indem man im Startbildschirm die Start-Taste am Controller drückt, dann auf „Quit“ und „Restart Emulationstation“.

Samba Dateifreigabe

Windows:

Geben Sie im Explorer „retropie“ ein. Sie können „retropie“ auch mit der IP des Raspberry Pi ersetzen. Jetzt können Sie die ROMs im Ordner roms in den passenden Emulator Ordner kopieren.

Mac OSX:

In der Seitenleiste unter Freigaben des Finders, sollte ein Eintrag retropie sein. Klicken Sie darauf um sich mit dem Raspberry Pi zu verbinden. Jetzt können Sie die ROMs im Ordner roms in den passenden Emulator Ordner kopieren.

Spiele mit dem USB Stick kopieren

Der USB-Stick muss das Dateiformat FAT32 oder NTFS haben. Erstellen Sie einen Ordner mit dem Namen retropie auf dem USB-Stick. Stecken Sie den USB-Stick in eine der USB-Schnittstellen auf der Konsole in den Raspberry Pi mit RetroPie und warten Sie ca. 20 Sekunden.

Stecken Sie nun den USB-Stick wieder in den PC oder Laptop. Im retropie-Ordner sollten nun neue Ordner erstelltworden sein. Im Ordner retropie/roms wurde für jeden Emulator ein eigener Ordner erstellt. Kopieren Sie die ROMS in die passenden Emulator Ordner.

Super Nintendo ROMS haben die Endung .sfc und müssen in den Ordner retropie/roms/snes kopiert werden.

Stecken Sie den USB-Stick wieder in die RetroPie-Konsole und warten Sie wieder ca. 10-20 Sekunden für ungefähr 4 Spiele. Sie können den USB-Stick jetzt herausziehen.

Starten Sie die Emulationstation neu, indem Sie die Start-Taste am Controller drücken, dann auf „Quit“ und „Restart Emulationstation“.

Nach dem Neustart sollten Sie du mit den Steuerkreuz ein Emulator auswählen können.

Spiele via SFTP kopieren (LAN Kabel oder WLAN)

Als SFTP Programm können Sie Filezilla verwenden. Es ist kostenlos und für Windows, Mac OSX und Linux verfügbar.

Verbinden Sie sich mit RetroPie mit folgenden Daten:

Server: retropie

Benutzername: pi

Passwort: raspberry (aus Sicherheitsgründen wird geraten das Standard-Passwort noch vor dem Netzwerkanschluss zu ändern. Lesen Sie hier mehr dazu.)

Port: 22

Jetzt können Sie die ROMs im Ordner RetroPie/roms in den passenden Emulator Ordner kopieren.

Einrichtung der Tasten Safe Power und Safe Reset

Das NESPi PLUS Gehäuse verfügt über die Funktion zum sanften Herunterfahren und sanftem Zurücksetzen. Um diese Funktionen nutzen zu können, ist es erforderlich, das eigens zu diesem Zweck geschriebene Skript zu installieren. Im Folgenden wird beschrieben, wie man dies erledigt.

Schalter “Safe Shutdown”

Legen Sie den Schalter für sicheres Herunterfahren auf der Platine des Gehäuses in die Position “ON“.

Safe shutdown Schalter Nespi Plus

Installation des Skripts

  • Stellen Sie sicher, dass der Raspberry Pi mit internet verbunden und RetroPie bereits installiert und eingerichtet ist.
  • Schließen Sie eine Tastatur an und betätigen Sie die Taste F4, um den Terminal zu starten.
  • Ändern Sie, falls nötig, die Tastaturbelegung wie in diesem Video gezeigt:
    https://youtu.be/rvcBteNsJaY
  • Im Terminal geben Sie dieses Befehl ein:

wget -O – https://raw.githubusercontent.com/RetroFlag/retroflag-picase/master/install.sh | sudo bash

oder (falls der obere Skript nicht greift):

wget -O – https://raw.githubusercontent.com/crcerror/retroflag-picase/master/install.sh | sudo bash

Damit wird ein Ein-Zeilen-Installer ausgeführt, der das notwendige Skript herunterlädt und entsprechend installiert. Nun können Sie die Konsole per Tastendruck auf Power oder Reset sanft Herunterfahren oder Neustarten.

Veröffentlicht am Schreib einen Kommentar

VORSICHT!!! Vor gefälschten NESPi Gehäusen

Retroflag warnt derzeit vor gefälschten NESPi Gehäusen auf dem Markt. Das möchte ich gern mit Euch teilen. 

ACHTUNG: Die gefälschten Gehäuse können Ihre SD-Karte beschädigen, da der Raspberry Pi in einem solchen Gehäuse nicht genug Strom bekommt.

Anzeichen einer Fälschung

Hier zeige ich Ihnen, welche Anzeichen dafür sprechen, ob das Gehäuse gefälscht ist. Diese können Sie dann leicht selbst überprüfen:

Die Tasten

Die Aufschrift auf den Tasten ist beim Original eher im unteren Bereich und in einer Linie angebracht, wie es bei der originalen NES-Konsole der Fall war. 

Bei der Fälschung ist die Aufschrift nicht sauber angebracht. Die Buchstaben sind unterschiedlich groß oder die Aufschriften befinden sich in unterschiedlicher Höhe. 

NESPi Gehäuse: Original gegen Fälschung – Tasten

Die Platinen

Die Verarbeitung (der Ausschnitt) der Platinen ist beim Original sauber und ohne Kanten.

Bei der Fälschung weist der Ausschnitt noch unerwartete Kanten auf. Die Verarbeitung ist ebenfalls mangelhaft.

Nespi Gehäuse: Original gegen Fälschung - Ausschnitt der Platine

Der Ausschnitt für den Netzanschluss

Beim Original ist der Netzanschluss-Ausschnitt sauber verarbeitet. Keine Schleifspuren sind zu sehen. 

Die Fälschung weist Schleifspuren auf und ist unsauber verarbeitet.

Nespi Gehäuse: Original gegen Fälschung - die Ausschnitte

Wenn Sie eine solche Fälschung erhalten haben, melden Sie dies bei Ihrem Händler und fordern Sie einen Ersatz. 

Die NESPi Gehäuse bei braspi sind Original von Retroflag und werden diesbezüglich geprüft. Übrigens hat Retroflag eine modifizierte Version des Gehäuses mit mehr Funktionen herausgebracht. Das neue NESPi Case Plus können Sie ab sofort bei braspi vorbestellen. Die Auslieferung ist ab dem 16. April geplant. 

Quellen: Alle in diesem Beitrag verwendeten Bilder sind von Retroflag (http://retroflag.com/Beware-of-fake-NESPi-Case.html)

Veröffentlicht am Schreib einen Kommentar

Der neue Raspberry Pi 3+ erblickt die Welt – was ist neu?

Raspberry Pi 3 B+

Raspberry Pi Foundation präsentiert den Raspberry Pi 3 Model B+ als den Nachfolger des Raspberry Pi 3 Model B. Das neue Modell hat einen schnelleren Prozessor, schnelleres Netzwerk und das verbesserte Dual-Band WLAN.

Es ist kein Pi 4 geworden, zumindest dieses Mal, aber die Überraschung ist meines Erachtens gelungen. Zumal die technischen Eigenschaften einiges versprechen. In diesem Beitrag gebe ich einen kurzen Überblick darüber, was an dem Pi 3 B+ neu ist und was vom Vorgänger Pi 3 B geblieben ist.

Vorab erwähnt: Die meisten Gehäuse und Zebehörteile aus unserem Shop, die an das Vorgängermodell passten, passen auch auf den neuen Pi 3 B+.

Das verbesserte SOC (System on Chip)

Das SOC ist das Herzstück des Boards und vereint sowohl das CPU als auch das GPU in sich. Seit dem Raspberry Pi 2 ist das SOC “vierkernig” (Quad Core). Lief das CPU vom Pi 3 B noch mit 1,2 GHz, so rechnet das CPU des Pi 3 B+ 1,4 GHz.

Das neue SOC (CPU und GPU) auf Raspberry Pi 3 Model B+

Das neue SOC sieht ganz anders aus als bei den Modellen Pi 2 und 3. Der Chip hat nun eine Metallabdeckung, die die entstandene Wärme von der Komponente besser ableitet – ein Kühlkörper ab Werk. 

Die mit 1,4 GHz übertaktete Quad-Core-CPU verspricht rechnerisch rund 17% mehr Power bei der Verarbeitungsgeschwindigkeit. Mal schauen, was die kommenden Benchmark-Test in Realität zeigen.

Schnelleres Netzwerk

Der PI verwendet einen LAN-Chip, der den Ethernet-Port sowie die vier USB 2.0 Ports verbindet. Im Unterschied zu den Vorgängern Pi 2 und 3 ist das Ethernet auf der PI 3 B+ nun 3 Mal schneller. Dies sollte in entsprechenden Netzen richtig bemerkbar sein.

Das LAN-Chip auf Raspberry Pi 3 Model B+

Bisher war das Ethernet auf 100 Mbit/s begrenzt, jetzt fließen die Daten mit bis zu 300 Mbit/s. Wobei es sich hier trotzdem um ein begrenztes Gigabit-Ethernet handelt, da die Begrenzung auf 300 Mbit/s lediglich daran liegt, dass die Daten nach wie vor über USB 2.0 laufen. Ihre Netzwerk-Switches sollten trotzdem Gigabit-Ethernet unterstützen, um von der schnelleren Geschwindigkeit des Pi 3 B+ profitieren zu können.

NEU: Power-over-Ethernet

Die vier neuen Pins sind rechts versetzt unter dem GPIO platziert. Diese Pins sind für das Power-over-Ethernet (PoE) HAT bestimmt, das die Raspberry Pi Foundation bald selbst auf den Markt bringen möchte. Ein Veröffentlichungsdatum gibt es derzeit noch nicht. Nützlich könnte es werden, wenn man viele Pi Boards in einem Cluster vernetzen möchte und über die PoE-Schnittstelle den Strom teilen können – das könnte also zusätzliche Netzteile überflüssig machen. 

Die PoE Pins auf Raspberry Pi 3 Model B+

Jedenfalls könnten die zusätzlichen Pins für Schwierigkeiten bei der Verwendung von HATs mit angebauten Komponenten auf der Rückseite links sorgen. Bedenken Sie dies also, wenn Sie neue HATs oder pHATs erwerben. 

Verbessertes WLAN

Das neue WLAN bringt zwei spürbare Verbesserungen mit sich. Zum einen ist es nun ein Dual-Band 802.11ac mit unabhängigen Frequenzen 2,4 GHz und 5 GHz. Die letztere Frequenz ist weniger für Störungen anfällig, bringt jedoch eine geringere Reichweite mit sich. Das hilft in den Umgebungen, wo sehr viele andere Geräte bereits auf der 2,4 GHz Frequenz funken. In diesem Fall könnte das Umschalten auf 5 GHz für bessere Datenübertragungsraten sorgen. Zudem sorgt das ac-Standard für höhere Übertragungsgeschwindigkeiten.

Der WLAN-Chip auf Raspberry Pi 3 Model B+

Zum anderen verwendet der PI 3 B+ die gleiche PCB-Antennentechnologie von Proant AB, die auch auf der PI Zero W eingesetzt wird. Versteckt ist dies unter der Metallabdeckung mit dem Raspberry Pi Logo links oben. Unter der Abdeckung sind sowohl der WLAN-Chip als auch die Schaltung untergebracht, um diese vor Störungen des restlichen Boards zu schützen.

Was ist gleich geblieben?

RAM, Video, Audio, die USB-Ports, GPIO und die DSI-/CSI-Anschlüsse bleiben alle gleich wie bei den Modellen Pi 2 und 3. Die Platzierung von Anschlüssen, Pins und Befestigungslöchern bleibt ebenfalls gleich.

(Alle hier verwendeten Bilder stammen von der Raspberry Pi Foundation: https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/)

Veröffentlicht am Schreib einen Kommentar

PIN Eingabesystem mit Explorer HAT Pro

In diesem kleinen Tutorial werden Sie lernen, wie man ein paar Geräte mit den kapazitiven Touchflächen des Explorer HAT Pro verbindet und somit ein kleines PIN-Eingabesystem schafft. Dieses System wird die verbunden LEDs je nachdem, ob eine PIN-Nummer korrekt oder falsch eingegeben wurde, zum Leuchten und den Summer zum Erklingen bringen.

Das folgende Tutorial ist die deutsche Wiedergabe des Originals von Pimoroni.

Im Tutorial wird gezeigt, wie man die LEDs an dem Explorer HAT Pro richtig anschließt und steuert sowie wie man den Summer mittels PWM (Pulse Width Modulation) steuert.

Das wird benötigt:

  • Raspberry Pi 3/2/B+/Zero/Zero W
  • Explorer HAT Pro
  • Ein paar 470 Ohm Widerstände (mindestens drei)
  • Ein Paar Farb-LEDs 5 mm (Idealerweise grün und rot)
  • Ein Piezo-Wandler (Summer) 
  • Ein paar Steckbrücken

All diese Teile sind im Set Explorer HAT Pro Teile-Set enthalten.

Installation der Software

Wenn Ihr Explorer HAT Pro noch nicht eingerichtet ist, führen Sie folgende Befehle aus, um die Einrichtung vorzunehmen:

curl https://get.pimoroni.com/i2c | bash
sudo apt-get install python-smbus
sudo apt-get install python-pip
sudo pip install explorerhat

Mit diesen Befehlen wird I2C eingerichtet und die Python-Bibliothek für Explorer HAT Pro installiert.

Anschließend setzen Sie den Explorer HAT Pro auf die GPIO-Pins Ihres Raspberry Pi. Um zu überprüfen, ob der Explorer HAT Pro richtig eingerichtet wurde, führen Sie den folgenden Befehl aus:

python -c ‘import time, explorerhat; explorerhat.light.on(); time.sleep(1); explorerhat.light.off()’

 

Der obere Befehl soll die am Explorer HAT Pro verbauten LEDs zum Leuchten bringen. Alle vier LEDs leuchten für eine Sekunde auf. Wenn es geschehen ist, so wurde der Explorer HAT Pro richtig eingerichtet und Sie können fortfahren.

Die Komponenten verbinden

Setzen Sie die einzelnen Komponenten wie im unteren Schaltplan dargestellt ein. 

Achten Sie darauf, die LEDs richtig zu verbinden: Mit dem langen Draht – die Anode – an den 5V-Anschluss via Widerstand und mit dem kurzen Draht an den Ausgangskanal. Die Widerstände, die mit den LEDs verbunden sind, begrenzen die ankommenden 5V auf die für die LEDs verträgliche Spannung. Der Piezo-Wandler sowie der entsprechende Widerstand können dann von Ihnen beliebig verbunden werden.

PIN Eingabesystem Schaltplan

Der Code

Das sind die Aufgaben, die mit dem Code realisiert werden sollen:

  • Einen PIN-Code aus vier Zahlen setzen
  • Die Reihenfolge der eingegebenen Zahlen verfolgen 
  • Ein visuelles Feedback bei der Eingabe der Zahlen bekommen
  • Nach Eingabe von vier Zahlen, prüfen, ob die Eingabe korrekt war 
  • Wenn die PIN korrekt ist, die grüne LED soll blinken und der Summer soll einen hohen Ton abgeben
  • Wenn die PIN falsch ist, die rote LED soll blinken und der Summer soll einen tiefen Ton abgeben
  • Nach Eingabe der vier Zahlen werden die eingegeben Zahlen gelöscht 
  • Eine Meldung im Terminal ausgeben

Der unten abgebildete Code kann vom Github geklont werden. Im weiteren Verlauf wird jedoch auf einzelne Bestandteile des Codes eingegangen. 

 

Den Code klonen und ausführen 

git clone https://github.com/sandyjmacdonald/explorer-hat.git
cd explorer-hat/examples
python pin_entry.py

So sieht der Code aus:

 ## Imports, for time delays, controlling Explorer HAT Pro and GPIO pin 18
## for the piezo buzzer.

import time
import explorerhat as eh
import RPi.GPIO as GPIO

## Sets up GPIO pin 18 as a PWM output with freq. of 400 Hz.

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
buzzer = GPIO.PWM(18, 400)

## Lists for the correct PIN and an empty one to add digits to.

correct_pin = [1,2,3,4]
pin = []

## Function to add a digit pressed on EHP cap. touch to our pin list.

def add_to_pin(channel, event):
if channel > 4: ## Only use channels 1-4
return
if event == ‘press’:
global pin
pin.append(channel)
eh.light[channel-1].on() ## Blink the corresponding LED
time.sleep(0.05)
eh.light[channel-1].off()

## We use a try, except, finally to run our code and catch exceptions.

try:

## The while True loop keeps the program running until control-c breaks out.

while True:
while len(pin) < 4: ## Keeping adding until 4 digits added
eh.touch.pressed(add_to_pin)
time.sleep(0.05)
if pin == correct_pin: ## Runs with correct PIN
print(‘PIN correct!’)
for i in range(5): ## Blinks LEDs and buzzes 5 times
buzzer.ChangeFrequency(400) ## High frequency
buzzer.start(50)
eh.output.one.on() ## Turns green LED on
time.sleep(0.1)
buzzer.stop()
eh.output.one.off() ## Turns green LED off
time.sleep(0.1)
else: ## Runs with incorrect PIN
print(‘PIN incorrect! Try again.’)
for i in range(5): ## Similar to previous block
buzzer.ChangeFrequency(50) ## Low frequency
buzzer.start(50)
eh.output.two.on() ## Turns red LED on
time.sleep(0.1)
buzzer.stop()
eh.output.two.off() ## Turns red LED off
time.sleep(0.1)
pin = [] ## Resets the list after 4 digits have been entered

## Catches control-c.

except KeyboardInterrupt:
pass

## Catches any other exceptions.

except Exception:
pass

## Clean up GPIO before exit.

finally:
GPIO.cleanup()

 

Die Erläuterungen zum Code 

Imports:

import time
import explorerhat as eh
import RPi.GPIO as GPIO

 

Das Modul time wird verwendet, um etwas Verzögerung in den Code zu bringen. Die kleinen Verzögerungen sind gut für die geordnete Ausführung des Codes. Empfohlen ist beispielsweise der Wert von 0.05 Sekunden.

Das import explorerhat as eh ist aus Effizienz-Gründen wichtig, um nicht jedesmal explorerhat im weiteren Verlauf des Codes tippen zu müssen.

Das RPi.GPIO wird für die Steuerung des Piezo-Wandlers via PWM benötigt.

Die Einrichtung von RPi.GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
buzzer = GPIO.PWM(18, 400)

 

Die erste Zeile definiert die GPIO Pin-Nummer als Broadcom-Nummerierung. Die zweite Zeile setzt den GPIO-Pin 18 als den Ausgangspin. Der PWM-Kanal des Explorer HAT Pro ist mit dem GPIO-Pin von Raspberry Pi verbunden, an diesen wird der Piezo-Wandler angeschlossen.

Die letzte Zeile generiert ein PWM-Objekt mit dem Namen buzzer und verwendet den Pin 18 sowie setzt die Frequenz auf 400 Hz. Dieses buzzer-Objekt kann später für die Steuerung des Summers verwendet werden.

PIN setzen

correct_pin = [1,2,3,4]
pin = []

 

In der ersten Zeile wird die korrekte PIN definiert und in der zweiten Zeile kann die PIN eingetragen werden. Diese Liste wird dann nach der vollständigen Eingabe immer geleert.

Zahlen eingeben 

def add_to_pin(channel, event):
if channel > 4:
return
if event == ‘press’:
global pin
pin.append(channel)
eh.light[channel-1].on()
time.sleep(0.05)
eh.light[channel-1].off()

 

Hier wird eine kleine Funktion geschaffen, mit der drei Sachen erledigt werden: Erkennung der betätigten Taste, Eintragung der entsprechenden Nummer in die pin-Liste und Blinken der entsprechenden LED als visuelles Feedback für die Eingabe. Diese Funktion wird später an die eh.touch.pressed() weitergegeben.

Die Zeilen if channel > 4: return bedeuten, dass nur die Tasten 1 bis 4 am unteren Rand des Explorer HAT Pro verwendet werden können. Anschließend wird die pin als global definiert, um diese von überall erreichen zu können. Danach wird die eingegebene Nummer in die Liste eingetragen. Mit eh.light[channel-1].on() wird die der betätigten Taste entsprechende LED aktiviert. Das time.sleep(0.05) hält die LED aktiviert und eh.light[channel-1].off() deaktiviert diese abschließend. Vom Kanal muss stets 1 subtrahiert werden, da die Kanäle ab 1 und die LEDs ab 0 indexiert sind.

Try, except, finally:

Die Sektionen try, except, finally werden für mehr Ordnung genutzt. Try erlaubt die Ausführung des Hauptcodes. Die möglichen Abweichungen werden mit except gehandhabt. Und im finally wird der Befehl GPIO.cleanup() ausgeführt, der wichtig ist, um jegliche Probleme bei der Verwendung von RPi.GPIO-Bibliothek zu vermeiden.

Berührung erfassen und Nummern in die pin-Liste eintragen

while True:
while len(pin) < 4:
eh.touch.pressed(add_to_pin)
time.sleep(0.05)

 

while True hält den Code am Laufen, bis dieser durch control-c unterbrochen wird. Dann werden die Eingaben solange angenommen, bis die pin-Liste alle vier Zahlen enthält. Der Befehl eh.touch.pressed(add_to_pin) führt die oben erstellte Funktion add_to_pin aus jederzeit, wenn eine Berührung erfasst wurde und trägt die eingegebenen Zahlen in die pin-Liste sowie gibt das visuelle Feedback dazu. Die Zeile time.sleep(0.05) sorgt für die ordentliche Ausführung.

Ihre PIN ist richtig!

Die Zeile while len(pin) < 4 wird abgeschlossen, nachdem die 4 Zahlen erfasst wurden. Nun muss geprüft werden, ob die eingegebene PIN richtig oder falsch war.

if pin == correct_pin:
print(‘PIN correct!’)
for i in range(5):
buzzer.ChangeFrequency(400)
buzzer.start(50)
eh.output.one.on()
time.sleep(0.1)
buzzer.stop()
eh.output.one.off()
time.sleep(0.1)

 

Zuerst wird festgestellt, ob die eingegebene pin der correct_pin entspricht. Wenn ja, dann wird im Terminal die entsprechende Meldung ausgegeben. 

Dann wird ein for Loop fünf Mal nacheinander ausgeführt. Jedes Mal wird der Summer mit buzzer.ChangeFrequency(400) auf eine hohe Frequenz gesetzt und mit buzzer.start(50) ausgeführt. Gleichzeitig wird die grüne LED, die am Ausgang 1 angeschlossen ist, mit eh.output.one.on() aktiviert. Die Zeile time.sleep(0.1) bedeutet, dass der Summer und die LED für 0,1 Sekunde erklingt bzw. erleuchtet.

Abschließend wird der Summer mit buzzer.stop() und die LED mit eh.output.one.off() deaktiviert. Nun wird noch die Zeitverzögerung mit time.sleep(0.1) eingeführt – in dieser Zeit geschieht nichts.

Dieser Loop wird fünf Mal wiederholt, währenddessen wird für insgesamt eine Sekunde die LED fünf Mal aufleuchten und der Summer fünf Mal erklingen.

Ihre PIN ist falsch!

Der else Block tut im Grunde dasselbe wie der vorherige, mit einer Ausnahme – es leuchtet die rote LED und der Summer erklingt im tieferen Ton. Auch wird die entsprechende Meldung im Terminal ausgegeben.

else:
print(‘PIN incorrect! Try again.’)
for i in range(5):
buzzer.ChangeFrequency(50)
buzzer.start(50)
eh.output.two.on()
time.sleep(0.1)
buzzer.stop()
eh.output.two.off()
time.sleep(0.1)

 

Abschließend wird die pin-Liste mit pin = [] geleert und für eine weitere Eingabe vorbereitet. Nun kann die PIN-Eingabe wiederholt werden.

Das war es schon. Viel Spaß beim Ausprobieren!