PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grafische BenutzerOberfläche



PabloEscoba
22.12.2006, 22:35
Hallo

Ich habe mal eine Frage.
Also ich überlege gerade wie ich am besten eine grafische Benutzeroberfläche für meinen Robo realisiere.Ich will Daten von den Sensoren Optisch darstellen oder zumindest anzeigen.
Kommunizieren will ich mit dem Com-Port , Als MC benutze ich die C-Control.
Ich habe mal im Internet ein wenig rumgesucht und Zahlreiche Artikel gefunden.
Da ich als Anfänger nicht überblicken kann , welche die beste Möglichkeit ist bzw welche am ausbaufähigsten ist.
Poste ich einfach mal hier die Frage.

H.M[/list]

Mc_Loyd
22.12.2006, 23:03
Also, wenn du Anfänger bist und das ganze auf einem Windows PC haben willst würde ich dir die Software LABVIEW emfehlen. Hatte mal eine Testversion davon und muss sagen, mit LABVIEW kannst du Applikationen sehr schnell und einfach erstellen - Die Software ist glaube ich zur Mess- und Regelungstechnik da, aber kriegst sicher auch n Robo-Interface damit gebastelt...

Viele werden jetzt sagen, dass sie mit C oder C++ diese Software in der Luft zerreißen, kann auch gut sein - aber ich find LABVIEW ist schon ganz toll gemacht, ich komm damit sehr gut klar!

NumberFive
23.12.2006, 07:51
http://www.marvins-lab.roboterbastler.de/index.html

https://www.roboternetz.de/phpBB2/viewtopic.php?t=16297&postdays=0&postorder=asc&start=0

Beide Links beziehen sich auf ein Projekt hier aus dem Forum sicher noch nicht ganz eifach zu verstehen aber ich denke ein Projekt wo es immer neues geben wird. So einfach wie Labview ist es aber mit sicherheit nicht.

Mein persönlich meinung ist halt die umso erweiterbarer und frei ums so komplexer wird leider.

Gruß

PabloEscoba
23.12.2006, 14:07
Hallo

Welche möglichkeiten gibt es noch , das kann doch nicht alles sein :-)

Mobius
23.12.2006, 14:37
Also, wenn es modular sein soll, wirst du, nach meiner Meinung, nicht wirklich um eine Programmiersprache vorbeikommen können. Bis jetzt hat sich für mich Java bewährt, vor allem, weil ich das gleiche Programm an verschiedenen OS benutzen kann.
Für die Oberfläche selber gibt es genug IDEs die die Plugins schon integriert haben (zum Beispiel Netbeans, das mit dem JDK kostenlos mit heruntergeladen werden kann). So kann ich in ~30 bis 45 min die gesammte Oberfläche "roh" erstellen und anschließend die einzelnen Funktionen hineinschreiben. Auch erleichtert der Umstand, dass es für die meisten Funktionen, die man so benutzten könnte (zum Beispiel die serielle Schnittstelle anzusteuern, aus einer Datei zu lesen oder eine verkettete Liste zu erstelllen) schon vorgefertigte Klasen gibt und man diese "Baulötze" nur noch richtig zusammenfügen muss.
Auch findet man genug Tutorials per Google und Bücher (sowohl normale, wie auch elektronische), die einem das erlernen der Sprache vereinfachen. Da Java leicht an C udn C++ angelehnt ist, ist es natürlich vorteilhaft, wenn man schon in einem der Sprachen programmiert hat, aber es geht auch ohne vorkentnisse, man darf sich nur nicht entmutigen lassen.

Naja, Java an sich ist halt extrem gut, wenn man die Zeit hat, sich in die Sprache einzuarbeiten und, wie ich es bei mir und einigen Semesterkameraden gesehen habe, dauert es ca. von 2 Wochen bis ein Monat bis man aus der "wie zum Geier ist das zu machen"-Frust herauskommt und die Modularität von Java zu schätzen und zu lieben beginnt.
Mir tun jetzt schon die Finger weh, wenn ich daran denke, wie zach es ist eine verkettete Liste in C zu programmieren (waren ca. 75-150 Zeilen Code). In Java ist das ganze in einer Zeile mit "ArrayList<Integer> verketteteListe" gegessen :D.
MfG
Mobius

NumberFive
28.02.2007, 07:04
typedef std::vector<CString> StringArray;

ich weiß nicht was daran 75 -150 zeilen Code sind

voidpointer
28.02.2007, 09:14
Tut mir leid, wenn ich hier Haare spalte, aber weder ArrayList noch Vector sind als verkettete Liste implementiert. Dann müsste man in Java schon eine LinkedList verwenden.

