- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 68

Thema: Arduino am Windows-PC: GUI zur Fernsteuerung und zum Messwerte anzeigen (per USB)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    hallo,
    danke für deinen Post, allerdings: das klingt nun doch komplizierter als gedacht.
    Mit der USB/COM-Schnittstelle habe ich mich absolut überhaupt nicht näher beschäftigt, ich nutze sie einfach so, wie sie ist, daher ist sie für mich genau so gut oder schlecht oder grausam wie alles andere - halt eine Blackbox.... .
    Für meine Raspi-Arduino-Kommunikation nutze ich feste arrays, die außer einem Start- und einem optional Ende-Byte (0xff bzw. 0xfe) noch eine chksum und ein ack byte enthält. Das klappt absolut fehlerfrei, sogar in einem eigenen pthread Thread neben vielen anderen parallel laufenden, und das auch wenn man die Verbindung unterbricht (USB-Kabel oder BT HC06 über CH341 Adapter)
    - wie du am Borland-Code sehen kannst, mache ich das fürs Senden mit BCB noch nicht, und Empfangen steht ja eh noch auf der todo-Liste.
    Windows mit Borland GUI ist ja noch absolutes Neuland (habe nur vor ein paar Jahrzehnten mal ein wenig damit herumgespielt),

    Falls jemand also speziellen Borland-Programmcode für mein bisheriges Programm dazu hat: gerne immer her damit. Andere Programme oder Plattformen zum Vergleich bringen mir ehrlich gesagt hingegen allerdings momentan nicht so viel, um weiter zu kommen.

    Zum regelmäßigen wiederholten Abruf von Daten in einer loop (in Arduino Scheduler oder per GCC MT Endlos-thread auf dem Pi sehr einfach) brauche ich aber dann auch dieses MT TThread fürs BCB GUI, und auch das ist ja überhaupt noch nicht gelöst.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Für die allermeisten Anwendungen reicht auch eine "Blackbox", welche die entsprechnde Funktionalität für RS232 zur Verfügung stellt,
    habe lange Jahre auch eine fertige Komponente genommen.

    Der Borland C++ Builder sieht ja aus wie mein Lazarus bzw. Delphi.
    Wie ich dem Video entnehmen kann, scheint das handeln mit der RS232 ja damit supi einfach zu sein.
    Damit solltest Du recht schnelle Erfolge erzielen können.


    Siro

    Habe mir die IDE grad mal runtergeladen, bekomme sie aber leider nicht installiert.
    Damit sind leider keine weitern Versuche möglich. Die erste .iso Datei hab ich angeklickt, dann will er irgendwann eine zweite DVD.
    Muss ich die erst auf 2 DVDs brennen ?
    Geändert von Siro (21.01.2019 um 19:09 Uhr)

  3. #3
    HaWe
    Gast
    Zitat Zitat von Siro Beitrag anzeigen
    Habe mir die IDE grad mal runtergeladen, bekomme sie aber leider nicht installiert.
    Damit sind leider keine weitern Versuche möglich. Die erste .iso Datei hab ich angeklickt, dann will er irgendwann eine zweite DVD.
    Muss ich die erst auf 2 DVDs brennen ?
    es existieren 2 iso files in dem Download-Archiv per https://winworldpc.com/product/borland-c-builder/6x

    Borland CPP Builder 6.7z
    Klicke auf die Grafik für eine größere Ansicht

Name:	BCB-isoFiles.jpg
Hits:	5
Größe:	39,0 KB
ID:	33945

    jeweils für 1 CD-ROM, die man nacheinander brennen kann.
    Ich habe dann die 1. CD eingelegt, dann fragt er nach Lizenzdaten (stehen auch in dem 7z Arrchiv in serial.txt), dann installiert er sie, dann verlangt er die 2.CD, und nach CD-Austausch läuft die Installation dann störungsfrei bis zum Ende.


    TThread für BCB MT scheint aber auch echt ein Problem zu sein, extrem schwierig und derzeit völlig unverständlich ...
    Geändert von HaWe (21.01.2019 um 19:33 Uhr)

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Installation hat geklappt, habe die CDs gebrannt. Man muss die IDE aber immer mit Administratorrechten starten.

    Nun fehlt die Komponente CPort.
    Ich habe die "comport411f.zip" runtergeladen, weis nicht ob das richtig ist und auch nicht wie man die dann installiert.

    TThread brauchst Du meiner Meinung nach nicht. Ich wüste zumindest nicht wofür.
    Die serielle Schnittstelle läuft in einem eigenen Thread.

    Du müstet jetzt die Eigenschaft OnRxChar im Objektinspector haben.
    Dort doppelt klicken und dann in die Funktion reinschreiben was passieren soll wenn ein Zeichen empfangen wurde.
    Zum Testen erstmal das Zeichen anzeigen, das mache ich meisten in Form->caption

    Siro
    Geändert von Siro (21.01.2019 um 21:15 Uhr)

  5. #5
    HaWe
    Gast
    hallo,
    ja, den COM Port habe ich hier nach installiert:
    https://github.com/dsyleixa/Borland-...master/sources
    https://github.com/dsyleixa/Borland-...omport411f.zip
    Installation:
    http://perso.wanadoo.es/pictob/tcomport.htm

    In dem Github Ordner stehen auch noch ein paar weitere Infos dazu.

    später sollen dann aber die seriellen Nachrichten vom Arduino nicht nur empfangen, sondern auch ausgewertet werden (Anzeige aller inputs als "Lämpchen", die gesendeten analogen Werte auch in Zahlenform (int/float/double), und ausgerechnete Werte sollen uU auch - allgemein formuliert - z.B. in einem Graphen immer entsprechend frisch simultan aktualisiert werden können. Das Aktualisieren und Weiterverarbeiten kann sehr schnell nötig sein, je nachdem, wie schnell die Werte eintreffen, und die Verarbeitung darf andere Funktionen nicht blockieren, daher plante ich MT mit TThread.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Hallo HaWe, Danke Dir für die Info,
    ich probier heute Abend nochmal ob ich die RS232 zum Laufen bzw. installiert bekomme.

    Ich glaube um Geschwindigkeit brauchst Du Dir vorerst keine Gedanken machen, das die PC System Resourcen nicht ausreichen.
    Mit 9600 Baud kannst Du garnicht sowviel schicken als dass der PC nicht hinterher kommt.

    Ich arbeite mit 115200 Baud und die Daten sind auch gut "eng" gerückt, da bleibt eigentlich nicht viel Spielraum,
    habe aber trotzdem nur einen Thread, (außer dem seriellen, der ergibt sich von selbst durch die Komponente,)
    Ich hatte aber anfangs auch einige Probleme wie ich das sinnvol organisiere.

    Bei mir laufen ja 1000 Messwerte auf 4 Kanälen gleichzeitig pro Sekunde und die werden auch Kurvenmässig optisch zumindest ohne Verzörung
    dargestellt. Anfangs hatte ich versucht nach jedem Messwert die Kurve neu zu zeichnen, das ist natürlich SEHR aufwändig und gerät ins stocken.
    Nun laufen die Messwerte in einen Puffer.

    Auf dem Formular habe ich einen Timerkomponente (zu finden in der Palette System TTimer) gesetzt, die dann auf 100 Millisekunden gesetzt wird.
    Dies Löst dann lediglich bei OnTimer ein Form.Invalidate aus, was ein Neuzeichnen bewirkt.
    Die eigentliche Zeichnerei der Kurven findet dann nur in Form.OnPaint statt.

    Hier ist meine CPU jetzt aber auch gut ausgelastet. (zumindest ein Kern) Wenn man das Fenster größer oder kleiner macht, während das Program läuft kann man im Taskmanager gut sehen
    wie die Auslastung fällt bei kleinerem Fenster.
    Alles was am meisten Resourcen frist, ist das Paint, bei den anderen Dingen auswerten, rechnen was auch immer, langweilt sich die CPU nur...

    Siro

  7. #7
    HaWe
    Gast
    Danke fürs Mitmachen!
    habe inzwischen baud auf 115200 gesetzt als default (für Arduino Due), mit Mega geht evt auch noch mehr.

  8. #8
    HaWe
    Gast
    hallo,
    ich habe jetzt ein Terminal-Fenster eingebunden, und die vom Arduino gesendeten Strings werden auch automatisch nacheinander angezeigt.

    Der Empfangs-String müsste dann jetzt noch irgendwie zwischengespeichert werden, zur weiteren Auswertung.


    Der Arduino-Sende-Code sieht so aus:

    Code:
    #define MSGLEN 256
    char    cbuf[MSGLEN];  // cstring buffer
    
        int a0, a1, a2, a3;
        a0=analogRead(A0);
        a1=analogRead(A1);
        a2=analogRead(A2);
        a3=analogRead(A3);
    
        sprintf(cbuf, "&a0=%d;&a1=%d;&a2=%d;&a3=%d;", a0,a1,a2,a3);
        Serial.println(cbuf);
        strcpy(cbuf, "");

    Klicke auf die Grafik für eine größere Ansicht

Name:	BCB_Arduino_103.jpg
Hits:	6
Größe:	42,2 KB
ID:	33947

    vollständiger Arduino-Code und alle BCB-Projektdateien hier:
    https://github.com/dsyleixa/Borland-...jects/103_test

    - - - Aktualisiert - - -

    update, vorheriger "Fehler" lag am Arduino-Code.
    Es bleibt nur dies zu tun:
    Der Empfangs-String müsste dann noch irgendwie zwischengespeichert werden, zur weiteren Auswertung.

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Okay, ich bin gescheitert,
    ich bekomme es nicht installiert, da fehlt mir wohl einiges an Hintergrundwissen.

    Siro

  10. #10
    HaWe
    Gast
    Zitat Zitat von Siro Beitrag anzeigen
    Okay, ich bin gescheitert,
    ich bekomme es nicht installiert, da fehlt mir wohl einiges an Hintergrundwissen.

    Siro
    ich habe einfach nur die (spanische) Anleitung Schritt für Schritt befolgt, und danach die paar Patches, wo erst etwas auskommentiert und dann ein paar Dateien umkopiert werden mussten....

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. ISP-Programmer für Arduino, Bascom und AVR-Studio unter Windows 10
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 05.04.2016, 10:40
  2. Zwei Arduino Entwicklungsumgebungen unter Windows?
    Von Frank im Forum Arduino -Plattform
    Antworten: 5
    Letzter Beitrag: 13.04.2014, 22:17
  3. Messwerte als farbige Linien und GPS Koordinaten mit Google Earth anzeigen
    Von wkrug im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 17.04.2012, 07:54
  4. Windows-Treiberproblem mit Arduino
    Von wvtee im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 2
    Letzter Beitrag: 28.12.2011, 08:38
  5. Messwerte über ADC im LCD anzeigen
    Von newbie1982 im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 03.07.2008, 07:28

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress