HyperPixel 2r runder Touchscreen für Raspberry Pi
20. April 2022
über
über
Der HyperPixel 2r von Pimoroni rpixel-rund ist ein runder IPS (In-Plane Switching) kapazitiver Touchscreen mit Hochgeschwindigkeits DPI (Display Pixel Interface).
So wie seine quadratischen und rechteckigen HyperPixel 4 Brüder ist der 2r für den Raspberry Pi beabsichtigt. Tatsächlich ist die Größe optimiert für den Raspberry Pi Zero und den Zero 2W, aber da er den Standard 40 Pin HAT Verbinder hat, kann er auf jeden Raspberry Pi gesteckt werden, der mit solch einem Verbinder ausgerüstet ist, solange man die mechanische Seite der Dinge berücksichtigt.
Da das Display beinahe alle Anschlüsse des HAT (Hardware Attached on Top) Verbinders benötigt, kann man keine zusätzlichen Erweiterungsboards anschließen. Allerdings liefert das Display einen alternativen C-Port um Geräte anzuschließen.
Der Stromverbrauch eines HyperPixel + Raspberry Pi Zero 2W Systems beträgt etwa 300 mA im normalen Bildschirm Betrieb. Beim Hochfahren bemerkte ich Spitzen von über 500 mA. Um also auf der sicheren Seite zu sein, würden Sie eine 5W, 5V Stromversorgung benötigen.
Ich montierte den HyperPixel 2r auf einem Rapberry Pi Zero 2W laufenden Buster und aktivierte SSH, um das Leben später etwas einfacher zu gestalten. Nachdem der Treiber installiert war und das System erneut hochgefahren ist, zeigte das Display eine winzige Version des Bildchirmes, und ich konnte ein Fenster öffnen. Jetzt funktioniert der HDMI Port nicht mehr und der HyperPixel wurde zur einzigen Anzeige. Nachdem sie ziemlich winzig ist, habe ich den meisten Teil der Arbeit über die SSH auf meinem Laptop Computer abgewickelt.
Um das Display in Ihrer eigenen Anwendung zu verwenden, benötigen Sie die Bibliothek von Pimoronis Python3. Sie enthält ein paar Beispiele, aber die haben nicht gut bei mir funktioniert. Nach einiger Suche fand ich heraus, daß das Aktualisieren der letzten Version (2.1.0 zum damaligen Zeitpunkt) die Probleme löste, die ich hatte. Danach liefen die Demos alle gut. Beachten Sie, daß Berührung unterstützt wird, also berühren Sie den Bildschirm, um die Farben zu ändern.
Bedenken Sie, daß Berührung einen Treiber benötigt, so wie die Maus einen benötigt. Leider scheint so ein Treiber bis jetzt noch nicht zu existieren, aber Sie können stattdessen das Demo-Beispiel uinput-touch.py verwenden. Es funktioniert ganz gut.
Als Erstes installierte ich httplib2 was erforderlich ist für YouTube Abonnenten Zähler. Das Laufen des Programmes erforderte nun auch libsdl2-ttf, um Text am Bildschirm zu drucken. Und bedenken Sie, daß Ihre Anwendung pygame.init aufrufen muß, wenn Sie mit Text und Schriftzeichen arbeiten wollen. Einen Schriftsatz zu laden dauert ziemlich lange mit einem Raspberry Pi Zero, also setze ich das an den Anfang des Programmes. Wenn Sie den Schriftsatz verwenden, können Sie den Text in ein Bild rendern.
Da das Display berührungsempfindlich ist, habe ich eine Möglichkeit hinzugefügt, die Position des Zählers zu verändern, indem man sie einfach über den Bildschirm zieht. Wie bei der Uhr hängt die Farbe davon ab, wo man den Schirm berührt. Um sie auszumachen, verwendet der Zähler nicht die gleiche Farbe wie die Uhr, solange man nicht die Mitte berührt, um alles weiß zu machen.
Meinen Code kann man finden unter ClemensAt Elektor bei GitHub.
/boot/config.txt und dann das System erneut booten.
Beachten Sie, daß aus irgendeinem Grund das Zentrum des Bildschirm-Speichers nicht genau das Zentrum des Bildschirmes ist, es kann mehrere Pixel daneben liegen in der vertikalen Ebene. Man kann das korrigieren, indem man einen Offset hinzufügt, wobei das Vorzeichen des Offsets von der Rotation des Bildschirmes abhängt. Sie können sich das in meinem Code ansehen.
Ich habe ein Mabee MPU6050 Beschleunigungsmodul angeschlossen, um zu sehen, ob es gefunden wird. Das i2cdetect Werkzeug zeigte ein Gerät an der Adresse 68 hexadezimal, was tatsächlich die korrekte Adresse ist, also scheint das zu funktionieren. Ich konnte auch den Sensor auslesen, nachdem mpu6050-raspberrypi installiert war.
Ich habe das Ober- und Unterteil einer Dose abgeschnitten und die Display-mit-Raspberry-Pi-Baugruppe mit Abstandshaltern am Unterteil befestigt, so dass das Display bündig mit der Innenseite des Rings am Oberteil abschließt. Jetzt ist das Display geschützt, wenn der Deckel aufgesetzt ist, während der Touch weiterhin funktioniert.
Offiziell gibt es nur Unterstützung für Buster, aber ich habe es mit Bullseye ausprobiert. Mein Programm funktionierte genauso, nur dass das Menü des Desktops am oberen Bildschirmrand überlagert wurde.
Übersetzung: Walter Polleros
So wie seine quadratischen und rechteckigen HyperPixel 4 Brüder ist der 2r für den Raspberry Pi beabsichtigt. Tatsächlich ist die Größe optimiert für den Raspberry Pi Zero und den Zero 2W, aber da er den Standard 40 Pin HAT Verbinder hat, kann er auf jeden Raspberry Pi gesteckt werden, der mit solch einem Verbinder ausgerüstet ist, solange man die mechanische Seite der Dinge berücksichtigt.
HyperPixel 2r Spezifikationen
Die Auflösung des Bildschirmes beträgt 480 x 480 Pixel, aber da er rund ist, muß man natürlich die Ecken abziehen. Er hat eine 18-bit Farbtiefe, was 262,144 Farben bedeutet und unterstützt bis zu 60 fps (frames per second/ Bilder pro Sekunde). Der Sichtbereich hat einen Durchmesser von 2,1“ oder 52,3 mm und einen Sichtwinkel von 175°. Sein voller Durchmesser beträgt 72 mm (2,83“) bei einer Höhe von 11 mm (0,43“). Mit einem angeschlossenem Pi Zero ist die totale Höhe (oder Tiefe, je nachdem was Sie bevorzugen) 17 mm (0,67“)Frage: wie viele Pixel gehen durch die runden Ecken verloren?
Da das Display beinahe alle Anschlüsse des HAT (Hardware Attached on Top) Verbinders benötigt, kann man keine zusätzlichen Erweiterungsboards anschließen. Allerdings liefert das Display einen alternativen C-Port um Geräte anzuschließen.
Der Stromverbrauch eines HyperPixel + Raspberry Pi Zero 2W Systems beträgt etwa 300 mA im normalen Bildschirm Betrieb. Beim Hochfahren bemerkte ich Spitzen von über 500 mA. Um also auf der sicheren Seite zu sein, würden Sie eine 5W, 5V Stromversorgung benötigen.
Treiber und Bibliotheken
Um den HyperPixel 2r auf einem Raspberry Pi zu verwenden, muß man als Erstes einen Treiber installieren. Ausführliche Anweisungen, wie man das macht, finden sich auf der Webseite von Pimoroni und auf GitHub. Die Treiber sind nur für den Raspberry Pi OS Buster, es wird aber an einer Unterstützung für den Bullseye gearbeitet. Obwohl dieser noch nicht unterstützt wird, hab ich es dennoch versucht. Mein Demo-Programm (siehe unten) funktioniert genau so, außer daß das Menü am Bildschirm überdeckt wurde.Ich montierte den HyperPixel 2r auf einem Rapberry Pi Zero 2W laufenden Buster und aktivierte SSH, um das Leben später etwas einfacher zu gestalten. Nachdem der Treiber installiert war und das System erneut hochgefahren ist, zeigte das Display eine winzige Version des Bildchirmes, und ich konnte ein Fenster öffnen. Jetzt funktioniert der HDMI Port nicht mehr und der HyperPixel wurde zur einzigen Anzeige. Nachdem sie ziemlich winzig ist, habe ich den meisten Teil der Arbeit über die SSH auf meinem Laptop Computer abgewickelt.
Um das Display in Ihrer eigenen Anwendung zu verwenden, benötigen Sie die Bibliothek von Pimoronis Python3. Sie enthält ein paar Beispiele, aber die haben nicht gut bei mir funktioniert. Nach einiger Suche fand ich heraus, daß das Aktualisieren der letzten Version (2.1.0 zum damaligen Zeitpunkt) die Probleme löste, die ich hatte. Danach liefen die Demos alle gut. Beachten Sie, daß Berührung unterstützt wird, also berühren Sie den Bildschirm, um die Farben zu ändern.
Bedenken Sie, daß Berührung einen Treiber benötigt, so wie die Maus einen benötigt. Leider scheint so ein Treiber bis jetzt noch nicht zu existieren, aber Sie können stattdessen das Demo-Beispiel uinput-touch.py verwenden. Es funktioniert ganz gut.
Meine erste Anwendung
Sobald ich das Display funktionsfähig hatte, war es Zeit zu sehen, ob man was damit machen kann. Meine Idee war, es als YouTube Abonnierer Zähler zu verwenden, wo ich die 7 Segment Anzeige ersetzen wollte durch etwas, was mehr sexy ist. Die Uhren-Demo schien mir ein guter Startpunkt zu sein. Ich mußte lediglich den YouTube Anforderungsteil hinzufügen, um die Anzahl der Abonnenten zu erhalten und dann die Zahl m Bildschirm ausdrucken.Als Erstes installierte ich httplib2 was erforderlich ist für YouTube Abonnenten Zähler. Das Laufen des Programmes erforderte nun auch libsdl2-ttf, um Text am Bildschirm zu drucken. Und bedenken Sie, daß Ihre Anwendung pygame.init aufrufen muß, wenn Sie mit Text und Schriftzeichen arbeiten wollen. Einen Schriftsatz zu laden dauert ziemlich lange mit einem Raspberry Pi Zero, also setze ich das an den Anfang des Programmes. Wenn Sie den Schriftsatz verwenden, können Sie den Text in ein Bild rendern.
Da das Display berührungsempfindlich ist, habe ich eine Möglichkeit hinzugefügt, die Position des Zählers zu verändern, indem man sie einfach über den Bildschirm zieht. Wie bei der Uhr hängt die Farbe davon ab, wo man den Schirm berührt. Um sie auszumachen, verwendet der Zähler nicht die gleiche Farbe wie die Uhr, solange man nicht die Mitte berührt, um alles weiß zu machen.
Meinen Code kann man finden unter ClemensAt Elektor bei GitHub.
Zusätzliche Bemerkungen
Ein Wort zum Rotieren des Bildschirmes. Ich wollte, daß der Schirm so rotiert, daß die USB und die HDMI Verbinder des Raspberry Pi Zero aufwärts zeigen. Das entspricht 180° oder umgedreht. Der Pimoroni Treiber liefert so eine Möglichkeit, aber das hat bei mir nicht funktioniert. Was jedoch funktioniert hat, war einfach das Hinzufügen der Zeile display-lcd-rotate=2 zu/boot/config.txt und dann das System erneut booten.
Beachten Sie, daß aus irgendeinem Grund das Zentrum des Bildschirm-Speichers nicht genau das Zentrum des Bildschirmes ist, es kann mehrere Pixel daneben liegen in der vertikalen Ebene. Man kann das korrigieren, indem man einen Offset hinzufügt, wobei das Vorzeichen des Offsets von der Rotation des Bildschirmes abhängt. Sie können sich das in meinem Code ansehen.
Alternativer I2C Port
Ich gab der Alternative zum Bildschirm, dem I²C Port, nur einen kurzen Versuch. Laut der Pimoroni Webseite müßte esI²C Port 3 sein, aber es war Port 11. Man kann das Herausfinden mit der Anweisung i2cdetect -i oder indem man die Ordner, /dev untersucht, die mit i2c beginnen.Ich habe ein Mabee MPU6050 Beschleunigungsmodul angeschlossen, um zu sehen, ob es gefunden wird. Das i2cdetect Werkzeug zeigte ein Gerät an der Adresse 68 hexadezimal, was tatsächlich die korrekte Adresse ist, also scheint das zu funktionieren. Ich konnte auch den Sensor auslesen, nachdem mpu6050-raspberrypi installiert war.
Es paßt genau in eine Pringles Dose!
Ich habe zufällig mitbekommen, daß der Durchmesser des Raspberry Pi 2r Bildschirmes beinahe der gleiche ist wie eine Pringles Dose, er paßt genau hinein. Deswegen habe ich beschlossen, meinen YouTube Abonnenten Zähler in eine leere Pringles Dose zu packen.Ich habe das Ober- und Unterteil einer Dose abgeschnitten und die Display-mit-Raspberry-Pi-Baugruppe mit Abstandshaltern am Unterteil befestigt, so dass das Display bündig mit der Innenseite des Rings am Oberteil abschließt. Jetzt ist das Display geschützt, wenn der Deckel aufgesetzt ist, während der Touch weiterhin funktioniert.
Zusammenfassung
Zusammenfassend denke ich, dass der HyperPixel 2r eine wirklich schöne Ergänzung für einen Raspberry Pi Zero 2W ist. Es funktioniert auch auf einem Zero. Die Bildqualität ist sehr gut, und die Berührung funktioniert gut in Ihren eigenen Anwendungen. Es wäre eine ziemlich coole Ergänzung für ein Heimautomatisierungssystem.Offiziell gibt es nur Unterstützung für Buster, aber ich habe es mit Bullseye ausprobiert. Mein Programm funktionierte genauso, nur dass das Menü des Desktops am oberen Bildschirmrand überlagert wurde.
*A: 480 × 480 × (1 - 0.25 π) = 49,444 (i.e. almost 21.5%)
Übersetzung: Walter Polleros
Mehr anzeigen
Weniger anzeigen
Diskussion (0 Kommentare)