Aber ansonsten kann ich Mobius zustimmen. Java bietet zahlreiche Möglichkeiten, eine grafische Oberfläche zu gestalten, die Kommunikation mit dem Robo - z.B. seriell - aufzubauen usw. Leider haben sich die Entwickler von Sun in den letzten Jahren mehr um die Serverseite gekümmert, aber auch die GUI wurde mit jeder Version verbessert und vor allem auch beschleunigt.

Allerdings ist die Wahl der Programmiersprache wohl Geschmackssache. Java hat den Vorteil der Plattformunabhängigkeit und für die Verteilung der Programme im Internet bietet es das viel zu selten genutzte "Web Start". Mit Delphi, VBA, C++ (Visual Studio) oder .NET kann man sicher genauso gute oder schlechte Oberflächen bauen. Das Programmieren kostet aber in jedem Fall ne Menge Zeit und daher ist die Verwendung eines Toolkits bzw. fertigen Programms, das man nur noch konfigurieren muss, in Betracht zu ziehen (wie oben schon einige genannt). Dazu kann ich aber keine Tipps geben.

Gruß, Achim.

jo_robot
28.02.2007, 11:30
Kannst du überhaupt nicht Programmieren?
Ich programmiere mit Delphi (die personal edition ist kostenlos)
Das finde ich am besten

robocat
28.02.2007, 17:02
gibt da massig faktoren, die so eine entscheidung beeinflussen:
- einfachheit der sprache
- geschwindigkeit des ablaufs
- portabilität des codes
- libraries, die zum ablauf benötigt werden
- größe des ausführbaren programms
- kosten der entwicklungsumgebung
- echtzeitablauf bzw. zeitkritische abläufe
- direktzugriffmöglichkeit auf hardware
- entwicklungsaufwand
- persönliche vorlieben bzw. fähigkeiten
- webinterface möglich
- graphische anforderungen (2D/3D)
etc.

pure win32 asm oder c ist wohl nur für masochisten (wie mich) zu empfehlen. für 3D verwende natürlich auch ich fertige libs.

wenns nur auf deinem rechner laufen soll (ich vermute mal windoof), einfach zu entwickeln sein soll und kein realtime verlangt ist, wäre evtl c# oder das genannte delphi ok. irgendwas womit man sich drag´n´drop seine oberfläche zusammenklickt. ganz ohne coding wirds aber nicht abgehen, ausser evtl mit obengenanntem labview (kenn ich nicht).

gruesse

Foooob
28.02.2007, 18:38
Zwar schon etwas eingestaubt der Thread aber trotzdem ;-)

Ich kann C# empfehlen, damit programmiere ich mir Benutzeroberflächen für meine verschiedenen Elektronik-Projekte.

Die Express-Edition gibt es kostenlos und reicht dafür völlig aus.

Der Vorteil bei C# liegt wie ich finde gerade darin, dass wenn du dir einmal eine Basis (Sende-/Empfangsschnittstelle) gebaut hast diese ganz easy in sämtlichen anderen Projekten verwenden kannst und dann nur noch das "drumherum" wie Buttons einfügen und coden musst. Der WYSIWYG-Editor für das Windows-Form erleichtert dir da auch so manches.

jo_robot
28.02.2007, 19:58
gibt da massig faktoren, die so eine entscheidung beeinflussen:
- einfachheit der sprache
- geschwindigkeit des ablaufs
- portabilität des codes
- libraries, die zum ablauf benötigt werden
- größe des ausführbaren programms
- kosten der entwicklungsumgebung
- echtzeitablauf bzw. zeitkritische abläufe
- direktzugriffmöglichkeit auf hardware
- entwicklungsaufwand
- persönliche vorlieben bzw. fähigkeiten
- webinterface möglich
- graphische anforderungen (2D/3D)
etc.

pure win32 asm oder c ist wohl nur für masochisten (wie mich) zu empfehlen. für 3D verwende natürlich auch ich fertige libs.

wenns nur auf deinem rechner laufen soll (ich vermute mal windoof), einfach zu entwickeln sein soll und kein realtime verlangt ist, wäre evtl c# oder das genannte delphi ok. irgendwas womit man sich drag´n´drop seine oberfläche zusammenklickt. ganz ohne coding wirds aber nicht abgehen, ausser evtl mit obengenanntem labview (kenn ich nicht).

gruesse

Es gibt auch Delphi für linux!! Kylix!!!!!

jo_robot
28.02.2007, 20:00
Ok thx.
ich probiers mal aus

