Forum: PC-Programmierung GUI für Raspberry.


von Martin (Gast)


Lesenswert?

Hallo,

Ich wollte aus Interesse eine GUI Anwendung mit z.b. Charts, Buttons und 
Combo- Text- Boxen für den Raspberry Pi realisieren.

Welche Entwicklungsumgebung und welches OS könnt ihr empfehlen?

OS wären win core iot oder eher ein embedded Linux?
Als Entwicklungsumgebung dachte ich an Visual Studio ... Bietet dieses 
Tool Möglichkeiten?
Oder ist Qt die bessere Wahl?

Gibt es andere optimalere IDEs und Betriebsysteme für mein Vorhaben?

Welche entwicklungssprache könnt ihr empfehlen?
C++ oder C#?

von Noch einer (Gast)


Lesenswert?

Soweit ich weiss, kannst du immer noch nicht mit Win Iot auf dem Raspi 
entwickeln. Du brauchst einen PC und das Visual Studio 
Community-Edition.

Eigentlich ist das Win Iot für Geräte wie Geldautomaten konzipiert. 
Nicht als Windows Universal-PC.

Linux -- Mit einer graphischen IDE direkt auf dem Raspi entwickeln 
bringt keinen Spass. Zu träge.

Python mit nacktem Texteditor geht dagegen auf dem Raspi recht flüssig.

Du kannst Programme, die du auf einem beliebigen Linux-Rechner 
entwickelst auf dem Raspi kompilieren. Ist aber etwas hakelig, du musst 
dich selbst um die internen Details beim übertragen und kompilieren 
kümmern.

Unter Linux gibt es keine IDE, die wirklich so einfach und bequem ist, 
wie das Visual Studio. Ich bin der Ansicht, der Qt Creator ist das 
brauchbarste.

von Lothar (Gast)


Lesenswert?

Noch einer schrieb:
> Unter Linux gibt es keine IDE, die wirklich so einfach und bequem ist,
> wie das Visual Studio

Doch die gibt es: Visual BASIC Nachfolger für Pi kostet aber etwas Geld

https://www.xojo.com/raspberrypi/

Und RiscOS BASIC kostet auch etwas Geld

http://www.jaffasoft.co.uk/wwv2/
https://www.riscosopen.org/content/sales/nutpi

von Noch einer (Gast)


Lesenswert?

Embedded Linux? Besser nicht. Falls du es mit Linux machen willst, nimm 
das Raspbian. Ist ein komplettes Linux für Arbeitsplatzrechner.

Nicht optimal, aber wenn du Probleme hast - du findest du in jedem Forum 
dutzende von Helfern, die sich mit dem Raspbian auskennen.

von Jobst Q. (joquis)


Lesenswert?

Du solltest dir auf jeden Fall mal das Betriebssystem RISCOS ansehen. 
Meiner Meinung nach das einzige GUI, das auch auf dem Raspi recht 
flüssig ist.

http://www.raspberry-pi-geek.de/Magazin/2014/02/Workshop-RISC-OS-auf-dem-RasPi-Teil-1

Ein Basic zum Programmieren wird mitgeliefert. Die Programmsammlung 
Nutpi, (siehe Link von Lothar) die auch eine C++ Compiler enthält, finde 
ich aber auch noch günstig.

von Martin (Gast)


Lesenswert?

Vor ca. 10 Jahren gab es PDAs. Kennt vielleicht der eine oder andere 
noch.
Da lief Win mobil 5.0 drauf und mit Visual Studio 200x konnte man da mit 
C#  wirklich super GUI Sachen mit machen.

Ich dachte nun auch eher an win core iot das auf dem Raspberry pi 3 
läuft und die GUI Applikation würde ich mit VS entwickeln wollen.

Wat hier schon jemand Erfahrung?

von Rudi (Gast)


Lesenswert?

Wenn du dich mit Linux und mit den Grundlagen der Programmierung 
auseinander setzen und schnell zu einem Ergebnis kommen möchtest, dann 
nimm Raspian.
Wenn du das schon hinter dir hast, dann ist meiner Meinung nach der 
Ansatz von MS mit Windows iot der bessere. Bei Win iot steht das 
Programm im Vordergrund, das Betriebssystem tritt kaum in Erscheinung. 
Der Pi tritt also nur als ausführende Umgebung für dein Programm auf 
(kein Desktop und damit verbundene Spielereien). Man hat das Gefühl als 
würde man einen Atmega programmiert nur mit den Möglichkeiten des .net 
Framework und dem Komfort von Visual Studio.

von aurelian_15 (Gast)


Lesenswert?

Mit Lazarus [1] lassen sich bequem Anwendungen für Linux/Windows/macOS 
entwickeln und sollte deine Anforderungen erfüllen. Läuft auch nativ 
(und flüssig) auf einem Raspberry Pi.

[1] https://www.lazarus-ide.org/

von Paul H. (powl)


Lesenswert?

Noch einer schrieb:
> Du kannst Programme, die du auf einem beliebigen Linux-Rechner
> entwickelst auf dem Raspi kompilieren. Ist aber etwas hakelig, du musst
> dich selbst um die internen Details beim übertragen und kompilieren
> kümmern.

Er will ja vor allem Software FÜR den Raspi entwickeln. Nicht Software 
AUF dem Raspi. Mit Hochsprachen wie Java, C# oder Python kann man doch 
problemlos auf einem anderen Rechner entwickeln.


Jobst Q. schrieb:
> Du solltest dir auf jeden Fall mal das Betriebssystem RISCOS ansehen.
> Meiner Meinung nach das einzige GUI, das auch auf dem Raspi recht
> flüssig ist.

Hä? Schon das Standard-Raspbian läuft auf dem Pi doch total flüssig. 
Außerdem juckt ihn nicht, ob die OS-GUI flüssig läuft sondern seine 
eigene GUI-Anwendung muss flüssig laufen.


Martin schrieb:
> Ich dachte nun auch eher an win core iot das auf dem Raspberry pi 3
> läuft und die GUI Applikation würde ich mit VS entwickeln wollen.

In der Zeit in der du diesen Beitrag verfasst hast hättest du das sogar 
schon selbst ausprobieren können. Wenn du mit C# und Win IOT Core fit 
genug bist um die ganze Funktionalität des Pis damit hinreichend 
auszuschöpfen, dann warum nicht?

Gute alternative: Python + Kivy. Damit hast du wohl auch eine minimale 
Entwicklungszeit.

von Alois (Gast)


Lesenswert?

Qt läuft wunderbar auf dem Raspberry. Auch mit OpenGL, Crosscompiling 
und Remote-Debugging vom Desktop-Rechner aus :)
https://wiki.qt.io/RaspberryPi2EGLFS

Die Anleitung sollte noch mit den aktuellen Versionen ähnlich sein.

von Lothar (Gast)


Lesenswert?

Paul H. schrieb:
>> Du solltest dir auf jeden Fall mal das Betriebssystem RISCOS ansehen.
>> Meiner Meinung nach das einzige GUI, das auch auf dem Raspi recht
>> flüssig ist.
>
> Hä? Schon das Standard-Raspbian läuft auf dem Pi doch total flüssig.

Wenn er für Embedded ein halbwegs stromsparendes Pi 0 oder Pi 1A+ nehmen 
möchte ganz bestimmt nicht. Dazu kommt noch dass RISCOS einen 
Stromausfall mitmacht.

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Lothar schrieb:
> Wenn er für Embedded ein halbwegs stromsparendes Pi 0 oder Pi 1A+

Siehe:
Martin schrieb:
> Raspberry pi 3

Lothar schrieb:
> Dazu kommt noch dass RISCOS einen
> Stromausfall mitmacht.
Linux auch. Wobei es weniger das OS ist, sonder mehr das FS, welches 
sowas mitmachen muss.

von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

Kannst auch mal das testen :
https://www.b4x.com/b4j.html

ist auch kostenlos und VB-like.

oder auch das :

https://www.b4x.com/b4r.html

: Bearbeitet durch User
von Martin (Gast)


Lesenswert?

Sind doch schon viele Möglichkeiten zusammengekommen.

Mir geht es im Wesentlichen um folgendes:

Das OS sollte stabil, schlank sein und relativ schnell gebootet haben. 
(<20s) fände ich ok. Es soll jederzeit hard ausschaltbar sein, was 
vermutlich all die bisher genannten Embedded OS sind.

Das Hauptaugenmerk liegt auf der GUI Umsetzung und nicht auf dem 
Betriebsystem.

