Pages: 1 [2] 3 4 5   Go Down
Author Topic: Arduino-Oszilloskop - [Nano Version]  (Read 10329 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 11
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja, da hast du recht. Ein Geschwindigkeitsverlust würde sich nicht vermeiden lassen. Ich werde mal ein besseres Kommunikationsprotokoll schreiben, um die Kanäle ggf. zu steuern. Habe so etwas schon mal bei meinem alten "Arduino-Control" gemacht, allerdings auf "reiner Text"-Basis. Das funktioniert zwar, ist aber sehr ineffizient. Das neue Protokoll ist von der Funktion zwar schon fertig, aber noch nicht programmiert. Die Funktion als Oszi wird dabei nur gering eingeschränkt, da das Programm nur Befehle sendet, wenn ein Zustand geändert werden soll. (z.B. Kanäle hinzuschalten oder Auflösungen ändern). Je nach dem wie das Ergebnis ist, werde ich notfalls 2 Versionen anfertigen.

Aber momentan steht erst mal noch der reine Graph im Vordergrund, so wie einige Basis-Funktionen. Ich denke mal, dass ich Mittwoch die ersten Ergebnisse hochladen kann.
Logged

germany, cologne
Offline Offline
Newbie
*
Karma: 1
Posts: 47
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Einen Geschwinigkeitsverlust wegen einem zusätzlich Kanal fände ich nicht so gut. Ich weiß, dass viele nach mehr Kanälen schreien und ein 2. wäre sicherlich nett. Aber die Geschwindigkeit ist es, die Dein Projekt von anderen Arduino-Ozilloskopen (wie Scopino) abhebt.
Logged

Offline Offline
Newbie
*
Karma: 11
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja, wahrscheinlich hast du Recht. Ich konzentriere mich erst mal auf einen Kanal. Auch da gibt es dann ja noch viele spielereien (wie FFT, Impuls/Frequenz-Messung) die ich dann anschließend einbauen kann. "Scopino" ist auch recht interessant. Es macht immer wieder spaß, andere Werke anzuschauen und diese zu vergleichen.
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 56
Posts: 2983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich bin begeistert !

50 Hz Signale aufzeichnen ist ja nicht die Kunst, aber hier sieht man z.B. super Prellen eines Aus-Schalters auf der Trafo-Eingangsseite (quasi einen 12 V Trafo als Zündspule, der arme Arduino...), Nachtrag: und den Unterschied den ein kleiner 10nF Kondensator ( bei ca. 30k Widerständen ) macht.
Mit LTSpice sieht immer alles viel sauberer aus ...

Nach diesem Lob, meine Zusatzwünsche:
- Schau dir doch bitte das mit dem Trigger nochmal an: Ist das wirklich nur die steigende Flanke ?
(Wenn ich mein auf "128" getriggertes um 2.5V symmetrisches Signal ansehe, kippt das sehr häufig zwischen steigender und fallender Flanke hin und her )

- Wie könnte man die Geschwindigkeit / horizontale Auflösung variieren, ohne den Arduino jedesmal umprogrammieren zu müssen ?
Arduino sollte sich ein bisschen was vom PC sagen lassen, entweder nach Reset oder auch im laufenden Betrieb ( wenn ein Serial.available() nicht zu sehr bremst )
a) dynamisch die Baudrate anpassen
b) mit definierter Wartezeit zwischen Messungen
  



* switch-off-50Hz.PNG (74.3 KB, 1044x326 - viewed 58 times.)

* switch-off-50Hz_withCap.PNG (30 KB, 1017x326 - viewed 41 times.)

* LTSpice.PNG (27.23 KB, 728x544 - viewed 74 times.)
« Last Edit: April 29, 2013, 02:04:44 pm by michael_x » Logged

Offline Offline
Newbie
*
Karma: 11
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ja, das ist schon eine tolle Spielerei. Ich konnte bisher auch mein Programm sinnvoll verwenden. z.B. das Beobachten einer geregelten Fahrraddynamo-Spannung, mit der ich während der Fahrt ein Smartphone laden kann.

Das Programm ist gerade in Entwicklung. Ich arbeite täglich daran und der neue Graph ist fast fertig. Dadurch wird die Darstellung viel dynamischer und der Bereich lässt sich dann auch beliebig mit der Maus verschieben oder zoomen. Es ist momentan eine unschöne Arbeit, da alles schon sehr komplex geworden ist und viele Berechnungen gemacht werden müssen.

Die Version, die hier zur Verfügung steht, ist natürlich viel einfacher gestrickt. Auch der Trigger ist sehr einfach aufgebaut und führt daher noch sein Eigenleben, wenn schon ein leichtes Rauschen im dargestellten Signal ist.

Die Geschwindigkeit wird sich soweit auch steuern lassen. Ich werde später noch ein Protokoll einbinden, der wieder eine Kommunikation mit dem Arduino ermöglicht. Aber meine aktuellen Ziele sind erstmal die Fertigstellung des Graphen mit vernünftigen Basisfunktionen smiley

