Forum: PC-Programmierung Messwerte auf PC-Monitor anzeigen (Raspberry, Arduino oder andere Lösung)


von Dietmar S. (Gast)


Lesenswert?

Früher habe ich unter DOS ein Programm geschrieben, mit dem ich eine 
AD-Karte ausgelesen habe und die Messkurve auf dem Bildschirm 
dargestellt. Das war kinderleicht. In QBasic hatte ich mich innerhalb 
eines Tages in die paar notwendigen Befehle eingearbeitet und ein paar 
Tage später war das Programm fertig.

Etwas ähnliches hatte ich jetzt mit dem Raspberry Pi Zero vor. Eine GUI 
brauche ich nicht und es reichen mir ein paar Grundfarben bei geringer 
Bildschirmauflösung. Aber wenn ich das richtig sehe, geht das unter 
unixoiden Betriebssystemen nicht so einfach?

Ich arbeite ich mich gerade in C ein und dachte dass ich damit auch mein 
Projekt verwirklichen könnte, doch wie ich jetzt erkenne, lerne ich auch 
das nicht in ein paar Wochen. In einem Jahr ist eher realistisch.

Durch folgenden Thread habe ich mich bereits gearbeitet, aber so richtig 
kam ich damit noch nicht weiter:
Beitrag "Grafik unter Linux"

Meine Anforderungen:
Anschluss eines PC-Monitors (VGA würde reichen)
Je 2 AD/DA Ports
Einplatinen-PC (ggf. mit Shields)
Keine GUI
Echtzeit nicht zwingend notwendig (Darstellung nach Abschluss der 
Messung wäre o.k.)

Als Alternative fallen mir noch zwei Möglichkeiten ein:

Arduino mit VGA-Shield (256 Farben und 160x120 bzw. 400x300 Pixel)
https://www.micro-nova.com/novavga/ und
https://www.tindie.com/products/masihvahida/vgaduino-ii-256-color-vga-shield-for-arduino/

Ob ich das in angemessener Zeit zum Laufen bekomme?

DOS-PC und meine bescheidenen QBasic-Kenntnisse

Gibts es da überhaupt was zeitgemäßes als Einplatinen-PC mit 
AD/DA-Ports? Ich kenne nur diese sündhaft teuren PC/104, wozu man dann 
auch noch eine ebenso teure AD/DA-Karte braucht.

Vielleicht habt ihr ja noch eine bessere Idee.

von Experte (Gast)


Lesenswert?

- https://www.lua.org/
 - https://github.com/Tangent128/luasdl2
 - https://www.libsdl.org/

Hardware muss Du Dir selbst suchen. Ob Du noch was mit VGA findest?

von 50c (Gast)


Lesenswert?

Experte schrieb:
> - https://www.lua.org/
>  - https://github.com/Tangent128/luasdl2
>  - https://www.libsdl.org/
>
> Hardware muss Du Dir selbst suchen. Ob Du noch was mit VGA findest?

https://www.tcl.tk/

von Dietmar S. (Gast)


Lesenswert?

Das habe ich vielleicht missverständlich ausgedrückt. Ich will nicht 
noch eine weitere Programmiersprache lernen. C lerne ich eh gerade und 
dann würde ich auch warten, bis ich damit etwas fortgeschritten bin. 
Aber auf dem Raspberry eine Grafik in ein Fenster zaubern ist halt eine 
ganz andere Kategorie, als "Hallo Welt" auf der Konsole ausgeben.

TCL wäre auch definitiv nichts für mich. Vor 20 Jahren (als Zeit noch 
unendlich war) hab ich damit mal ein umfangreicheres IRC-Script 
geschrieben. Ich weiß bis heute nicht, warum es funktioniert hat ;)

Ich werde mich jetzt mal auf das Arduino VGA-Shield konzentrieren. Die 
Umsetzung sieht auf den ersten Blick relativ einfach aus.

VGA oder HDMI ist mir völlig egal, es gibt für ein paar Euro Konverter. 
Ich habe beide Richtungen hier, funktionieren einwandfrei. TFT Monitore 
mit VGA-Anschluss stapeln sich hier auch.

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


Lesenswert?

Vielleicht solltest du es eher mit Java versuchen. Durch die 
Objektorientierung kommt zwar etwas "globaler" Lernaufwand hinzu, die 
Syntax im "Nahbereich" ist zum größten Teil mit C identisch ... also 
keine Vergeudung von Resourcen.