Das Betriebssystem sollte mich an gängige Hardware Peripherie ranlassen. 
Mir Treiber bereitstellen. Ähnlich wie bei VS C# nutzen der Seriellen 
Schnittstelle z.B..

Es sollte eine Akzeptanz und weite Verbreitung am Markt haben. So kann 
bei Problemen in Foren danach gesucht werden.

Es sollte eine gute freie Entwicklungsumgebung geben. (privates 
projekt).
Hier dachte ich an VS C#, womit ich auch bei win core iot auf dem 
Raspberry landen würde.
Oder an Qt C++. Bei dieser Wahl könnte ich vermutlich win core iot oder 
Raspberrian als Embedded OS einsetzen.

Das vermutlich angenehmere Konzept stellt mit meinem aktuellen Überblick 
die Kombination VS C# mit win core iot auf Rasperry oder Beaglebone 
Black dar.

Ich will mich, wie vermutlich viele andere, auf meine Applikation 
konzentrieren können. Hätte gerne eine komfortable Entwicklungsumgebung 
mit guter Debugmöglichkeit.

Und will, was nicht ganz unwichtig ist, nicht auf exotische Lösungen 
gehen.

von Rudi (Gast)


Lesenswert?

Du sagst es ja schon selbst. Dann nimm c# und win iot, vorallem wenn mit 
C# Erfahrung vorhandenen ist. Die App wird auch nativ compiliert, läuft 
auch auf jeder anderen win10 Plattform und nach der aktuellen Tendenz 
vielleicht bald OS unabhängig. Bin aus den gleichen Gründen wie du nach 
Linux mit Win am PI gestrandet. Leider ist die Community hierfür sehr 
klein. Für mich unverständlich, da MS hier mit winIot mehr die oft 
zitierten Vorteile von Linux verfolgt als es das Raspian macht. 
(Raspian: überladene quasi vollständige Desktop Distribution, mit dem 
Vorteil des schnellen Erfolges, wenn man die ersten Schritte wagt. 
WinIOT: quasi nackte Laufzeit ohne viel Schnickschnack)

von Noch einer (Gast)


Lesenswert?

> Die Anleitung sollte noch mit den aktuellen Versionen ähnlich sein

Genau das ist das zentrale Problem beim Linux. Du kannst alles machen, 
musst aber zuerst wissen, wie es geht. Damit du überhaupt herausfinden 
kannst, ob die Anleitung brauchbar ist.

> Das vermutlich angenehmere Konzept ... die Kombination VS C# mit win core iot

Mit Windows gibt es ja nur diese eine Kombination. Und genau eine 
Anleitung von Microsoft. Funktioniert so gut - da wird niemand versuchen 
eine andere IDE zu entwickeln.

> Du solltest dir auf jeden Fall mal das Betriebssystem RISCOS ansehen.

Besser nicht. Deprimierend. Vor 25 Jahren ist irgend etwas total schief 
gelaufen. Win3.1 setzte sich durch und daneben sind noch X11 und MacOS 
übrig geblieben. Der Zug ist schon lange in die falsche Richtung 
abgefahren.

von Christian K. (Gast)


Lesenswert?

Schau erstmal ob die geplante Peripherie wie Display und GPIOs noch 
angesprochen werden können. Habe gerade bei den GPIOs Überraschungen 
erlebt.
Am Ende bin ich bei Jessy mit dem ollen TkInter hängengeblieben, das 
tats zumindest.

von Olaf (Gast)


Lesenswert?

> Du solltest dir auf jeden Fall mal das Betriebssystem RISCOS ansehen.

Das Problem von Riscos ist leider das es ein bisschen den Charme der 
80er hat und einiges eben doch sehr anders ist.

> Meiner Meinung nach das einzige GUI, das auch auf dem Raspi recht
> flüssig ist.

Das stimmt allerdings. Danach fuehlt sich selbst ein beliebiger 
Hochleistungsrechner mit irgendeinem anderen Betriebsystem langsam an. 
Letztlich ein schoener Marker fuer die Inkompetenz die in heutiger 
Software verborgen ist. Sollte man mal gesehen haben.

Olaf

von Joachim S. (oyo)


Lesenswert?

Rudi schrieb:
> (Raspian: überladene quasi vollständige Desktop Distribution, mit dem
> Vorteil des schnellen Erfolges, wenn man die ersten Schritte wagt.
> WinIOT: quasi nackte Laufzeit ohne viel Schnickschnack)

Von Raspbian gibt es doch bewusst zwei Versionen:
a) Die normale Version, die in der Tat eine quasi vollständige Desktop 
Distro sein möchte, und gepackt ca. 1600 MB gross ist
b) die auf das Minimum reduzierte "Lite"-Version, bei der nicht einmal X 
standardmässig enthalten ist, und gepackt nur 346MB gross ist

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

Joachim S. schrieb:
> die auf das Minimum reduzierte "Lite"-Version, bei der nicht einmal X
> standardmässig enthalten ist, und gepackt nur 346MB gross ist

Ändert aber nichts daran dass das nicht echtzeitfähig ist und es z.B. 
bei Soft-PWM über GPIO zu Glitches kommt. Was bei RiscOS pico - das ist 
dort das "Lite" - nicht passiert.

von Martin (Gast)


Lesenswert?

Die Embedded Welt ist ja alles andere als einfach oder übersichtlich.

Man muss wissen, was man will.
Einen Airbag würde ich nicht an ein OS hängen auf dem C# läuft.
Auf diesen Systemen sollten Anwendungen laufen, bei denen es auf extern 
getriggerte Reaktionszeiten < 20ms nicht drauf ankommt.

Dafür liefern sie aber eine super Unterstützung bei grafischen 
Applikationen.

Ein PC ist auch nicht echtzeitfähig.

Wer quasi Echtzeitfähiges Verhalten braucht .... Reaktionen unter 1ms, 
der sollte wohl nicht auf win core iot und C# setzen.
Dann eher ein sehr einfach gestricktes Betriebs System, wenn überhaupt 
und C oder C++ nutzen.

Aber ich will eine grafische Eingabe und da sind mir Reaktionen auf 
externe Ereignisse mit 20ms Verzug nicht so wichtig.

von Jochen (Gast)


Lesenswert?

Nimm Qt, egal auf welchem Betriebssystem.

Windows-GUI (egal ob MFC, WinForms, WPF, WTL, ...) ist immer die 
schlechteste Wahl :-}

von Lothar (Gast)


Lesenswert?

Martin schrieb:
> Ein PC ist auch nicht echtzeitfähig

Das stimmt. Daher lässt man z.B. im Maschinenbau auf dem PC die GUI 
laufen und die eigentliche Regelung auf RTOS SPS oder uC

> Dafür liefern sie aber eine super Unterstützung bei grafischen
> Applikationen

Es gibt aber auch RTOS die sowas bieten und das ist nicht nur RiscOS 
pico für Pi oder Beagle sondern z.B. auch emwin für uC und Touchscreen:

https://www.segger.com/products/user-interface/emwin/technology/samples/

von Martin (Gast)


Lesenswert?

Jochen schrieb:
> Nimm Qt, egal auf welchem Betriebssystem

C# ist eine sehr schöne Sprache, die einem auch sehr viel Mühsal 
abnimmt.

Will mich aber Qt mit C++ nicht von vornherein verweigern.

Warum also Qt mit C++?
Welche Argumente sprechen ausser der Plattformunabhängigkeit dafür?

Bei VS mit C# hätte ich eine super moderne Entwicklungsumgebung. Wenn 
ich eine grafische Komponente positioniere und z.b. einen Doppelklick 
darauf ausführe, bekomme ich automatisch den Event Handler Code und muss 
dann nur noch hinzufügen, was darin ausgeführt werden soll.
Z.B. Buttonfarbe ändern.

Leistet Qt das auch?
C++ ist Plattformunabhängiger aber im Vergleich zu C# wesentlich 
umständlicher und schwieriger.

Was sind deine Argumente für Qt?

von Lothar (Gast)


Lesenswert?

Martin schrieb:
> C# ist eine sehr schöne Sprache, die einem auch sehr viel Mühsal
> abnimmt

Was soll denn der Vorteil von C# gegenüber VB sein? Seit .net ist die 
Ausführungsgeschwindigkeit gleich, mit VB lassen sich schneller besser 
aussehende GUI erstellen und es ist weniger fehleranfällig. Bei uns 
nutzt jedenfalls keiner C#

Martin schrieb:
> Was sind deine Argumente für Qt

Es hat sich schon was getan im Vergleich zu Visual Studio:

