Raspberry Pi mit Touchscreen einrichten (02.05.14)
Dieser Beitrag wurde 179915 mal angezeigt.
Hy Leute,
heute möchte ich euch mal erklären wie man sein Raspberry Pi mit Raspbian und einem Touchscreen von Adafruit einrichtet.
Was benötigen wir:
- Raspberry Pi B.
- Eine SD Karte mit mindeste 2 GB. Optimal sind 4-16 GB
- Ein Adafruit Display (PiTFT Mini Kit – 320×240 2.8″ TFT+Touchscreen für Raspberry Pi)
- Debug Kabel
- WLan USB Stick
- USB Netzteil
- Optimal: Tactile Switch Buttons (6mm slim)
- Optimal : Stacking Header für Raspberry Pi 2×13 (extra groß)
- Optimal: Case
(Ich würde mich freuen wenn Ihr die Artikel, über meinen Partner-Shop bei Amazon kauft, reguläre Amazon Preise, keine Nachteile und ihr unterstützt meine Seite damit 😉 )
Ich möchte auf dem Pi und dem Display später ein Statistik anzeigen lassen, die mit z.b. die Geschwindigkeit des CGMiners anzeigt.
Aber ich halte die Anleitung erst mal so allgemein, das jeder mit dieser Anleitung einen Pi zum laufen bekommt und ebenfalls das Display in Funktion bringt, anschließend je nach Anwendungsfall weiter macht.
Schritt 1
Als erstes besorgen wir uns ein frisches Raspbian Image. Warum? Für das Display benötigen wir spezielle Treiber und ich vermute das die Treiber für das 2×16 Display uns im Wege stehen könnten.
Also laden wir uns das neuste herunter.
Die ZIP entpacken wir und erhalten nun eine *.img Datei. Diese müssen wir auf eine SD Karte bringen. Dazu gibt es das Tool Win32diskimager.
Hier könnt ihr dieses in der Version 0.9.5 laden: Win32DiskImager-0.9.5-binary.
Oder hier die neuste Version finden: Link
Mit diesem Tool könnt ihr das Image auf die SD Karte schreiben.
Schließt euren Kartenleser an und steckt eure SD Karte rein, bevor ihr das Programm startet. Sonst erkennt das Programm nicht wo sich die SD Karte befindet. Anschließend wählt ihr das entsprechende Image aus und drückt auf „write“. Nun wird das Image auf die SD Karte geschrieben. Alle Daten die sich vorher auf dem Image befunden haben werden entfernt.
Mit der „Read“ Funktion könnt ihr anders herum ein Image von der SD Karte erstellen und speichern.
Schritt 2
Nachdem wir das Image nun auf die SD geschrieben haben, können wir diese in unseren Pi stecken und starten. Dazu benötigen wir das Debug Kabel und das Programm PUTTY. Da unser Pi noch nichts vom WLan oder Lan weiß.
Als erstes stecken wir das Debug Kabel an einen USB Anschluss nach der erfolgreichen Installation durch Windows 7 können wir unter „Geräte und Drucker“ sehen, welcher COM Port für das Kabel reserviert wurde.
- Nun starten wir Putty und geben die entsprechenden Daten ein damit wir uns zu unseren Raspberry verbinden können.
- Wir setzen die „Connection type“ auf: Serial
- Speed auf 115200
- Wer Putty vorher schon einmal verwendet hat, sollte darauf achten das UTF-8 eingestellt ist.
- Anschließend klicken wir auf “Open”. Putty wartet nun auf eine Verbindung.
Nun können wir unser Debug Kabel an unseren Raspberry anschließen: Dazu setzen wir die Adern genau so wie auf dem folgen Bild zu sehen:
Schritt 3
Um sich am Raspberry einzuloggen benutzen wir den Standard User und Passwort:
- User: pi
- Passwort: raspberry
Bei erfolgreicher Anmeldung können wir nun die Settings fürs WLAN vornehmen. Dazu geben wir folgendes ein:
sudo nano /etc/network/interfaces
Es öffnet sich ein Editor mit dem wir unsere Einstellungen ändern können.
Hier können wir nun unsere LAN und WLAN Einstellungen hinterlegen. LAN stellen wir so ein, das er dies automatisch erkennt und sich vom DHCP Server eine IP Adresse zuweisen lässt.
Beim WLan hinterlegen wir entsprechend eine ssid und ein PW, sodass unser Pi übers WLan verbinden kann und sich vom DHCP Server ebenfalls automatisch eine IP Adresse zuweisen lässt.
auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid "ssid" wpa-psk "password"
Um die Einstellungen zu ändern, Geben wir unser WLan bei wpa-ssid ein und das Passwort unter wpa-psk.
Nun drücken wir Strg+X ,die Taste Y und „Enter“ zum speichern.
Nun müssen wir unseren Raspberry rebooten damit dieser Verbindung zum WLan aufbaut.
sudo reboot
Nachdem der Rapsberry neu gebootet hat, melden wir uns wieder an und prüfen welche IP er bekommen hat. Dies können wir mit dem Befehl machen:
sudo ifconfig
Nachdem wir nun die IP Adresse haben können wir uns Zugang über SSH verschaffen. Dies brauchen wir dann später wenn wir mal auf den Pi zugreifen möchten.
Schritt 4
Damit wir uns als Root User per SSH auf dem Pi anmelden können müssen wir dem Root-User ein PW zukommen lassen.
Dazu geben wir folgendes ein:
sudo passwd root
Nun werden wir nach dem neuen Passwort gefragt das wir 2 mal eingeben müssen.
Wir haben wir unseren Pi soweit das wir uns per SSH anmelden können.
Dazu können wir nun das Debug-Kabel entfernen und den Pi an ein USB Netzteil hängen.
Schritt 5
Nachdem unser Pi neu gebootet hat können wir uns per SSH mit dem Raspberry verbinden. Ich nutze dazu immer gerne das Tool WinSCP. Da wir hier auch gleich noch eine Commander Oberfläche bekommen und Putty mit dem Programm verbinden können.
Wenn wir uns mit User „root“ und unserem gesetzten Passwort anmelden, bekommen wir erst mal Raspi-Config präsentiert.
1. Wir sollten als erstes das File-System der SD Karte anpassen. Damit wir den vollen Platz zur Verfügung haben.
4. Als nächstes holen wir uns die Deutsche Sprache an Board. Dazu wählen wir Punkt 4. aus und gehen schritt für schritt durch I1 bis I3
Unter I1 suchen wir uns alle de_DE wenn wir in Deutschland sind. z.b.
- de_DE ISO-8859-1
- de_DE.UTF-8 UTF-8
- de_DE@euro 9959-15
I2 setzen wir nun die Location und damit die Zeit-Einstellungen. Unser Pi soll ja auch die richtige Zeit im System haben.
Unter I3 ändern wir nun das Keyboard Layout auf das Deutsche. Damit wir die Umlaute nutzen können.
7. Damit unserem Pi mehr Power zur Verfügung steht, können wir noch die „Overclock“ Einstellung ändern. Wenn ihr Kühlkörper verbaut habt, könnt ihr den Pi auf 950 MHz Hochtakten. Aber nicht vergessen, das geschieht auf eigene Gefahr.
Schritt 6
Zum Schluss der normalen Einrichtung eines Pi’s können wir uns nun entscheiden ob wir die Standard grafische Oberfläche aktiveren, dazu wird ein Display, Keyboard und eine Maus benötigt. Dazu ändern wir einfach die Einstellung unter 3.
Fertig. Wir können Raspi-Config nun verlassen und haben unseren Pi erst mal Standardmäßig eingerichtet.
Schritt 7
Damit der Pi auf den neusten Stand kommt, müssen wir diesen einmal komplett updaten:
sudo apt-get update && sudo apt-get upgrade -y && sudo rpi-update && sudo reboot
Der Pi startet dann anschließend neu um die neuste Firmware zu laden.
Schritt 8, Touch-Display installieren
Als nächstes können wir das Display installieren. Dazu gehen wir wieder per SSH auf den Pi und geben folgendes ein um erst mal die Pakete zu bekommen:
cd ~ wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-bin-adafruit.deb wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-dev-adafruit.deb wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-doc-adafruit.deb wget http://adafruit-download.s3.amazonaws.com/libraspberrypi0-adafruit.deb wget http://adafruit-download.s3.amazonaws.com/raspberrypi-bootloader-adafruit-112613.deb
Alternativ könnt ihr auch die neuste Version des Boot-Loaders für das Display nutzen. Dieser soll schneller sein. Befindet sich aber noch in der Entwicklung. Also nur nutzen wenn ihr es ausprobieren wollt. Ihr könnt das Packet auch später durch das ältere setzen oder das ältere durch das neue 😉
wget http://adafruit-download.s3.amazonaws.com/raspberrypi-bootloader-adafruit-20140421-3.deb
Wenn wir alle „deb“ Dateien haben können wir den neuen Kernel installieren.
sudo dpkg -i -B *.deb sudo mv /usr/share/X11/xorg.conf.d/99-fbturbo.conf ~
Der neue Kernel ist nun installiert. Nun können wir den Pi abschalten und das Display montieren und den Pi wieder starten.
sudo shutdown -h now
Schritt 9
Nun können wir das Display testen. Wir melden uns wieder an und geben folgendes ein:
sudo modprobe spi-bcm2708 sudo modprobe fbtft_device name=adafruitts rotate=90 export FRAMEBUFFER=/dev/fb1 startx
Sollte hier nun das Display erst schwarz werden und bei „startx“ der Desktop des Pis geladen werden, haben wir alles richtig gemacht. Und können mit dem automatischen Startdes TFT Kernels vorfahren.
Wenn hier nun nichts passiert, habt ihr etwas falsch gemacht und solltet von vorne beginnen.
Schritt 10
Wir schließen den Desktop in dem wir in der Konsole „Strg-C“ drücken. Das Display friert nun ein und wir können mit der Config fortfahren.
Als erstes möchten wir das unsere Module direkt geladen werden. Dazu öffnen wir /etc/modules
sudo nano /etc/modules
und fügen diese 2 Zeilen am ende hinzu:
spi-bcm2708 fbtft_device
Mit Strg-X und anschließend y für Speichern beenden wir nano.
Wir sind aber noch nicht fertig und müssen noch die modprobe hinzufügen:
sudo nano /etc/modprobe.d/adafruit.conf
Und schreiben dies hinein:
options fbtft_device name=adafruitts rotate=90 frequency=32000000
schließen und speichern.
Was bedeuten die Einstellungen?
- rotate: Variable die angibt wie das Display gedreht werden solll. Möglich sind 0, 90, 180 oder 270 Grad.
- 0 Grad ist dort wo das Adafruit Logo ist.
- 90 Grad ist dort wo die Knöpfe sind.
- frequency: sagt dem Treiber wie schnell er das Display neu laden (refreshen) soll 32MHz (32000000) ist vollkommen ausreichend für 20 FPS (Frames per Sec) Wenn dein Bildschirm aber nicht sauber funktioniert, probiere 16 MHz (16000000)
Jetzt sollten wir einmal „rebooten“ und anschließend „dmesg“ eingeben und schauen ob unser Display auch ordentlich gefunden wurde. Hier sollte nun folgendes zu finden sein:
stmpe-spi spi0.1: stmpe610 detected, chip id: 0x811
und
stmpe610 spi0.1 500kHz 8 bits mode=0x00 fb_ili9340 spi0.0 32000kHz 8 bits mode=0x00
Schritt 11
Damit wir das Display auch nutzen können, müssen wir dieses kalibrieren. Dazu hinterlegen wir uns eine config file.:
sudo mkdir /etc/X11/xorg.conf.d sudo nano /etc/X11/xorg.conf.d/99-calibration.conf
Und fügen hier unsere Standard Config ein:
Section "InputClass" Identifier "calibration" MatchProduct "stmpe-ts" Option "Calibration" "3800 200 200 3800" Option "SwapAxes" "1" EndSection
Jetzt können wir erneut das Display testen :
FRAMEBUFFER=/dev/fb1 startx
Das Display sollte nun schon recht gut funktionieren. Damit wir nicht ständig FRAMEBUFFER … mit schreiben müssen, können wir dies in unserem Profil hinterlegen. Dazu verlassen wir wieder das Display mit „Strg-C“ und gehen mit Nano in unsere profile Datei:
sudo nano ~/.profile
Achtet darauf mit welchen Login ihr eingeloggt seit. Wenn ihr als Root eingeloggt seit, müsst ihr
sudo nano /home/pi/.profile
editieren.
Hier fügt ihr nun
export FRAMEBUFFER=/dev/fb1
ein. Speichert die Einstellung und startet den PI mit einem Reboot neu.
Schritt 12
Nachkalibrieren. Das Display arbeitet zwar, doch könnte es noch besser funktionieren. Dazu haben wir nun die möglichkeit, dieses entsprechend nach zu kalibrieren. Dazu hinterlegen wir uns eine Regel-File.
sudo nano /etc/udev/rules.d/95-stmpe.rules
Hier fügen wir nun folgendes ein:
SUBSYSTEM=="input", ATTRS{name}=="stmpe-ts", ENV{DEVNAME}=="*event*", SYMLINK+="input/touchscreen"
Danach müssen wir das Display einmal entfernen und wieder installieren mit :
sudo rmmod stmpe_ts; sudo modprobe stmpe_ts
Nun prüfen wir, ob unser Display auch erkannt wurde mit :
ls -l /dev/input/touchscreen
Wenn das Display erkannt wurde, können wir uns einige Tools zum kalibrieren besorgen:
sudo apt-get install evtest tslib libts-bin
Starten wir:
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate
Nachdem wir die Kreuze angeklickt haben, ist unser Display kalibiert und wir können einen Test starten:
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_test
Mahlt dabei auch in den Ecken um zu sehen ob auch das ganze Display erfasst wird. Falls nicht. Wiederholt das kalibrieren. Du kannst später in der Oberfläche auf dem Display auch das Programm „xinput_calibrator“ nutzen um diesen Vorgang zu wiederholen.
Du solltest dies immer machen, wenn du das Display neu ausrichtest.
Nun kannst du das Display Final in der Oberfläche einstellen. Als Ergebnis bekommst du die Config File 99-calibration.conf
FRAMEBUFFER=/dev/fb1 startx & DISPLAY=:0.0 xinput_calibrator
Dieses könnt ihr dann mit „sudo nano /etc/X11/xorg.conf.d/99-calibration.conf“ ersetzen und neustarten.
Herzlichen Glückwunsch! Du bist nun fertig mit der Konfig.
Hier ein paar Extras :
Viel Spass dabei 😉
Sven
Falls euch dieser Beitrag gefallen hat, würde ich mich über ein kleines Trinkgeld per Mining oder direkt an die Senden-Wallet freuen
Falls du noch einen PiMiner für deine Mining Hardware benötigst, schreibe mich einfach an, ich kann dir gerne was zusammen basteln
BTC: 1LvETe6uTP64hK3UR3oSAdzT5ZjLnttqBm
DEM: NWtFftChrx28mvYgqfopmDejxoHiZmAK7u
– BTC/Mining –
Pool: stratum.mining.eligius.st:3334
User: 122aH1XgqetWJyfrdNcxd3kJY7DNaSrvMK_Spende
Pass: egalo
Mein piTFT läuft soweit ganz gut. Ich habe nur ein Problem mit startx, die Anzeige ist ok
aber die Eingabe ist verkehrt herum. Das heißt wenn ich den Desktop beenden will muß ich
immer links oben anklicken damit der Mauszeiger rechts unter das Abmeldeicon anklickt.
Hast Du eine Idee woran das liegen könnte.
MfG
Rolf
Wenn Du das Display vom Pollin hast: da soll man den Touch Anschluss-Stecker rumdrehen. Wie gesagt, hab ich gelesen. Probiers halt 🙂
Gruss
Volker
Hey,
super Anleitung. Nur eine Frage wäre, besteht auch eine Möglichkeit statt der Grafischen Oberfläche auch einfach eine Python GUI (Ein TK Inter) Fenster zu zeigen?
Vielleicht jemand ein Tipp für mich?
Michael
Hallo,
ich habe mein Display wie beschreiben angeschlossen, aber wenn ich den pi starte (ohne hdmi) dann startet der Bildschirm nicht. Gibt es eine Funktion damit das Display mit startet? Danke für die Hilfe! 🙂
Hallo Sven,
erstmal vielen lieben Dank für das Tutorial. Ich hangle mich grad durch, allerdings passt leider nicht alles.
Ich habe in Schritt 10 eine Abweichung:
Es soll auftauchen: stmpe-spi spi0.1: stmpe610 detected, chip id: 0x811
Ich habe aber: stmpe-spi spi0.1: unknown chip id: 0x0
Das heißt, er hat das Display nicht sauber erkannt. Die beiden anderen Zeilen, die überprüft werden sollen, passen.
Schritt 11 habe ich durchgeführt. In Schritt 12 soll das Display funktionieren, aber verbesserungswürdig sein. Ich habe vor Durchführung von Schritt 12 mal startx eingegeben. Das Display an sich funktioniert, es wird soweit alles angezeigt. Aber der Touch reagiert bis her gar nicht.
Was habe ich falschgemacht?
Gruß,
Eddie
Hallo Eddi,
für mich hört sich das nach einem kaputten Chip an der nicht antwortet.
Hast du alles sauber verlötet? Prüfe ob alles korrekt verdrahtet ist.
Falls ja… wüsste ich nun nicht weiter. Wenn „Google“ nicht mehr hilft, dann, wenn es geht zurück an den Lieferanten, wegen kaputten Chip.
Beste Grüße,
Hey Eddie,
Ich habe genau das selbe Problem das der Touch nicht funktioniert. hast du schon eine Lösung gefunden?
Super Anleitung, funktioniert , aber wie zum Geier soll ich damit jetzt arbeiten?
Es iss alles viel zu groß.
Ich kann nedmal den Taschenrechner komplett erkennen, weil ich nur die obere linke Ecke sehe.
Ich kann nedmal Schriften verkleinern, weil ich immer nur die obere linke Ecke von den Fenstern sehe. Ich kann sie zwar nach links schieben, aber ned nach unten, wie mach ich das ?
Hallo dise anleitung konnte mir helfen allerdings habe ich das eine problem das mein Touchscreen nicht erkannt wird und daher auch nicht touch ist ansonst funktionirt alles supi.
Ich hoffe es kann mir jemand helfen
Lg
Andrin
PS:
Der Error
Error: Module stmpe_ts is not currently loaded
ls: cannot access /dev/input/touchscreen: No such file or directory
Hat sich gelöst das flachband kabel war nicht richtig drin
Manchmal sind es die Sachen, die man am wenigsten vermutet 😉
Hauptsache es funktioniert 😉
Ist es möglich den pi 2 ausschließlich mit openelec oder osmc und Touchscreen zu benutzen?
Hallo Sven,
vielen Dank für das Tutorial. Alles hat super geklappt und ich kann mein Projekt anfangen.
Wie bekomme ich es hin, dass der Desktop vom pitft, ohne login und „startx“, automatisch startet?
Gibt es hier eine Lösung?
/etc/rc.local 😉
Hallo,
der Artikel war echt gut aber ich habe mein TFT-Touch-Display aus einem alten Navigationssystem ausgebaut und würde gerne wissen, wie man dies an den Pi anschließt. Das Display ist ein Samsung LTV35QV-F04-0RS.
Hoffe man kann mir helfen.
LG
Max
Hallo,
ich habe das Waveshare 4 Zoll TFT von amazon. Kurze Frage, und zwar beim installieren von Retropie zeigt mir das Display nur die Linux-Oberfläche an, aber das eigentliche Retropie weiterhin über HDMI. Wie schaffe ich es, das dass Bild-Signal nur über das Display erscheint? Raspbian hatte ich ohne Probleme anzeigen können, nur Retropie/emulationstation wird nicht angezeigt bzw nur über HDMI