Hallo zusammen, ich habe ein wenig mit einem atmega 168 und der Seriellen Schnittstelle am Pc experimentiert, verwendete Software war hterm. Gibt es eine Art GUI Software mit der man Buttons, Eingabefelder, Tastatureingaben per serielle Schnittstelle an den uC schicken kann? Als Beispiel stelle ich mir vor auf dem PC die Pfeiltasten oder einen Software Button zu drücken/klicken, daraufhin wird ein Signal an den uC gesendet und dieser startet zB einen DC Motor oder lässt eine LED leuchten.
bob schrieb: > Hallo zusammen, ich habe ein wenig mit einem atmega 168 und der > Seriellen Schnittstelle am Pc experimentiert, verwendete Software war > hterm. > Gibt es eine Art GUI Software mit der man Buttons, Eingabefelder, > Tastatureingaben per serielle Schnittstelle an den uC schicken kann? > > Als Beispiel stelle ich mir vor auf dem PC die Pfeiltasten oder einen > Software Button zu drücken/klicken, daraufhin wird ein Signal an den uC > gesendet und dieser startet zB einen DC Motor oder lässt eine LED > leuchten. Ich denke nicht das sowas fertig existiert, da jedes Produkt eigene Anforderungen hat. Du kannst es aber mit jeder Programmiersprache ziemlich einfach Implementieren, z.B. Python mit pySerial, Javascript mit NodeJS und serialport, Java mit jSerialComm... Falls du eine GUI willst, kannst du diese z.B. direkt mit Python machen (oder mit einem Frontend), wie z.B. Kivy oder Java und dem integrierten Swing..
In Java oder C# schreiben. Für so einfach Sachen wie eine Pfeiltaste dauert das wirkich nicht lange. mfg
Also brauche ich nur ne Serial Bibliothek für die Sprache meiner Wahl, super danke euch.
bob schrieb: > Gibt es eine Art GUI Software mit der man Buttons, Eingabefelder, > Tastatureingaben per serielle Schnittstelle an den uC schicken kann? Im Grunde genommen (fast) jede beliebige Programmiersprache. Im unteren Drittel der folgenden Seite ist ein Beispiel, wie man mit Qt in 15 Minuten zum ersten Aha-Erlebnis kommt: http://stefanfrings.de/serial_io/index.html Weiter oben auf der selben Seite findest du ein komplexeres Beispielprogramm zum Download. Und links im Navigationsbereich kommst du zu einem Qt Tutorial. Ansonsten ist die Kombination ESP8266 + Web Browser auch handlich, aber dafür muss man schon einiges über die Entwicklung von Web-Anwendungen wissen. Eine Disziplin, die viele Technologien miteinander kombiniert. Ein Beispiel dazu findest du in http://stefanfrings.de/mikrocontroller_buch/index.html Band 3. Ein paar Grundlagen zum HTTP Protokoll vermittelt der Band 2 ab Kapitel 10.
bob schrieb: > Gibt es eine Art GUI Software mit der man Buttons, Eingabefelder, > Tastatureingaben per serielle Schnittstelle an den uC schicken kann? Hallo Bob, ich mache sowas damit: https://www.electronic-software-shop.com/elektronik-software/profilab-expert-40.html?xoid=qcenkch4ki58hql5n76mrl2s85 Schiesst wahrscheinlich über dein Ziel hinaus, funktioniert dafür ohne programmieren. Gruss Uli
Node-Red mit Web-Dashboard Da kann man leicht Buttons generieren und Daten an die serielle Schnittstelle versenden.
Habe ich das jetzt richtig verstanden, Du willst das Aussehen der Oberfläche im µC ablegen und auf dem PC immer das gleiche Programm starten ? Also ein Protokoll irgendwo zwischen VT100 und X11 über die Schnittstelle geben, das das Aussehem der GUI beschreibt ?
Wow danke für die vielen Empfehlungen. Da ist sicher was für mich dabei, werde ich mir anschauen wenn ich dann mal zuhause bin ^^ FOp schrieb: > Habe ich das jetzt richtig verstanden, Du willst das Aussehen der > Oberfläche im µC ablegen und auf dem PC immer das gleiche Programm > starten ? Hallo FOp, nicht ganz. Der uC soll nur Kommandos, im Grunde genommen Zeichenketten,vom PC entgegennehmen und dann etwas damit anstellen. Ich wollte mich nicht nur auf Texteingaben wie es bei zb Hterm der Fall ist beschränken, sondern auch GUI Elemente (Buttons etc.) ins Spiel zu bringen.
bob schrieb: > Der uC soll nur Kommandos, im Grunde genommen > Zeichenketten,vom PC entgegennehmen und dann etwas damit anstellen. Ich > wollte mich nicht nur auf Texteingaben wie es bei zb Hterm der Fall ist > beschränken, sondern auch GUI Elemente (Buttons etc.) ins Spiel zu > bringen. ich habe so was mit Visual Studio in C# entwickelt.
Hi
>ich habe so was mit Visual Studio in C# entwickelt.
Und ich mit Delphi.
MfG Spess
Stefan ⛄ F. schrieb: > Im Grunde genommen (fast) jede beliebige Programmiersprache. > Im unteren Drittel der folgenden Seite ist ein Beispiel, wie man mit Qt > in 15 Minuten zum ersten Aha-Erlebnis kommt: > http://stefanfrings.de/serial_io/index.html > Weiter oben auf der selben Seite findest du ein komplexeres > Beispielprogramm zum Download. Und links im Navigationsbereich kommst du > zu einem Qt Tutorial. Das ist es was ich gesucht habe, super Anleitung. Danke auch für die anderen Vorschläge!
Ralf H. schrieb: > Schau Dir mal Comvisu an: > https://www.mikrocontroller.net/articles/Comvisu > lg. > Ralf Und das hier ist auf alle Fälle auch ne gute Möglichkeit, das Design kann halt nicht mit Qt mithalten :-)
bob schrieb: > Und das hier ist auf alle Fälle auch ne gute Möglichkeit, das Design > kann halt nicht mit Qt mithalten :-) Dafür bietet es Anzeige-Elemente, die man sich in Qt erst selber programmieren müsste.
Stefan ⛄ F. schrieb: > Dafür bietet es Anzeige-Elemente, die man sich in Qt erst selber > programmieren müsste. Ich bin genügsam, mir reichen erstmal 4 Buttons.
Ich wuerde auch Delphi empfehlen, damit dauert es minimal kurz sich ein GUI zusammenzukloppen. Als erstes solltest du dir ein Protokoll ueberlegen, welches in beide Richtungen laeuft und ausbaubar ist.
Qt gibt es als open source version. Aber ist mir zu nervig. ich glaub ich probier es mal mit: https://github.com/vurtun/nuklear https://sigrok.org/wiki/Libserialport ich hab auf auf dem arduino die standard firmata firmware geflasht und kann dann paar (binary/none ascii) midi ähnliche bytes schicken um ne led ein und aus zu machen. hier nen python test um firmata anzusprechen:
1 | import time |
2 | import serial |
3 | |
4 | # Firmata:
|
5 | # https://github.com/firmata/protocol/blob/master/protocol.md
|
6 | |
7 | |
8 | # D13 is Arduino onboard LED
|
9 | D13_output=b'\xF4\x0D\x01' # 0xF4 0x0D 0x01 set pin mode(I/O) 13 OUT |
10 | D13_on=b'\xF5\x0D\x01' # 0xF5 0x0D 0x01 set digital pin value 13 1 |
11 | D13_off=b'\xF5\x0D\x00' # 0xF5 0x0D 0x00 set digital pin value 13 0 |
12 | |
13 | print ("Starting") |
14 | ser = serial.Serial("/dev/ttyUSB0", baudrate=57600, parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS) |
15 | time.sleep(1) # 1 second |
16 | |
17 | #print(D13_output)
|
18 | print("D13_output") |
19 | ser.write(D13_output) |
20 | |
21 | #print(D13_on)
|
22 | print("D13_on") |
23 | ser.write(D13_on) |
24 | |
25 | time.sleep(1) |
26 | #print(D13_off)
|
27 | print("D13_off") |
28 | ser.write(D13_off) |
29 | |
30 | #print ("Returning:")
|
31 | #while ser.inWaiting() > 0:
|
32 | # data = ser.read()
|
33 | # print (data)
|
34 | print ("Exiting program") |
35 | ser.close() |
Oh, das sieht ja fast wie mein Projekt aus: http://stefanfrings.de/serial_io/index.html Mit Qt Beispiel.
Stefan ⛄ F. schrieb: > Oh, das sieht ja fast wie mein Projekt aus: > http://stefanfrings.de/serial_io/index.html Wahrscheinlich hat er das sogar mit einem Deiner AVR Controller gemacht. Unverschämtes Plagiat!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.