Ich hoffe, dass ich bis Wochenende eine neue Version hochladen kann. ...je nach dem, wo es noch Probleme gibt.


lg
SBond
Logged

Offline Offline
Newbie
*
Karma: 11
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Leute,

ja... das Update verspätet sich noch ein klein wenig. Es ist alles etwas aufwändiger geworden, als gedacht. Der neue Graph, ist aber schon fast fertig. Ich muss noch einige Fehler beheben und die Werte anpassen. Würde es jemand mal für mich austesten und die FPS-Werte bei der Standardgröße durchgeben? Wichtig wäre für mich zumindest der Prozessortyp und die FPS-Rate, da ich gerne die Leistungsfähigkeit bei verschiedener Hardware auswerten möchte.

Der Graph ist jetzt dynamisch aufgebaut und man kann den sichtbaren Bereich mit der Maus verschieben und mit dem Mausrad zoomen. Es können auch unbegrenzt viele Kanäle dargestellt werden. Zur Zeit sind 3 Modis einprogrammiert:

Modus 1: Oszi-Modus (sehr hohe Darstellungsgeschwindigkeit bzw. Echtzeitdarstellung der Werte vom Arduino)
Modus 2: Aktualisierungs-Modus (allgemein für langsame Prozesse)
Modus 3: scrolling-Modus (allgemein für langsame Prozesse, scrollt aber den Graphen kontinuierlich)


hier mal Modus 1 (32-Bit version) mit einem Testsignal:



bis dann...

lg SBond

* Graph-Test v4.zip (249.69 KB - downloaded 36 times.)
Logged

Austria
Offline Offline
Full Member
***
Karma: 2
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe es einmal getestet.

Modus 1 - 64-Bit Version


Das Verschieben des Graphs mit der Maus und das Zoomen funktioniert super. Die Skalierungen auf den Seiten ist auch sehr hilfreich. Ich freue mich schon auf die Finale-Version. smiley

Grüße,
J3RE
« Last Edit: May 10, 2013, 04:48:03 am by J3RE » Logged

malaysia
Offline Offline
Full Member
***
Karma: 2
Posts: 101
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nice work!

ich habe 1 Frage, wie man die Frequenz von diesem Code zu berechnen. kann mir jemand erklären den Code
Logged

dut eden rockes

Offline Offline
Newbie
*
Karma: 11
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

meinst du die FPS-Rate?

Wenn es für dich einfacher ist, dann kannst du deine Frage auch in Englisch schreiben smiley-wink
Logged

malaysia
Offline Offline
Full Member
***
Karma: 2
Posts: 101
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

oh ok..i write in English..

sorry for noob question..i want to know how to calculate FPS-rate? and i want to know how the coding work..i cant understand that..
Logged

dut eden rockes

Offline Offline
Newbie
*
Karma: 11
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no problem smiley-grin

It's pretty simple to calculate the FPS rate:  FPS = (plotted values per seconds) / (graph width)
so... each pixel of the graph (in width direction) represents one value.


my pseudo code:


Code:

While (1)

; plot a Pixel
;--------------------------

...
...
...


; calc FPS rate
;--------------------------

time_difference = ElapsedMilliseconds() - old_time

If (time_difference >= 1000)
old_time = ElapsedMilliseconds()
MyFPS = plot_counter/graph_width
SetGadgetText(FPS_label, "FPS: " + StrF(MyFPS,2))   ; show FPS rate with 2 decimal place
counter = 0  ; reset counter
Else
counter + 1  ; count up

EndIf

...
...
...

Wend


Could I help you?


Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

domspitze hat recht, vorallendingen die Skala zum leichteren Ablesen der Messwerte muss noch hinzugefügt werden !
Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Offline Offline
Newbie
*
Karma: 11
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jo, ist drin smiley-wink

Heute will ich noch Messspitzen und ein kleines "Triggerkreuz" implementieren. Gestern hat mich die Programmiersoftware ja fast in den Wahnsinn getrieben. Wenn alles halbwegs reibungslos funktioniert, dann kommt am Sonntag ein Update mit dem neuen Graphen.  ...jetzt muss ich erstmal noch einige nervige Fehler ausbügeln.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

au, ein sehr schönes Projekt! Mein Respekt.....

siehst du ne Möglichkeit das auch aufn Mac zum Spielen zu bekommen?

Würd mir ungern nen Windows installieren wollen.


LG
Feija
Logged

Germany
Offline Offline
Edison Member
*
Karma: 46
Posts: 2310
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Da in PureBasic (erhältlich für Linux, Windows und MacOS) programmiert wird, sollte (mit kleinen Anpassungen) auch eine Mac-Version möglich sein.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Pages: 1 [2] 3 4 5   Go Up
Jump to: