mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Visualisierung AVR zu PC über RS232


Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich führe mit meinem AtMega einige messungen durch und würde gerne die 
messdaten über RS232 an meinem PC senden und am PC mit den Daten eine 
Visualisierung durchführen. Die Daten die ich an den PC gesendet habe 
möchte ich dann noch am PC archivieren.

kann mir jemand helfen ?

Danke

mfg Mathias

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Daten die ich an den PC gesendet habe
> möchte ich dann noch am PC archivieren.

Sende deine Daten einfach als ASCII, mach in einer Shell
eine Pipe auf und kopiere sie gleich in einer Textdatei.

> kann mir jemand helfen ?

Gern geschehen.

Olaf

Autor: Max Neumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hatte das problem auch schon mal

Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ASCII ??
Shell ??
Pipe ??

ich möchte immer ganze datenpakete schicken die wie folgt aussehen:
a = 3.5, b = 2.4 ......

und diese daten möche ich dann auswerten und ein diagramm im Excel damit 
erstellen oder eine richtige visu machen.

mfg

Autor: ext4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sollte in vb sehr einfach machbar sein....

Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was spricht dagegen, die Daten CSV kodiert zu senden, also
3.5,2.4,...<NEWLINE>
4.4,3.2,...<NEWLINE>
...

Eine solche Datei kannst du dann direkt in Excel laden.

Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber wie verarbeite die Daten von meinem µC am PC ?
Wie kann ich das im Excel Laden ?

mfg Mathias