https://www.qt.io/qt-in-automation/

von Oliver S. (phetty)


Lesenswert?

Soll das nur lokal laufen?
Ansonsten wäre ein Webfrontend mit HTML5 ratsam, sonst ist man ja 
ständig dran, die "App" auf dem neusten Stand zu halten auf soundsoviel 
Plattformen.

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

Der andere Richtung wäre komplett Bare Metal mit einem RTOS wie z.B. 
SEGGER embOS mit der entsprechenden GUI emWin. Also IDE/compiler käme 
dann GCC/Embedded Studio in Frage. Das ist wahrscheinlich nicht 
unbedingt das, was du suchst, aber damit hättest dann zumindest 
Bootzeiten im usec Bereich ;-).

von Stephan G. (Firma: privat) (morob)


Lesenswert?

Lothar schrieb:
> Paul H. schrieb:
>>> Du solltest dir auf jeden Fall mal das Betriebssystem RISCOS ansehen.
>>> Meiner Meinung nach das einzige GUI, das auch auf dem Raspi recht
>>> flüssig ist.
>>
>> Hä? Schon das Standard-Raspbian läuft auf dem Pi doch total flüssig.
>
> Wenn er für Embedded ein halbwegs stromsparendes Pi 0 oder Pi 1A+ nehmen
> möchte ganz bestimmt nicht. Dazu kommt noch dass RISCOS einen
> Stromausfall mitmacht.

was hat das bs mit dem speichermedium zu tun?

von dunno.. (Gast)


Lesenswert?

Martin schrieb:
> Ich dachte nun auch eher an win core iot das auf dem Raspberry pi 3
> läuft und die GUI Applikation würde ich mit VS entwickeln wollen.
>
> Wat hier schon jemand Erfahrung?

ja, und ich finds super.

ich arbeite beruflich mit VS, da eine (kleine) UI - spielerei auf dem 
raspi zu bauen ist ein klacks - wenn der remotedebugger erstmal läuft, 
geht aber mittlerweile mit VS2017 auf windows 10 auch ganz gut 
einzurichten.

Dann arbeitet es sich halt fast wie auf dem lokalen PC, und das finde 
ich schon sehr komfortabel..

von Lothar (Gast)


Lesenswert?

Stephan G. schrieb:
> was hat das bs mit dem speichermedium zu tun?

RiscOS ist ein ROM-basiertes Betriebssystem und unterhält keine 
System-Dateien. Auf industriellen Boards z.B. AM5728 oder Pi Compute 
Module kommt es auf eMMC. Auf dem normalen Pi ist es eine Read-only 
Partition auf der SD-Karte. Hier könnte es theoretisch passieren, dass 
eine Anwendung die SD-Karte erledigt und damit auch das OS mitnimmt. Ist 
mir aber noch nicht passiert.

http://www.ti.com/devnet/docs/catalog/thirdpartydevtoolfolder.tsp?actionPerformed=productFolder&productId=24320

von Martin (Gast)


Lesenswert?

@dunno..

Diese Einfachheit im Vergleich zu C++ und Debug möglichkeit von VS C# 
ist auch der Hauptgrund, wieso ich das damit machen wollte.
Das kenne ich vom PC und Windows Mobil 5.0 her und kann das 
weitestgehend beurteilen.
Das war vor ca. 9 Jahren eine wahre Freude.

Mit Qt habe ich weniger Erfahrung. Kann den direkten Vergleich somit 
nicht anstellen.


Habe jedoch soweit Qt in VS "integriert" ..... also kann mit VS Qt 
Projekte anlegen und auf den Qt designer zugreifen.
Hier habe ich allerdings festgestellt, dass der Qt designen wesentlich 
weniger "widgets" also grafische Objekte bereitstellt als der Qt 
Creator.

Wenn man das nicht ändern kann, müsste ich mit dem Qt Creator arbeiten 
um die Auswahl aller grafischen Objekte zu haben.

Hat hier jemand Erfahrung bezüglich wesentliche Unterschiede 
hinsichtlich grafischer Objektvielfalt von Qt Designer zu Qt Creator?

von Wolfgang H. (Gast)


Lesenswert?

Bei Windows iot und vs kannst du alle verwendbare Sprachen im 
Einzelschritt online Debuggen.. C++, php, vb, c#, usw...

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.