Mit der Swing-Lib (ja, ich weiss, die ist veraltet, aber einfach zu 
verstehen), hast du in kurzer Zeit ein (wenn es sein muss randloses) 
Fenster und schreibst fröhlich Kurven.

Der Vorteil ist auch, dass du die grundlegenden Algorithmen vorher  auf 
einem PC unter Win/Mac/Linux erarbeiten und testen kannst, bevor du sie 
auf das Zielsystem bringst.

Wenn du mal Lust auf was Originelles hast: Schau dir mal Processing.org 
an. Mit dieser plattform-neutralen Software schreibt man in einer 
arduino-artigen C++-Syntax Programme, die am Ende nach Java oder 
Javascript (ja, läuft dann im Browser) "compiliert" werden.

Processing ist für das schnelle Erfolgserlebnis stark Grafik-orientiert 
...

: Bearbeitet durch User
von Dietmar S. (Gast)


Lesenswert?

Also im Grunde habe ich dasselbe Problem wie der TE hier:
Beitrag "Grafik unter Linux"

Nur dass ich nicht einfach was zeichnen möchte, sondern auch noch Werte 
über AD/DA einlesen bzw. ausgeben will. Sonst würde ich einfach einen 
alten DOS-Rechner nehmen. Ich will mir aber auch keinen 90er-Jahre-Tower 
mit AD-Karte hinstellen, sondern denke bei meinem Projekt an einen 
Einplatinen-PC.

Im oben genannten Thread erschien mir der Vorschlag mit "gnuplot" 
interessant. Allerdings habe ich das nicht zum Laufen bekommen. Das 
Ausgabefenster öffnet nur für Bruchteile von Sekunden. Die Ursache habe 
ich noch nicht gefunden.

von Hans W. (Firma: Wilhelm.Consulting) (hans-)


Lesenswert?

Das mit den AD/DA Kanälen ist schon ein Problem...

Es gibt sigrok.
Das unterstützt einiges an leistbarem Messequipment.

Damit was eigenes Programmieren willst du aber nicht!
BTDT

Dann gäbe es noch das gute alte GPIB zeug...

Mit den VISA Treibern bekommt man üblicherweise recht flott ältere 
Voltmeter oder DC-Quellen zum Laufen.

Alternativ würde sich noch anbieten sich mit z.B. einem Arduino  einen 
USB-AD/DA Wandler zu bauen. Falls dir das reicht, was mit dem Arduino 
möglich ist, wäre das wahrscheinlich die billigste und schnellste 
Lösung...


Das Anzeigen am PC ist jetzt wirklich eine Herausforderung.
Es gibt aber allem Anschein nach QBasic nach wie vor: 
https://www.qb64.org

Wenn du dem Arduino beibringen würdest auf deine Befehle dir AD Werte zu 
liefern und DA zu wandeln, dann würde das insgesamt wahrscheinlich für 
die die einfachste Lösung darstellen...

73

von Dietmar S. (Gast)


Lesenswert?

Hans W. schrieb:

> Alternativ würde sich noch anbieten sich mit z.B. einem Arduino  einen
> USB-AD/DA Wandler zu bauen. Falls dir das reicht, was mit dem Arduino
> möglich ist, wäre das wahrscheinlich die billigste und schnellste
> Lösung...

> Wenn du dem Arduino beibringen würdest auf deine Befehle dir AD Werte zu
> liefern und DA zu wandeln, dann würde das insgesamt wahrscheinlich für
> die die einfachste Lösung darstellen...

Also die AD-Wandler-Werte zu holen bzw. DA zu liefern bekomme ich hin, 
ist ja ziemlich einfach. Hab hier einen Arduino herumliegen und das 
irgendwann schon mal ausprobiert. Aber ich wollte schon was 
alleinstehendes mit großem Monitor, das ich nicht noch extra an einen PC 
anschließen muss. Da setze ich Hoffnung in das VGA-Shield. Nur der Preis 
schreckt mich noch ab, es einfach mal so zu kaufen um dann vielleicht 
festzustellen, dass das gar nicht geht.

Es gibt ja noch DOSBIAN. Ob ich damit ein AD/DA-Shield am Raspberry 
ansprechen kann, ich vermute nicht. Müsste ich mal den Entwickler 
fragen.

> Es gibt aber allem Anschein nach QBasic nach wie vor:
> https://www.qb64.org

Ist ja toll, das muss ich unbedingt ausprobieren! Ich wollte schon das 
alte QB von MS auf meinem Rechner installieren um einen Screenshot von 
meiner damaligen Anwendung zu machen, damit ich zeigen kann was ich 
vorhabe.

von wendelsberg (Gast)


Lesenswert?

Hans W. schrieb:
> Das Anzeigen am PC ist jetzt wirklich eine Herausforderung.

Wenn es darum geht, Kurven von ankommenden Messwerten darzustellen, ist 
"trend" inzwischen das Werkzeug meiner Wahl. Wenn die Abfrage der 
AD-Hardware z.B. von einem Perlscript erledigt wird, ist die Anpassung 
nicht schwer.

wendelsberg

von Karl (Gast)


Lesenswert?

Dietmar S. schrieb:
> Also die AD-Wandler-Werte zu holen bzw. DA zu liefern bekomme ich hin,
> ist ja ziemlich einfach. Hab hier einen Arduino herumliegen und das
> irgendwann schon mal ausprobiert. Aber ich wollte schon was
> alleinstehendes mit großem Monitor, das ich nicht noch extra an einen PC
> anschließen muss. Da setze ich Hoffnung in das VGA-Shield. Nur der Preis
> schreckt mich noch ab, es einfach mal so zu kaufen um dann vielleicht
> festzustellen, dass das gar nicht geht.

Die Frage wäre noch, wie schnell es sein soll. Wenn du eh eien Arduino 
hast, dann verbinde ihn mit USB an einen Thin Client oder Notebook. 
Schick die werte über den Serial Port. Auf den "PC"  machst du ein 
Ubuntu drauf und schreibst ein kleines Python Programm. Um das gleiche 
mit nativen C hinzubekommen wirst du noch Jahre brauchen. Mit Python 
(Matplotlib) geht das in ein paar Zeilen. Und bei Ubuntu (Derivat) hast 
du dank Paketverwaltung auch keine Probleme beim Installieren von 
zusätzlichen Paketen.

von Dietmar S. (Gast)


Lesenswert?

Experte schrieb:
>  - https://www.libsdl.org/

Sorry, den Link hatte ich ganz übersehen. Sieht auf den ersten Blick 
vielversprechend aus und wird jetzt erst mal meinen Abend füllen.

Karl schrieb:
> Die Frage wäre noch, wie schnell es sein soll. Wenn du eh eien Arduino
> hast, dann verbinde ihn mit USB an einen Thin Client oder Notebook.
> Schick die werte über den Serial Port. Auf den "PC"  machst du ein
> Ubuntu drauf und schreibst ein kleines Python Programm. Um das gleiche
> mit nativen C hinzubekommen wirst du noch Jahre brauchen. Mit Python
> (Matplotlib) geht das in ein paar Zeilen. Und bei Ubuntu (Derivat) hast
> du dank Paketverwaltung auch keine Probleme beim Installieren von
> zusätzlichen Paketen.

Gefällt mir nicht recht, weil ich dann kein alleinstehendes Equipment 
habe. Aber es wäre zumindest eine Option, wenn es anders nicht geht. Die 
Geschwindigkeit ist unkritisch.

von Mitleser (Gast)


Lesenswert?


von Karl (Gast)


Lesenswert?

Dietmar S. schrieb:
> weil ich dann kein alleinstehendes Equipment
> habe.

Naja, wenn du eh einen (VGA)Monitor haben möchtest, wird es schwierig 
mit "alleinstehend". Rasperry Pi mit entsprechendem AD/DA-Wandler wäre 
sicher auch eine Möglichkeit. Ein Arduino mit VGA wird sicher schnell an 
seiner Leistungsgrenze sein.

von oerks (Gast)


Lesenswert?

Guck dir mal das Zeug rund um Maximite, Duinomite, ... an.
Hat neben ein paar AD-Kanaelen auch unmittelbar eine Ausgabe
auf zumindest VGA-Niveau.

Und Standalone ist es sowieso.

von Dietmar S. (Gast)


Lesenswert?

Ich habe es nach 40 Minuten immerhin geschafft mit SDL ein Fenster zu 
öffnen. Eine einfache Linie zeichnen ist mir noch nicht geĺungen, 
scheitert schon beim kompilieren. Die meisten "Erste-Schritte"-Tutorials 
sind für Windows-Nutzer. Aber gut, es ist ein Anfang :)

von Dieter (Gast)


Lesenswert?

Warum nimmst Du nicht einfach gnuplot fuer die Grafiken zur Daestellung. 
Das machen auch einige professionelle Programme.

von Dietmar S. (Gast)


Lesenswert?

Dieter schrieb:
> Warum nimmst Du nicht einfach gnuplot fuer die Grafiken zur Daestellung.
> Das machen auch einige professionelle Programme.

Weil Du meine Beiträge nicht aufmerksam gelesen hast:
Beitrag "Re: Messwerte auf PC-Monitor anzeigen (Raspberry, Arduino oder andere Lösung)"

von Dietmar S. (Gast)


Lesenswert?

oerks schrieb:
> Guck dir mal das Zeug rund um Maximite, Duinomite, ... an.
> Hat neben ein paar AD-Kanaelen auch unmittelbar eine Ausgabe
> auf zumindest VGA-Niveau.
>
> Und Standalone ist es sowieso.

Jetzt habe ich mir das auch angesehen. Beides tolle Projekte und die 
Hardware ist ja echt erschwinglich. Danke für den Tipp!

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


Lesenswert?

Wenn ein 3,5 oder 4 Zoll Display reichen sollte, könnte
man es evtl. auch mit einem ausrangierten noch funktionierenden
Smartphone oder PDA probieren.
Eine Programmiersprache + Betriebssystem zur Aufbereitung
und Darstellung der Messwerte braucht man sowieso. Auch
Übertragungswege, wie WLAN, BT usw. kämen da in Frage.

Oder halt, wie oben erwähnt, einen RaspBerry PI, wo
schon fast alles on Board ist. Ein Display dürfte da
das kleinste Problem sein.

von Thomas W. (Gast)


Lesenswert?

Moin, -

Dietmar S. schrieb:
> Dieter schrieb:
>> Warum nimmst Du nicht einfach gnuplot fuer die Grafiken zur Daestellung.
>> Das machen auch einige professionelle Programme.
>
> Weil Du meine Beiträge nicht aufmerksam gelesen hast:
> Beitrag "Re: Messwerte auf PC-Monitor anzeigen (Raspberry, Arduino oder andere Lösung)"

und warum guckst Du nicht in das Manual von gnuplot, Zauberwort "Pause". 
Du musst nicht alles selbst erfinden (wird sind jetzt 2021):

http://www.gnuplot.info/docs_4.2/node99.html

Gruesse

Th.

von Dietmar S. (Gast)


Lesenswert?

Thomas W. schrieb:
> und warum guckst Du nicht in das Manual von gnuplot, Zauberwort "Pause".
> Du musst nicht alles selbst erfinden (wird sind jetzt 2021):
>
> http://www.gnuplot.info/docs_4.2/node99.html

O.k. Ich hatte ein Code-Beispiel genommen, ich schaue es mir nochmal an.

Edit: Super, das funktioniert! Darauf muss man erst mal kommen, wenn man 
mit der Materie noch nie zu tun hatte.

von Dietmar S. (Gast)


Lesenswert?

SDL ist aus dem Rennen. Die Anforderungen übersteigen meine bescheidenen 
Kenntnisse bei weitem. Das muss ich mir einfach eingestehen. Ich hätte 
erwartet, dass ich mit Hilfe von Codebeispielen zumindest eine einfache 
Linie, eine Grafik oder nur ein einzelnes Pixel auf den Bildschirm 
bekomme.

von RPi (Gast)


Lesenswert?

Hallo,

wie wäre es denn mit einem Rasperry Pi, Grafana und evtl. influxdb 
drauf. Da muss man so gut wie nix programmieren. Dann  mit nem ESP8266 
oder direkt mit irgendnem RPi Shield Werte messen/ausgeben?

von Dietmar S. (Gast)


Lesenswert?

Ich bestelle mir nun einen DUINOMITE-MEGA bzw. habe ich erst mal in der 
Rubrik Markt gefragt, bevor ich ihn am Wochenende bestelle.

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.