Pages: [1]   Go Down
Author Topic: Software: [Arduino-Control] - Analyse und Steuerung des Arduino  (Read 978 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 7
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


hier ist ein aktuelles Zwischenergebnis:
http://arduino.cc/forum/index.php/topic,160703.0.html
----------------------------------------------------------------------------------------------




Arduino-Control


Version: 0.6.2.0 Alpha
Datum: 06.12.2012

aktuelle Version:


http://dl.dropbox.com/u/68438584/Arduino-Control/Arduino-Control%20-%200.6.2.0%20Alpha/Arduino-Control%20-%200.6.2.0%20Alpha.zip



kurze Einleitung

Das Programm "Arduino-Control" dient allgemein zur Analyse und Steuerung von verschiedenen Arduino-Boards (bzw. kompatible Boards). Das Programm soll es ermöglichen, die Zustände der Pins und der Quellcode-Variablen am PC zu visualisieren und diese ggf. direkt zu verändern. Die ursprüngliche Idee, ein Oszilloskop zu programmieren, musste ich leider aufgeben, da die Hardware-Schnittstelle und die verwendete Programmiersprache in diesem Fall nicht geeignet sind.


Die Software befindet sich momentan noch im Alpha-Stadium. Sie läuft stabil, beinhaltet jedoch noch viele Fehler und Optimierungsprobleme. Außerdem werden einige Funktionen noch nicht verwendet, obwohl die Steuerungselemente im Programm schon verankert sind.




Das aktuelle Aussehen der Software:



In diesem Menü kann das verwendete Board ausgewählt und mit der Software verbunden werden. Die Modell-Auswahl hat in der aktuellen Version allerdings noch keinen Einfluss auf die Funktionalität des Programms.

Zu der Statusleiste:
die 2. Spalte zeigt an, in welcher Geschwindigkeit die Software arbeitet und wie schnell die Anzeige aktualisiert wird.
die 4. Spalte zeigt an, in welcher Frequenz die Ansicht der Software aktualisiert wird.
die 5. Spalte zeigt an, wie viele Datenpakete pro Sekunde empfangen werden.  (Der Wert ist momentan fehlerhaft und sollte ignoriert werden)
die 6. Spalte zeigt an, wie viele Daten pro Sekunde empfangen werden. (Bei einer Baudrate von 250000 liegt das Maximum bei 25 KB/s)




Im "Live Graph"-Menü können Signalverläufe dargestellt werden. Bei einem langsamen Laptop (wie bei mir) können ca. 100-300 Werte/sek geplottet werden.
Bei besseren Rechnern liegt der Wert bei ca. 400-1000 Werte/sek. Es können zur Zeit 660 Werte dargestellt werden, anschließend werden die alten Werte überschrieben.
Dies lässt sich durch die Einstellung der Auflösung (im Programm) einstellen. Leider sind hohe Plottgeschwindigkeiten aktuell nicht möglich. Zum einen sind noch viele Optimierungsprobleme in der Programmierung zu beheben, zum anderen nutzt das Programm nur 1 Kern der CPU (die Grafikkarte wird gar nicht verwendet)





Das Menü "Prozessabbild" zeigt die Zustände der Pins/Variablen an, die Überwacht werden sollen. Mit Linksklick auf die Blöcke (digitale Pins) oder auf die Balkendiagramme (analoge Pins / Variablen) können die Zustände überwacht bzw. die Überwachung der Zustände deaktiviert werden. Wird auf ein Block geklickt, so sendet die Software augenblicklich die Anforderung an das Board.

graue Box: Pin wird überwacht und der aktuelle Zustand ist LOW
grüne Box: Pin wird überwacht und der aktuelle Zustand ist HIGH
rote Box: Pin wird nicht überwacht. Sollten jedoch Daten empfangen werden, so wird der Zustand auf überwacht gesetzt.
gelbe Box: Pin sollte überwacht werden, aber es werden keine Daten emfangen. Nach einem Timeout, wird der Pin nicht mehr überwacht. (-> rote Box)

Gründe:
-zu viele Daten wurden gesendet oder es kam zu Übertragungsfehlern
-Mein Programm ist eben noch eine Alpha-Version smiley-razz    Der Header für den Arduino-Quellcode ist noch fehlerhaft. Dadurch werden z.B. die letzten Pins manchmal nicht gesendet oder die Übertragung wird abgebrochen)




Habe es erfolgreich getestet mit:

-Arduino Uno Rev. 3
-DFRduino nano328 (Arduino Nano v3.0 kompatibel)
-Freaduino MEGA2560 v1.2-White Color ( Arduino compatible)


zu der "senden"-Funktion:

steht schon da drin:      #s;D;13;R;1;#e

#s;   -> Datenpaket anfang
D;     -> Digitaler Pin     (A, =Analog)
13;     -> Pin 13
R;     -> Lesen  (W, für schreiben)
1;     -> Wert (1 ja,  0 Nein)
#e    -> Datenpaket ende

das kann  der Arduino übersetzen und führt dann den Befehl aus.

Beispiele:

#s;A;0;R;1;#e   -> Analog in, Pin 0:  wird nun gelesen und dauerhaft an die Software gesendet
#s;D;5;R;0;#e   -> Digital in/out, Pin 5: der Zustand wird nicht mehr überwacht; es werden keine Daten mehr über diesen Pin an die Software gesendet
#s;A;3;W;120;#e  -> Digital out, Pin 3: setze PWM mit dem Wert 120
#s;D;4;W;0;#e   -> Digital out, Pin 4: setzt den Pin auf LOW
#s;D;4;W;1;#e   -> Digital out, Pin 4: setzt den Pin auf HIGH


Werte, die vom Arduino gesendet werden: #s;D,6,0;A,2,342;...;...;...;#e

#s;   -> Datenpaket anfang
D,    -> Digital in/out
6,    -> Pin 6
0;    -> Wert 0

....   weitere Werte
#e    -> Datenpaket ende




Gruß
-SBond-
« Last Edit: April 15, 2013, 05:43:04 pm by SBond » Logged

Offline Offline
Newbie
*
Karma: 7
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

<Reserviert für die Dokumentation>
Logged

Offline Offline
Newbie
*
Karma: 7
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

<Reserviert für Versionshistory & sonstiges>
Logged

Pages: [1]   Go Up
Jump to: