Compare commits

...

33 Commits

Author SHA1 Message Date
5685eebe2c Merge pull request 'feature_lsp_com' (#9) from feature_lsp_com into main
Reviewed-on: https://gitea.msb24.duckdns.org/musabe24/t2000_gui/pulls/9
2024-07-22 12:15:25 +02:00
f2ed9c9724 typo fix 2024-07-22 12:14:50 +02:00
db17fbc1d9 Optimierung LSP Schnittstelle 2024-07-22 12:12:56 +02:00
451cd9bc68 Optimierung der LSP Schnittstelle 2024-07-22 11:55:41 +02:00
f8d788d92e Optimierung der LSP Schnittstelle 2024-07-22 11:54:12 +02:00
b1ceb7c913 Optimierung der LSP Schnittstelle 2024-07-22 11:53:03 +02:00
ac2180b041 Optimierung der LSP Schnittstelle 2024-07-22 11:51:11 +02:00
729bf18aec Optimierung der LSP Schnittstelle 2024-07-22 11:49:23 +02:00
6013acc226 Optimierung der LSP Schnittstelle 2024-07-22 11:47:42 +02:00
945e088667 Optimierung der LSP Schnittstelle 2024-07-22 11:45:38 +02:00
8269b5112f Optimierung der LSP Schnittstelle 2024-07-22 11:43:21 +02:00
582bdec6c5 Optimierung der LSP Schnittstelle 2024-07-22 11:41:57 +02:00
74c7746142 Optimierung der LSP Schnittstelle 2024-07-22 11:09:36 +02:00
1a1f228b69 Merge pull request 'feature_lsp_com' (#8) from feature_lsp_com into main
Reviewed-on: https://gitea.msb24.duckdns.org/musabe24/t2000_gui/pulls/8
2024-07-18 12:26:57 +02:00
a099481b3e LSP Kommunikation optimiert 2024-07-18 11:51:09 +02:00
ffce232d47 optimierung 2024-07-18 10:38:33 +02:00
87d012086b optimierung 2024-07-18 10:36:56 +02:00
7456e7f02a optimierung 2024-07-18 10:32:00 +02:00
9dbe3e1f5d optimierung 2024-07-18 10:29:01 +02:00
c8d8118d98 optimierung 2024-07-18 10:26:26 +02:00
4b093e86de optimierung 2024-07-18 10:22:42 +02:00
083767f626 optimierung 2024-07-18 10:20:21 +02:00
b081c33748 optimierung 2024-07-18 10:19:24 +02:00
eae3d4bae1 optimierung 2024-07-18 10:15:42 +02:00
5531952667 optimierung 2024-07-18 10:13:42 +02:00
48d347fb06 optimierung 2024-07-18 10:12:05 +02:00
be2a4a8c24 optimierung 2024-07-18 10:08:53 +02:00
8efc607e03 optimierung 2024-07-18 10:07:29 +02:00
6e717027c6 optimierung 2024-07-18 10:06:11 +02:00
8686a8ef19 lsp kommunikation optimierung 2024-07-18 10:04:00 +02:00
deb7f54bfb LSP Kommunikation verbessert. 2024-07-18 09:56:56 +02:00
678357b838 USB Kommunikation zur LSP1 eingeführt. 2024-07-17 16:38:07 +02:00
bcb45f3174 Beispiel Kennlinien eingeführt. 2024-07-17 15:22:01 +02:00
5 changed files with 1041 additions and 2882 deletions

View File

@@ -0,0 +1,91 @@
0;10.0
1;10.7
2;11.4
3;12.0
4;12.6
5;13.2
6;13.7
7;14.1
8;14.5
9;14.8
10;14.9
11;15.0
12;15.0
13;14.9
14;14.6
15;14.3
16;13.9
17;13.5
18;12.9
19;12.3
20;11.7
21;11.0
22;10.3
23;9.7
24;9.0
25;8.3
26;7.7
27;7.1
28;6.5
29;6.1
30;5.7
31;5.4
32;5.1
33;5.0
34;5.0
35;5.1
36;5.2
37;5.5
38;5.9
39;6.3
40;6.8
41;7.4
42;8.0
43;8.6
44;9.3
45;10.0
46;10.7
47;11.4
48;12.0
49;12.6
50;13.2
51;13.7
52;14.1
53;14.5
54;14.8
55;14.9
56;15.0
57;15.0
58;14.9
59;14.6
60;14.3
61;13.9
62;13.5
63;12.9
64;12.3
65;11.7
66;11.0
67;10.3
68;9.7
69;9.0
70;8.3
71;7.7
72;7.1
73;6.5
74;6.1
75;5.7
76;5.4
77;5.1
78;5.0
79;5.0
80;5.1
81;5.2
82;5.5
83;5.9
84;6.3
85;6.8
86;7.4
87;8.0
88;8.6
89;9.3
90;10.0

View File

@@ -0,0 +1,30 @@
0;0
4.9;0
5;5
9.9;5
10;7
14.9;7
15;10
19.9;10
20;12
24.9;12
25;15
29.9;15
30;17
34.9;17
35;15
39.9;15
40;12
44.9;12
45;10
49.9;10
50;7
54.9;7
55;5
59.9;5
60;0
69.9;0
70;15
79.9;15
80;0
90;0

3728
Data.csv

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@
} }
227C-024-15 PID_Regler 2{ 227C-024-15 PID_Regler 2{
Kp:0.11 Kp:0.11
Ki:0.08 Ki:0.09
Kd:0.00 Kd:0.00
} }
227C-024-15 I-Regler{ 227C-024-15 I-Regler{

66
main.py
View File

@@ -11,6 +11,7 @@ import threading
import time import time
import numpy as np import numpy as np
import csv import csv
import os
class ArduinoGUI: class ArduinoGUI:
def __init__(self, root): def __init__(self, root):
@@ -19,6 +20,8 @@ class ArduinoGUI:
self.root.title("PRG 342 GUI") self.root.title("PRG 342 GUI")
self.root.attributes('-fullscreen', True) # Setzt das Fenster in den Vollbildmodus self.root.attributes('-fullscreen', True) # Setzt das Fenster in den Vollbildmodus
self.ser = None
self.arduino = None self.arduino = None
self.ports = list(serial.tools.list_ports.comports()) self.ports = list(serial.tools.list_ports.comports())
self.running = True self.running = True
@@ -158,6 +161,8 @@ class ArduinoGUI:
self.current_angle = 0 self.current_angle = 0
self.current_torque = 0 self.current_torque = 0
self.analogInput = 0 self.analogInput = 0
self.currentSetpoint = 0
self.currentOutput = 0
self.angle_label_var = customtkinter.StringVar() self.angle_label_var = customtkinter.StringVar()
self.angle_label_var.set("Drehwinkel: 0") self.angle_label_var.set("Drehwinkel: 0")
@@ -242,6 +247,38 @@ class ArduinoGUI:
else: else:
messagebox.showwarning("Warnung", "Bitte einen COM-Port auswählen") messagebox.showwarning("Warnung", "Bitte einen COM-Port auswählen")
def connect_lsp(self):
try:
ports = serial.tools.list_ports.comports()
used_ports = [port.device for port in ports]
serPort = None
if os.name == 'nt':
for i in range(1, 257):
port = f'(COM{i}'
if (port not in used_ports) and (serPort == None):
serPort = port
pass
else:
for i in range(256):
port = f'/dev/ttyS{i}'
if (port not in used_ports) and (serPort == None):
serPort = port
pass
for i in range(256):
port = f'/dev/ttyUSB{i}'
if (port not in used_ports) and (serPort == None):
serPort = port
pass
if serPort != None:
self.ser = serial.Serial(serPort, 9600, timeout=1)
print(F"Slave Port bereit an {serPort}")
except Exception as e:
print(F"Fehler beim Öffnen des Slave Ports an {serPort}")
pass
def set_setpoint(self): def set_setpoint(self):
if self.arduino: if self.arduino:
try: try:
@@ -400,7 +437,34 @@ class ArduinoGUI:
self.csv_writer.writerow([formatted_time, formatted_angle, formatted_setpoint, formatted_torque, formatted_output]) self.csv_writer.writerow([formatted_time, formatted_angle, formatted_setpoint, formatted_torque, formatted_output])
except Exception as e:
print(e)
if self.ser:
if self.ser.in_waiting:
try:
command = ""
while self.ser.in_waiting:
command += self.ser.read(1).decode(errors='ignore').strip()
if command[0] == 'a':
message = f"{self.current_angle};{self.current_torque};{self.analogInput};{self.currentSetpoint};{self.currentOutput}\n"
self.ser.write(message.encode())
if command[0] == 'w':
self.tare_angle()
if command[0] == 'u':
outCommand = F"command: {command}\n"
self.arduino.write(outCommand.encode())
time.sleep(0.1)
self.ser.read()
except Exception as e:
print(e)
#self.ser.write(b'Hallo\n')
else :
try:
pass
self.connect_lsp()
except Exception as e: except Exception as e:
print(e) print(e)
@@ -425,6 +489,8 @@ class ArduinoGUI:
self.running = False self.running = False
if self.arduino: if self.arduino:
self.arduino.close() self.arduino.close()
if self.ser:
self.ser.close()
self.root.quit() self.root.quit()
self.root.destroy() self.root.destroy()