Visualisierung AVR zu PC über RS232

Gast #1388883
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
Gast #1388889
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
Gast #1388931
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
Persönliche Seite #1388948
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
Gast #1388956
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....
Gast #1388959
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
#1388965
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.
Gast #1389539
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!
#1389553
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
Gast #1389661
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
#1390144
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.
Gast #1813241
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
Gast #1813267
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren