Forum: Mikrocontroller und Digitale Elektronik Raspberry PI 2 als User- Interface?


von AVRli .. (avrli)


Lesenswert?

Hallo und danke für das Interesse an meine Frage.

Ich habe bisher die verschiedensten ATMEL CPU's programmiert und habe 
damit gute Erfahrungen in den Sprachen ASM und C.

In meinem derzeitigen Projekt ist ein ATMEGA 2560 die Steurungs CPU 
welche die Hardware Steuerung übernimmt.

Die Bedienung erfolgt derzeit über einen Windows PC über den UART oder 
LAN.

Nun möchte ich gerne diesen Desktop PC durch einen Raspberry PI 2 
austauschen.

Vorstellung ist eine grafische Oberfläche mit Toutchscreen Bedienung.
Das Display gibt es bei Rei passend zum RPI. Sehr verlockend.

800x480 Pixel

Nun frage ich mich mit was für einer Umgebung entwickelt man nun dafür?
Am liebsten in C oder C++

Also was mir sehr entgegen kommen würde wäre eine Zeichenfläche die den 
Schirm ausfüllt und auf der man sich "austoben" kann.

Bitmaps stempeln darauf wäre auch gut... ;-)

Das wird man sicher nicht alles neue erfinden müssen...

Für jeden Hinweis dankbar!

von fghfghgfh (Gast)


Lesenswert?

Ich glaube dass QT5 das kann. Einfach mal danach googlen

von Lars R. (lrs)


Lesenswert?

Raspberry: vielleicht Qt Designer mit Python oder C++

Vielleicht ist das auch etwas für Dich (erster Beitrag):
Beitrag "Display mit Grafikchip gesucht"
(Eventuell Vorsicht wegen China-Software)

von --- (Gast)


Lesenswert?

Ich mache gerade was Ähnliches. Empfehlung: 7"-Display LS-7T von Pollin. 
Bei richtiger Konfiguration super Bild (Auflösung 1024x600). Lediglich 
Doppelklicks sind mit dem Touchpanel etwas schwierig (man kann das aber 
durch entsprechende Gestaltung des User-Interfaces vermeiden).
Programmierung in Python 3 mit der Pygame-Erweiterung. Pygame muss bei 
Python3 aber manuell nachinstalliert werden.



=======================================
Display ‚LS-7T’ von Pollin installieren
=======================================

1.) Display-Auflösung einstellen:
sudo nano /boot/config.txt

disable_overscan=1 aktivieren (‚#’ entfernen)

Abschnitt: Pollin LS-7T display settings einfügen:

# Pollin LS-7T display settings
framebuffer_width=1024
framebuffer_height=600
#framebuffer_depth=16

hdmi_group=2
hdmi_mode=87
hdmi_force_hotplug=1
hdmi_cvt=1024 600 60 3 0 0 0

Änderungen mit STRG+O (Enter) speichern
Editor verlassen mit STRG+X

System neu starten: sudo reboot

2.) Touchscreen installieren

Kernal aktualisieren:
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update

System neu starten: sudo reboot

Kalibriersoftware downloaden:
wget 
http://github.com/downloads//tias/xinput_calibrator/xinput_calibrator-0.7.5.tar.gz

abhängige Pakete installieren:
sudo apt-get install libx11-dev libxext-dev libxi-dev x11proto-input-dev

Archiv entpacken und installieren:
tar -xf xinput_calibrator-0.7.5.tar.gz
cd xinput_calibrator-0.7.5
./configure
make
sudo make install

X-Server starten: startx
LX-Terminal starten
Kalibrierprogramm starten: xinput_calibrator

Kalibrierung ausführen

2. Terminal starten (1. Terminal nicht schließen!)
Datei /etc/X11/xorg.conf.d/99-calibration.conf anlegen:
cd /etc
cd X11
sudo mkdir xorg.conf.d
cd xorg.conf.d

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

ins 1. Terminal wechseln und den Abschnitt von ‚Section’ bis 
‚EndSection’ markieren
Tasten STRG+Shift+C zum Kopieren des markierten Textes drücken
ins 2. Terminal wechseln
Tasten STRG+Shift+V zum Einfügen des Textes in den Editor drücken

Konfigurationsdatei speichern: STRG+X drücken, mit ‚j’ Speicherung 
zustimmen und mit Return Dateinamen bestätigen.

Nach einem Reboot (sudo reboot) muß die Kalibrierung jetzt immer noch 
stimmen.






=====================================================================
pygame (Grafik-Library) für Python 3 installieren (dauert ca. 30min!)
=====================================================================

sudo apt-get update
sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev 
libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsmpeg-dev libportmidi-dev 
libavformat-dev libswscale-dev mercurial python3-dev

hg clone https://bitbucket.org/pygame/pygame
cd pygame
python3 setup.py build
sudo python3 setup.py install

von Patrick B. (p51d)


Lesenswert?

AVRli .. schrieb:
> Nun frage ich mich mit was für einer Umgebung entwickelt man nun dafür?
> Am liebsten in C oder C++

Qt
C# (läuft wohl nicht so ohne auf Linux)
C++ (verschiedene Versionen)
Java

von AVRli .. (avrli)


Lesenswert?

Danke für Eure Antworten!

Ich muß mir die Sache mit dem RPI2 mal live auf dem Bastelltisch 
ansehen. Habe mir gestern einen bestellt und werde versuchen das ganze 
erstmal zu aktivieren.

--- schrieb:
> Programmierung in Python 3 mit der Pygame-Erweiterung.

Phyton habe ich mir einige Beispiele auf YT angesehen aber ob die nun 
auf einen RPI liefen kann ich gar nicht sagen. Es ist eine 
Scriptsprache, hoffe das die auch eine ausführbare Datei erzeugt denn 
ich möchte das Programm ansich dann später weitergeben können.

Hoffentlich kann man mit Python dann auch Daten vom UART oder LAN 
einlesen. Die Sprache kann man sicher erlernen, das Grundgerüst bei der 
Programmierung bleibt ja immer gleich.

Java würde ich nicht wollen, C würde ich durch die AVR Programmierung 
auch noch favorisieren aber der GGC unterstützt wohl keine direkte 
Grafikausgabe wenn ich es richtig verstanden habe.

Ich habe vor einiger Zeit auch mal diese Grafikdisplay's 128x64 Pixel 
programmiert mit Funktionen für die Grundkörper aber das Rad neu 
erfinden ist bei einer solch leistungsstarken CPU Karte wie der RPI2 
völlig falsch. ;-)

Fällt jemanden noch ein einfaches Beispiel ein wo Daten über den UART 
eingelesen werden und diese ganz einfach auf einer Oberfläche angezeigt 
werden? Mich würde interessieren ob ich die Daten pollen muß oder es 
Ereignisgesteuerte Funktionen dafür gibt.

Grüße

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

Ich hab ein nettes GUI mit Touch ebenfalls in Python 3 mit PyQT5 gebaut. 
Läuft bei mir auf einem Banana Pro mit LCD (fast das gleiche wie RasPi).

Das QT5 hab ich selbst kompiliert, das war ein bisschen fummelig. Wann 
man das einmalig hat, ist die Programmierung mit Python aber ein Traum. 
Hab auch noch UART/SPI Kommunikation in eigenem Thread drin. Mit den 
entsprechenden Qt Klassen (QThread) ein Kinderspiel.

Ein Binärprogramm zum Weitergeben auf so einer Platform macht eher wenig 
Sinn, es kommt viel mehr auf die Bibliotheken an.

Sebastian

von Hendrik W. (derhendrik)


Lesenswert?

Ich nutze ebenfalls Qt und Python (PyQt), bisher klappt das ganz gut.
Bin leider noch Anfänger, aber selbst für mich hat der Einstieg in Qt 
und Python (vor allem durch den einfachen Syntax) gut geklappt.

Was ich mir auch angeschaut habe war "kivy", lief auch auf dem Raspi. 
Vielleicht ist das ja auch für dich interessant?

Viele Grüße

Hendrik

von AVRli .. (avrli)


Lesenswert?

