habe mal wieder eine Frage an euch
Die Funktionen und Möglichkeiten vom Arduino selbst sind enorm, aber nun möchte ich ein Bedienfenster selbst Programmieren. Vielleicht nehme ich hierfür Qt her, da dies auf jedem System läuft. Die Kommunikation kann ich ja über die COM mit 9600 Baud oder so realisieren.
Nun die Frage:
Hat jemand das schonmal versucht? Kennt jemand ein How To mit der Anbindung oder des gleichen?
Google war leider nicht mein Freund
Ist im Prinzip nicht anders als die serielle Kommunikation mit jedem anderem System auch. Serielle Schnittstelle erstellen, Daten austauschen und fertig.
Für .NET zum Beispiel gibt es dafür die SerialPort Klasse:
Wieso immer Processing? Processing hat seine Stärke in der Visualisierung von Daten. Das ist wofür es entwickelt wurde. Wenn man Daten graphisch darstellen will, dann ist das super. Aber was die reine Übertragung angeht bietet es kaum bis keine Vorteile gegenüber Standard Java, .NET, Delphi, Qt, oder anderen Optionen.
Wenn es um den (optionalen) direkten Zugriff auf die Arduino Hardware vom PC geht, dann macht das auch nicht Processing an sich, sondern Firmata. Was es wiederum für zig andere Plattformen gibt: Download - Firmata (Google spuckt auch noch mehr aus, wenn man nach Firmata und seiner bevorzugten Plattform sucht)
Firmata / Processing hab ich schon immer verwechselt, sorry.
Ist aber vermutlich trotzdem nicht, was Alex will.
Ein individuelles Bedienfenster passend zum sketch, selbst gemacht, ist auch schöner.
Zwar keine Ahnung was es ist aber laut Bilder denk ich ist es sowas was du suchst.
CodeBlocks wäre doch nur eine alternative Programmierumgebung. Ich habe es so verstanden, dass der Threadstarter eine Anwendung mit enem GUI programmieren will. Dieses Programm soll auf die serielle Schnittstelle zugreifen können und so Steuercodes und/oder Daten senden und empfangen.
Nach meiner Interpretation ist Processing da auch gut geeignet, nicht zuletzt weil es hervorragend zur Arduino-Plattform passt:
Arduino und Processing verwenden standardmäßig eine sehr ähnliche IDE
Processing ist plattformunabhängig
Processing ist Open Source
Selbst nutze ich Processing nicht, für solche Anwendungsfälle nutze ich eher PureBasic. Das ist aber Geschmackssache und nicht durch irgendwelche Vor- oder Nachteile begründet.
CodeBlock ist nichts anderes wie Dev-C++. Eine Entwicklungsumgebung
Ich brauche eine IDE oder Bibliothek mit der ich Daten Empfangen oder senden kann.
Drückst einen Button im Fenster und am Board geht eine led an. So zum Beispiel war es gedacht.
Muss ich mir mal Processing anschauen. Pure Basic kenne ich. Schöne Entwicklungsumgebung aber hab C/C++ gelernt
nickvan86:
Ich brauche eine IDE oder Bibliothek mit der ich Daten Empfangen oder senden kann.
Drückst einen Button im Fenster und am Board geht eine led an. So zum Beispiel war es gedacht.
Falls nur ein Textmodus benötigt wird, das ist seit den siebziger Jahren des letzten Jahrhunderts Standard. Nennt sich "VT100" Terminal und ist heute als "Terminalprogramm" auf jeder Rechnerplattform als Standardsoftware verfügbar.
Die graphischen Gestaltungsmöglichkeiten im Textmodus sind zwar nicht gerade berauschend, aber bunt und in Farbe geht dabei auch, wie ich hier schon mal mit einem Beispiel-Screenshot einer Bedienoberfläche gezeigt habe: http://forum.arduino.cc/index.php?topic=147715.msg1111624#msg1111624
Die im Screenshot gezeigte Benutzeroberfläche wird dargestellt auf einem Windows-PC mit dem Terminalprogramm "Putty" und von einem Arduino in Form von "VT100-Steuercodes" über die serielle Schnittstelle gesendet.
Terminalprogramme zur Darstellung von VT100 sind bis heute gängiger Standard, gibt's für Windows kostenlos und gehören zu jeder Linux-Distribution standardmäßig dazu.
Ich glaube nicht, dass VT100 Terminals mit Touchscreen weit verbreitet sind
Nein VT100 Terminals hatten einen Bildschirm und eine Tastatur, aber keine Maus und schon gar keinen Touchscreen.
VT100 Emulationen müssen daher im allgemeinen per Tastatur bedient werden. Bei einer Android-App als Terminalemulation gerne auch die eingeblendete Bildschirm-Tastatur.
Teilweise kann man aber die Bedienung per Klicken mit der Maus" hinbekommen. Es gibt nämlich Terminalprogramme, die z.B. wenn man den Mauszeiger auf ein Zeichen am Bildschirm stellt und dann klickt, jeweils das Zeichen unter dem Mauszeiger senden, so als ob man ihn mit der Tastatur eingegeben hätte. D.h. wenn man sich z.B. ein durchnumeriertes Menü mit den Ziffern 1 bis 9 erstellt, könnte man es so machen, dass beim Mausklick die Auswahlziffer 1 bis 9 gesendet wird. Das ist aber nicht Standard für Terminalprogramme und die Verfügbarkeit eines solchen Features hängt vom verwendeten Terminalprogramm ab. Das Terminal xterm unter Linux sollte es beispielsweise so mit der Maus handeln. Und unter Windows kann es Putty mit der Maus.
nickvan86:
Ich brauche eine IDE oder Bibliothek mit der ich Daten Empfangen oder senden kann.
Das kannst du wie gesagt in praktisch allen Sprachen machen. Kommunikation über die serielle Schnittstelle ist eine sehr elementare Funktion.
Die hast da sehr viele Optionen. Es kommt eher darauf an in welcher Sprache du programmieren willst. Und selbst da hast du manchmal die Wahl zwischen verschiedenen IDEs.
Persönlich mag ich dafür .NET und C#, aber das ist auf Windows beschränkt. Das ist dann Geschmackssache und es kommt auf die Anwendung an ob das auch auf Linux laufen muss.
Wenn du direkt LEDs o.ä. anschalten willst, ist Firmata vielleicht nicht schlecht. Da musst du nämlich kein eigenes Kommunikationsprotokoll mehr entwickeln. Du kannst dem Arduino direkt vom PC Kommandos erteilen. Auch das gibt es wie gesagt PC-seitig in einigen Umgebungen.
michael_x:
Interessant. Jedes gerade angewählte Zeichen, oder definiert man Eingabe-Bereiche (Buttons) ?
Ich habe gerade noch mal die Mausunterstützung bei Putty gecheckt, und dabei dieses Standardverhalten festgestellt:
Markieren beliebiger Texte im Terminalfenster (auch mehrere Zeilen): Linke Maustaste drücken, ziehen, loslassen
Markieren eines Wortes im Terminalfenster: Doppelklicken auf das Wort
Gesendet wird dann immer mit der rechten Maustaste, und zwar jeweils der im Terminalfenster markierte Text.
michael_x:
[ smile ]Eine PC-GUI als Putty Terminal Programm auf Arduino zu schreiben ist aber doch eher was für Sportler / Masochisten, oder ? [ / smile ]
Oder für Leute, die einen PC nicht so gut programmieren können und wenigstens PC-seitig ein garantiert funktionierendes Programm laufen haben wollen, so dass sie sich schwerpunktmäßig auf das Programmieren der Arduino-Seite konzentrieren können.
Also will dann schon ne richtige Bedienoberfläche erstellen und kann dann die Messwerte als SQLite speichern damit Daten nicht verloren gehen als eine art Biodaten Programm.
Terminal Fenster will ich nicht. Ist nicht so komfortabel wie ein schönes Bedienfenster
@nickvan86: Du schreibst habe "C/C++ gelernt" - dann nimm halt Visual C++ von der Oberfläche her bist du flexibel.
Möchte fast sagen die Oberfläche ist schnell zusammengeklickt.
Beim Code dazu must du natürlich etwas mehr nachdenken.
In der Delphi Variante (also Pascal) habe ich damit schon größere Projekte realisiert.
Z.b Solarlogger auf Atmel Basis, bei Anfrage vom PC (via Com y) gibt der Atmel die Daten des Monats x raus.
Auf der PC Seite kannst du das dann so richtig "klickibunti" darstellen incl. Export als Excel oder MySQL.
Ja das darstellen ist ja nicht das Problem
Ich glaub da ging vieles durcheinander.
Meine frage war: gibt es eine API, Biblothek oder Libary für arduino.
Sorry