eugengraf
21.06.2007, 21:38
Also ich finde LabVIEW sehr sehr gut. Ich habe schon mit mehreren Programmiersprachen gearbeitet (c, C++, Java, LabVIEW) und ich kann nur sagen, dass die Tatsache, dass die Leute an textbasierten Programmiersprachen gewöhns sind, sreckt diese von LabVIEW ab. Zum Einstieg empfehle ich
www.labviewforum.de , das gerade updated wird. Aber
www.labviewtutorial.de , das aber noch nicht fertig ist.

Eugen

P.S. bei C'T gibt es kostenlose ältere Vollversion LV 6.0 für Mac und Windows und bei Heisse.de für Linux.

recycle
21.06.2007, 22:11
P.S. bei C'T gibt es kostenlose ältere Vollversion LV 6.0 für Mac und Windows und bei Heisse.de für Linux.

Genaugenommen gibt es bei Heise.de die Version 6.1 für Linux und MAC zum kostenlosen Download.
Die Windows-Version gab es zwar auch von Heise, aber nur als DVD-Beilage der CT im Mai und die gibts inzwischen nicht mehr - leider.

eugengraf
21.06.2007, 22:40
P.S. bei C'T gibt es kostenlose ältere Vollversion LV 6.0 für Mac und Windows und bei Heisse.de für Linux.

Genaugenommen gibt es bei Heise.de die Version 6.1 für Linux und MAC zum kostenlosen Download.
Die Windows-Version gab es zwar auch von Heise, aber nur als DVD-Beilage der CT im Mai und die gibts inzwischen nicht mehr - leider.


Sorry, irgendwie so. Es gibt also LV 6.1 für Mac, Windows und Linux kostenlos und legal zum Download.

avr57
21.06.2007, 22:40
Hi,

selbst benutze fuer alle moeglichen Kommunikationen PC und Mikrokontroller die Software "Profilab-Expert" von www.abacom-online.de
Demoversion ist auf der Webseite erhaeltlich.

Viele Gruesse
Karl

recycle
22.06.2007, 00:55
@eugengraf


Sorry, irgendwie so. Es gibt also LV 6.1 für Mac, Windows und Linux kostenlos und legal zum Download.

Nein, die Windows Version gibt es eben nicht kostenlos zum Download.
Die hat Heise nur auf die DVD die Mai-Ausgabe der CT gepackt.
Die Linux- und Mac- Versionen sollten ursprünglisch auch auf die Heft-DVD, da sie da aber nicht mehr drauf gepasst haben biete Heise sie jetzt kostenlos zum Download an.

D.h. Windows-User die Labview 6.1 verwenden möchten und die CT 1107 vom Mai 2007 nicht haben, haben Pech gehabt.

Ich habe ziemlich lange gegoogelt, ob die Windowsversion nicht auch von irgendeiner anderen Computerzeitschrift, dem Hersteller selbst oder wo auch immer legal zum download angeboten wird, habe aber nichts gefunden.
Irgendwo auf Heise.de gibt es aber eine Seite über die man ältere Ausgaben der CT nachbestellen kann.

eugengraf
27.11.2007, 13:58
Also wenn sich noch jemand dafür interessiert

http://www.labviewtutorial.de/index.php?id=21&bereiche_id=6&navigation_id=6

Beschreibug wo downloaden und wie installieren.

HannoHupmann
27.11.2007, 16:48
Ich würde das ganze unter Python machen, einer OO Sprache die ebenfall Open Source ist. Mit dem Zusatz Tkinter braucht man ungefähr 2 Minuten um jegeliche GUI herzustellen.

Als neulicng wird man mit einarbeiten etwa 15 Minuten brauchen. Als Link könnte ich da mal die Seite von meinem Prof vorschlagen http://www.fh-augsburg.de/~hhoegl/oosw/oosw.html

da sucht man sich einfach das Skript und die Unterlagen über Tkinter bei Python und naja schon hat man was man braucht.

übrigens so sieht das ganze aus für ein Programm welches Zufallszahlen als Punkte in einem Fenster anzeigt:


[code]
import graphics, random

MAX = 200

def main():
win = graphics.GraphWin() # Ein Fenste malen
for i in range (5000): # 5000 Punkte erzeugen
p = graphics.Point(random.randint(0, MAX), random.randint(0, MAX))
p.draw(win) # Punkte ins Fenster malern

if __name__ == "__main__":
main()
[\code]

Für andere Anwendungen wie das auslesen einer seriellen Schnittstelle gibt es auch passende Module.
Natürlich muss man sich auch in Python erst mal einarbeiten, aber im Gegensatz zu C++ ist die Syntax intuitiv zu bedienen.

