RaspberryTouch

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Version vom 19. Februar 2013, 01:52 Uhr von Anlumo (Diskussion | Beiträge) (→‎Interface)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Raspberry Touch

Das Projektziel ist, ein kleines Touch Display an den Raspberry Pi anzuhängen. Das Primär-Unterziel dabei ist, low cost zu bleiben.

Das Projekt wird von anlumo betrieben, und dies ist die Projektdokumentationsseite dazu.

Hardware

Ich habe keine günstige Hardware gefunden, die man einfach über HDMI/analog und USB (als input device) anhängen kann. Daher bin ich mehr low level gegangen:

INT035TFT-TS (Datasheet) (RS Components-Link)

Interface

Der Raspberry Pi besitzt eine Reihe an GPIOs, die auch für I2C und SPI verwendet werden können. Das genannte Display benötigt SPI für den Touchscreen, und ein spezielles Parallelprotokoll für den Display Controller. Ich habe eine Anschlusskonfiguration entwickelt, die alle GPIO-Pins außer dem I2C-Interface und dem zweiten Header des Raspberry Pi Revision 2-Boards verwendet.

Das Display benötigt drei Spannungen: 5V, 3.3V und 1.2V. Der Raspberry Pi bietet 5V direkt vom USB-Anschluss und 3.3V vom onboard-Spannungskonverter, hier aber nur max. 50mA (was vermutlich nicht ausreicht). Daher verwende ich zwei Spannungsregler an 5V, die ich aus dem Sample-Sortiment im Metalab erhalten habe. Die Logikpins arbeiten mit 3.3V, was dem Raspberry Pi sehr entgegen kommt. Hier ist kein Logic Level Converter notwendig.

Raspberrytouchschematic.png

Board

Das Ziel ist es, ein Hardwareboard (mit den notwendigen Bauteilen, die nicht allzu viele sein werden) zu produzieren, in das man einfach das Displaymodul einstecken kann, und einen 2x13 pin Header hat, wo man das Kabel vom GPIO-Port vom Raspberry Pi verbinden kann. Der Rest soll in Software gemacht werden.

Software

Mein Interface soll mit Qt5 laufen, da dessen Qt Quick genau auf so eine Art Display ausgelegt ist.

Qt5 unterstützt einige Displaymethoden:

  • Xlib
  • Wayland
  • XCB
  • Linux Framebuffer
  • DirectFB
  • eigenes Qt-Plugin

(noch mehr?)

Von dieser Liste ist DirectFB am besten geeignet für dieses Projekt. Daher soll dafür ein Plugin entwickelt werden, das dann von Qt aus angesprochen werden soll. Damit ist auch die Kompatibilität zu anderen Libraries gegeben (z.B. SDL).

Nachdem die Grafikkarte umgangen wird, ist 3D-Beschleunigung nicht möglich! Wie hoch die maximale Framerate sein wird, wird sich erst im Praxistest zeigen.

Zu bemerken ist noch, dass die 2. Revision vom Raspberry Pi einen GPIO-Port anders belegt, das muss in der Software ausgeglichen werden (Compilerswitch oder so).