Sebastian B. schrieb:
> Ich hab ein nettes GUI mit Touch ebenfalls in Python 3 mit PyQT5 gebaut.

Danke Dir, habe nach PyQT5 mal gesucht, das sieht schon danach aus was 
ich vor habe! So mit Brush und Pen sowie Bildchen, toll!
Nun grübel ich noch was "Python 3 mit PyQT5" bedeutet. :-(

Ist das eine die Sprache und das andere die IDE ?

Ich muß gestehen das ich mit Linux praktisch keine Erfahrungen habe, das 
wird mich wohl noch Nerven kosten.



Hendrik W. schrieb:
> Was ich mir auch angeschaut habe war "kivy", lief auch auf dem Raspi.
> Vielleicht ist das ja auch für dich interessant?

Danke für den Tip, ich werde wohl erstmal Python probieren, es erscheint 
mir als geeignet für das was ich vorhabe.

Grüße AVRli...

von Sebastian B. (sfreak) Benutzerseite


Lesenswert?

AVRli .. schrieb:
> Sebastian B. schrieb:
>> Ich hab ein nettes GUI mit Touch ebenfalls in Python 3 mit PyQT5 gebaut.
>
> Danke Dir, habe nach PyQT5 mal gesucht, das sieht schon danach aus was
> ich vor habe! So mit Brush und Pen sowie Bildchen, toll!
> Nun grübel ich noch was "Python 3 mit PyQT5" bedeutet. :-(
>
> Ist das eine die Sprache und das andere die IDE ?


Python ist die Programmiersprache (Skriptsprache), Qt ist eine 
Bibliothek für GUIs (enthält noch viel mehr, z.B. Unterstützung für 
Netzwerk, Multi-Threading, ...).
Qt ist eigentlich eine C++ Bibliothek, daher braucht es noch PyQt, das 
ist ein Wrapper, der es erlaubt, die Qt Klassen von Python aus zu 
benutzen.

Schöne einfache Beispiele finden sich z.B. hier:
http://zetcode.com/gui/pyqt5/

Sebastian

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Mal eine Frage "am Rande":

Gibt es für die Zielplattform "Raspberry Pi" eine Entwicklungsumgebung 
für Python, C++ oder Basic, "fertig", also mit allen erforderlichen 
Komponenten ("IDE" im eigentlichen Sinne) für Windows oder Mac OSX, "aus 
einem Guß" (zumindest äußerlich)?

Die man nicht aus 20 verschiedenen Quellen zusammenstopplen und 
-konfigurueren muss?

Dass ich bei besonderen Wünschen evtl. noch ein Plugin oder eine Lib 
benötige, na gut, aber die Grundfunktionen, eingebettet in eine 
zeitgemäße grafische Oberfläche sollte es doch geben, oder?

Mit geht dieses "Gefrickel", bevor man eigentlich anfangen kann, gehörig 
auf den Geist. Dazu hier noch ein Skript starten und da noch zwei Zeilen 
in irgend einer Konfig-Datei modifizieren ... Bähhh!

Mich würden vor Allem Werkzeuge für Mac interssieren, zur Not auch 
Windows. Nicht dass ich nicht selber recherchieren könnte, aber gerade 
dieser Aspekt wird bei den mir bekannten Auflistungen nicht oder nur 
ganz am Rande erwähnt - da sind persönliche Erfahrungen gefragt.

Danke für Tips!

: Bearbeitet durch User
von Kopierer (Gast)


Lesenswert?

AVRli .. schrieb:
> Phyton habe ich mir einige Beispiele auf YT angesehen aber ob die nun
> auf einen RPI liefen kann ich gar nicht sagen. Es ist eine
> Scriptsprache, hoffe das die auch eine ausführbare Datei erzeugt denn
> ich möchte das Programm ansich dann später weitergeben können.

Warum sollten Scripte nicht kopierbar sein?

von AVRli .. (avrli)


Lesenswert?

Danke Euch für die Tips, ich werde mir ein Raspberry PI 2 bestellen und 
mal die ersten Versuche machen. Sollte ich nicht weiterkommen hoffe ich 
das ich hier Unterstützung finde. ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.