Autor: Lukas B. (lukas-1992) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Daten sendest du vom AVR (wie das mit dem AVR geh weiß ich nicht der 
wirt aber auch eine serielle Schnittstelle haben):
Dan bindest du in VB die Sierielle Schnittstelle ein (ist in der Toolbox 
(zumindest in C#)) dan kannst du die Daten einfach einlesen in einem 
Array Speichern.

Und wenns du unbedingt grafisch haben willscht nimmst eine Picturebox 
und von dere das Pain Event und zeichnest die Punkte die du im Array 
hast.

Wenns undbedingt Excel sein muss wird warscheinlich nicht ganz so 
einfach da man mit VBA nicht so einfach auf die Serielle Schnittstelle 
zugreifen kann.

du könntest die Punkte aus dem Array versuchen in CSV abzuspeichern und 
anschliesend in Excel laden und dan manuell ein Diagramm machen.

Es gibt viele Möglichkeiten.....


Grüße Lukas

Autor: ext4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also am µC must du die daten halt wie im tutorial beschrieben versenden 
....

am pc must du sie entweder mit hyperterm empfangen und dann als text 
datei speichern und weiterverarbeiten oder ein vba plugin(direkt in 
exel) benutzen was die serielle schnitstelle abfagt...oder in vb ein 
entsprechendes objekt nutzen das die serielle auf macht die daten 
empfängt und und ein programm schreiben das die werte auswertet....

Autor: ext4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
messen steuern regeln mit m$ office oder so ähnlich gibts auch

Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok vb ist ein mal schlecht weil ich nur C kann.
könnte mir Vl jemand sagen wie ich die serielle schnittstelle im 
Programm einbinde ?
ich habe bis jetzt nur über das Hyper terminal mit dem AVR kommuniziert.

mfg Mathias

Autor: ext4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibts bestimmt libs für

Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie kann ich aus die daten direkt aus dem Hyper Terminal abspeichern ?

Autor: Barny F. (barny)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie es schon gesagt wurde, sende die Daten im Ascci Format.

Um Die Taten in Excel zu bekommen, verwende am Bessten 
Tabulator-getrennten Text.
Dass ist eine normale Text-Datei, bei der mittels Tabulator in die 
nächste Spalte und mit Zeilenvorschub + Enter in die nächste Zeile 
gesprungen wird.


Wenn du nichts selbst Programmieren oder basteln willst, kannst du 
einfach den Hyperterminal verwenden welches serienmäßig bei jedem 
Windows dabei ist.
(Außer bei Vista, da fehlt's)
Da kannst du die empfangenen Daten einfach in eine Datei speichern.
Wenn du die Daten als Tabulator getrennten Text sendest, brauchst du die 
Datei nur IRGENDWAS.XLS nennen und schon kann Excel die Daten ohne 
Probleme verwenden.

Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathais schrieb:
> wie kann ich aus die daten direkt aus dem Hyper Terminal abspeichern ?

Transfer --> Capture Text?

Naja, soo viele Optionen bietet Hyperterminal nunn gerade nicht an, dass 
man sich im Menu verlieren wuerde...

EDIT:
Es gibt auch andere (bessere) Terminal Emulationen Fuer Windows:
- TeraTerm
- Br@y Terminal
- putty

Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie kann ich die empfangenen Daten in eine Datei Speichern ?

Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich jetzt werte gespeichert habe z.B. : a=1,b=2...
und es kommen neue werte z.B. a=3,b=1... was geschieht dann mit den 
alten wertden ?

Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jessesmarantjosef! Probier's halt aus...

Autor: Michael Steinbauer (Firma: Steinbauer Electronics GmbH) (captain-stone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du alles schon fertig haben möchtest, dann kannst dafür Labview 
verwenden. Wenn Du es selber machen möchtest, kannst Gtk+ Libary 
verwenden. Quäl mich auch gerade durch GtkDatabox :-)

Michael

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehm' ProfiLab dazu, kostet 99€ und ist recht einfach zu bedienen.
http://www.abacom-online.de/html/profilab-expert.html

Autor: Philipp Eichhorn (pcsquirrel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Michael Steinbauer (Firma: Steinbauer Electronics GmbH) (captain-stone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Thilo,

das sieht echt gut aus. Leider nur für Windows zu haben :-( So eine 
Library hätt ich gerne für C.

Beim reinen Zusammenklicken bin ich immer ein wenig skeptisch. Wie 
zerlegst du da den String, welchen du über die RS232 schickst?

Michael

Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es eine möglichkeit das der PC jeden tag eine neue XLS liste anlegt 
oder muss ich das jeden tag selbstständig machen ?

Autor: Michael Steinbauer (Firma: Steinbauer Electronics GmbH) (captain-stone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathais schrieb:
> gibt es eine möglichkeit das der PC jeden tag eine neue XLS liste anlegt
> oder muss ich das jeden tag selbstständig machen ?

Dein Shift-Tast scheint defekt zu sein.

Wenn Du ein Makro in Excel dazu schreibst, kannst du für solche Zwecke 
die "Date" Funktion nutzen.

Michael

Autor: Mathais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie funktioniert das mit dem Makro ?

mfg Mathias

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuchs mal mit der Hilfe die in Excel eingebaut ist.

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Steinbauer schrieb:
> Hi Thilo,
>
> das sieht echt gut aus. Leider nur für Windows zu haben :-( So eine
> Library hätt ich gerne für C.
>
> Beim reinen Zusammenklicken bin ich immer ein wenig skeptisch. Wie
> zerlegst du da den String, welchen du über die RS232 schickst?
>
> Michael

Das funktioniert mit den enthaltenen Funktionen recht gut, teilweise 
braucht's etwas Pahantasie. ;)
Man kann dort auch leicht eigene DLLs einbinden,was das Ganze sehr 
flexibel macht. Es sind wohl noch einige Bugs drin, auch die Bedienung 
lässt etwas zu wünschen übrig (keine 'Rückgängig' Funktion z.B.), aber 
für den Preis finde ich es echt OK!

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Mathais schrieb:
> gibt es eine möglichkeit das der PC jeden tag eine neue XLS liste anlegt
> oder muss ich das jeden tag selbstständig machen ?

Kannst Du auch ganz altmodisch machen...

echo > d:Datei_%date%.txt

in eine DOS-Batch geschrieben und diese jeden Tag um 00:01 vom 
Taskplaner aufrufen lassen.

Schon hast Du jeden Tag eine leere Datei mit Namen
Datei_26.97.2009.txt auf Laufwerk D liegen...

Gruß aus Berlin
Michael

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber ich muss im Hyper Terminal festlegen in welche Datei er die Daten 
schreiben soll.
und die Daten werden erst geschrieben ernn ich die aufzeichnung beende.

kann man das auch automatisieren ?

mfg

Autor: Barny F. (barny)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>kann man das auch automatisieren ?

Ja

Frage aber doch bitte einmal Google / Bing,... nach:

Ascii
Tabulator getrennter Text
Batch Datei


Man kann zwar auch mittels Excel-Makro Daten von der RS232 aufzeichnen.
Aber da muß man dann das Makro nach jedem Wechsel der Office-Version 
quasi neu schreiben.


Es gibt mehrere Möglichkeiten wie du automatisiert die Daten aufzeichnen 
kannst.

1.: Du schreibst dir eine Batch-Datei (*.bat)

2.: Du kaufst / lädst dir ein Programm herunter dass das kann.

3.: Du schreibst dir ein Programm mit C/C++ selbst.
Für RS232 gibt es unter C/C++ genügend Beispiele wie man dass macht.
Und von Microsoft gibt's sogar eine kostenlose Version von Visual Studio 
mit der man sich so ein Programm schreiben kann.

Autor: harpalykos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie würde der Batch programmcode ungefähr aussehen ?

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Um die Auswertung zu erleichtern, kannst Du auch mal hier vorbeischauen:
Beitrag "Visualisierung von geloggten Daten"
(bis unten durchscrollen), ist mittlerweile (glaub ich) ganz brauchbar 
geworden.
mfG ingo

Autor: Ingo W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
harpalykos schrieb:
> wie würde der Batch programmcode ungefähr aussehen ?

Im folgenden Beispiel werden die an com7 ankommenden Daten in die Datei 
d:\test(datum_zeit).txt geschrieben, wobei Datum und Zeit für die 
jeweils aktuelle Zeit gelten, damit wird ein Überschreiben der Datei 
vermieden. Mit dem Schalter /B vermeidet man eine Pufferung, die Daten 
werden sofort in die Datei geschrieben. Die der Kopiervorgang läuft so 
lange, bis er "hart" abgebrochen wird (Im Taskplaner Start- und 
Endzeitpunkt). Wenn die Datei jeden Tag, für 24 Stunden gestartet wird, 
hast Du für jeden Tag eine Datei

REM Die Schnittstelle einstellen:
mode com7: BAUD=9600 PARITY=N DATA=8 STOP=1
REM ankommende Daten kopieren
copy com7 /B d:\test%date%_%time%.txt

Autor: Ingo W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrektur: %time% kann in den Dateinamen leider nicht rein, da sind mit 
den deutschen Landeseinstellungen die Zehntelsekunden mit Komma 
angehängt und das ist für Dateinamen nicht zulässig:

d:\tools\batch>echo %time%
19:11:37,67

mfG ingo

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.