for i in range 1000

ist eine eine Schleife wie in C++ etwa

for (int i = 0, 1000, i++)

eugengraf
27.11.2007, 17:45
Ich würde aber fast behaupten, dass es einfacher als in LabVIEW nicht geht.
Ich habe zwei Programme gemacht:

Das eine erzeugt Sinus und Cosinus, bildet eine Zeile daraus und sendet diese Zeile über serielle Schnittstelle in 50ms Abständen ab.

Das andere liest die serielle Schnittstelle, macht aus der Zeile ein Array aus zwei Zahlen und zeigt diese in der Graphik an.

Wer bietet noch weniger Code egal in welcher Programmiersprache? Dann steige ich vielleicht noch um.

Gruß

P.S. die gelbe und weisse Schriften sind nur Kommentare und Beschriftungen.
Um die Fenster und das ganze überflüssige Zeug müssen Sie sich gar nicht kümmern, die sind gleich automatisch da.
Bibliotheken suchen und irgendwie einbinden? Ach was, alles was man braucht ist schon mit dabei.

HannoHupmann
27.11.2007, 18:57
@eugengraf ich auch schon mit LabView gearbeitet, damit geht es wirklich recht einfach. Andererseits gibt man auch viele Möglichkeiten ab, wenn man doch etwas spezielleres dann machen möchte.

Wer ausserdem he eine Programmiersprache lernen will/muss der kann sich auch bei irgend einem Programm einarbeiten. Am Ende zählt aber immer mit welchem Programm man selbst am besten zurecht kommt.

hft
30.11.2007, 17:05
Nabent
Ich programiere mit Profan 6.6
Freigegeben. Ist eine Mischung aus pascal und basic. Einfach zu erlernen.
habe damit eine umfangreiche, fei anpasbare Seuerung geschrieben. I/O durch Com.

roboterheld
30.11.2007, 22:00
das gfa-basic32 für den pc ist jetzt freeware, läuft auf win98/me/2000/xp/vista. wurde 2001 von der deutschen softwareschmiede eingestellt, konnten den betrieb betriebswirtschaftlich nicht mehr führen. das gfa32 kostete 2001 ca 550 euro. ist eine tolle sprache. gfa kenne ich schon vom atari st . der index in der gui ist super und die doc dateien sind klasse, alles in deutsch. die exe-datein sind super-schnell, alles asm-code. es gibt auch gfa für dos und gfa16 für win95/98/me und immer mit compiler. dias gfa für dos versetzt ein wieder zurück...in alte zeiten, läuft auch super, benutze ich teilweise auch noch. auch was für leute die im system friemeln wollen und neugierig sind. asm-code kann problemlos eingebunden werden. ist alles ausführlich dokumentiert. habe noch nie so eine klare einweisung für das interna einer sprache gesehen.

simuliere zur zeit damit einen roboter auf dem pc, der vom atmega über die serielle schnittstelle gesteuert wird.

roboterheld
30.11.2007, 22:00
das gfa-basic32 für den pc ist jetzt freeware, läuft auf win98/me/2000/xp/vista. wurde 2001 von der deutschen softwareschmiede eingestellt, konnten den betrieb betriebswirtschaftlich nicht mehr führen. das gfa32 kostete 2001 ca 550 euro. ist eine tolle sprache. gfa kenne ich schon vom atari st . der index in der gui ist super und die doc dateien sind klasse, alles in deutsch. die exe-datein sind super-schnell, alles asm-code. es gibt auch gfa für dos und gfa16 für win95/98/me und immer mit compiler. dias gfa für dos versetzt ein wieder zurück...in alte zeiten, läuft auch super, benutze ich teilweise auch noch. auch was für leute die im system friemeln wollen und neugierig sind. asm-code kann problemlos eingebunden werden. ist alles ausführlich dokumentiert. habe noch nie so eine klare einweisung für das interna einer sprache gesehen.

simuliere zur zeit damit einen roboter auf dem pc, der vom atmega über die serielle schnittstelle gesteuert wird.

roboterheld
30.11.2007, 22:05
hier gibt es die gfa-system programme:

http://gfabasic32.googlepages.com/

peter heinzig , ein gfa-freak, ist jetzt rentner :

http://freenet-homepage.de/p.hinz.kunz/

und programme , für jeden etwas :

http://gfawhelp.gfa.net/main.htm


hier gibt es einen guten basicbericht :

http://www.antonis.de/gfa-basic/index.htm

hier kann man sich anmelden für fragen :

http://gfa-basic.liebenstein.de/mailingliste.htm