0% found this document useful (0 votes)
22 views7 pages

Output Code

The document defines a GUI application for controlling a robotic arm via a serial port. It creates a main window with sections to connect/disconnect from the serial port, enable/disable joints, jog joints with +/- buttons, and set movement parameters. Entry boxes and buttons are defined to send joint position data to the serial port. Additional sections allow calibrating joints, saving waypoints, and displaying example photos.

Uploaded by

Nguyen Van Thien
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views7 pages

Output Code

The document defines a GUI application for controlling a robotic arm via a serial port. It creates a main window with sections to connect/disconnect from the serial port, enable/disable joints, jog joints with +/- buttons, and set movement parameters. Entry boxes and buttons are defined to send joint position data to the serial port. Additional sections allow calibrating joints, saving waypoints, and displaying example photos.

Uploaded by

Nguyen Van Thien
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

import serial

import tkinter as tk
from tkinter import messagebox

class Form1(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title("TestiSerial")
self.geometry("500x600")

self.serial_port = serial.Serial()
self.components = None

self.create_widgets()

def create_widgets(self):
self.groupBox1 = tk.LabelFrame(self, text="Connection")
self.groupBox1.pack(pady=10)

self.disconnect = tk.Button(self.groupBox1, text="Disconnect",


command=self.disconnect_click)
self.disconnect.pack(pady=5)

self.connect = tk.Button(self.groupBox1, text="Connect",


command=self.connect_click)
self.connect.pack(pady=5)

self.comboBox1 = tk.StringVar()
self.comboBox1.set("COM1")
self.combo_box = tk.OptionMenu(self.groupBox1, self.comboBox1, "COM1",
"COM2", "COM3")
self.combo_box.pack(pady=5)

self.groupBox2 = tk.LabelFrame(self, text="Stepper ON/OFF")


self.groupBox2.pack(pady=10)

self.enable_all = tk.Button(self.groupBox2, text="Enable all",


command=self.enable_all_click)
self.enable_all.pack(pady=5)

self.checkJ6 = tk.Checkbutton(self.groupBox2, text="Enable J6")


self.checkJ6.pack(pady=5)

self.checkJ5 = tk.Checkbutton(self.groupBox2, text="Enable J5")


self.checkJ5.pack(pady=5)

self.checkJ4 = tk.Checkbutton(self.groupBox2, text="Enable J4")


self.checkJ4.pack(pady=5)

self.checkJ3 = tk.Checkbutton(self.groupBox2, text="Enable J3")


self.checkJ3.pack(pady=5)

self.checkJ2 = tk.Checkbutton(self.groupBox2, text="Enable J2")


self.checkJ2.pack(pady=5)

self.checkJ1 = tk.Checkbutton(self.groupBox2, text="Enable J1")


self.checkJ1.pack(pady=5)

self.groupBox3 = tk.LabelFrame(self, text="Jog joints")


self.groupBox3.pack(pady=10)

self.send_data = tk.Button(self.groupBox3, text="Drive joints to values",


command=self.send_data_click)
self.send_data.pack(pady=5)

self.J6Box = tk.Entry(self.groupBox3)
self.J6Box.pack(pady=5)

self.J5Box = tk.Entry(self.groupBox3)
self.J5Box.pack(pady=5)

self.J4Box = tk.Entry(self.groupBox3)
self.J4Box.pack(pady=5)

self.J6PlusBtn = tk.Button(self.groupBox3, text="J6 +",


command=self.J6_plus_btn_click)
self.J6PlusBtn.pack(pady=5)

self.J5PlusBtn = tk.Button(self.groupBox3, text="J5 +",


command=self.J5_plus_btn_click)
self.J5PlusBtn.pack(pady=5)

self.J4PlusBtn = tk.Button(self.groupBox3, text="J4 +",


command=self.J4_plus_btn_click)
self.J4PlusBtn.pack(pady=5)

self.J6MinusBtn = tk.Button(self.groupBox3, text="J6 -",


command=self.J6_minus_btn_click)
self.J6MinusBtn.pack(pady=5)

self.J5MinusBtn = tk.Button(self.groupBox3, text="J5 -",


command=self.J5_minus_btn_click)
self.J5MinusBtn.pack(pady=5)

self.J4MinusBtn = tk.Button(self.groupBox3, text="J4 -",


command=self.J4_minus_btn_click)
self.J4MinusBtn.pack(pady=5)

self.J3Box = tk.Entry(self.groupBox3)
self.J3Box.pack(pady=5)

self.J3PlusBtn = tk.Button(self.groupBox3, text="J3 +",


command=self.J3_plus_btn_click)
self.J3PlusBtn.pack(pady=5)

self.J2Box = tk.Entry(self.groupBox3)
self.J2Box.pack(pady=5)

self.J3MinusBtn = tk.Button(self.groupBox3, text="J3 -",


command=self.J3_minus_btn_click)
self.J3MinusBtn.pack(pady=5)

self.J1MinusBtn = tk.Button(self.groupBox3, text="J1 -",


command=self.J1_minus_btn_click)
self.J1MinusBtn.pack(pady=5)

self.J2PlusBtn = tk.Button(self.groupBox3, text="J2 +",


command=self.J2_plus_btn_click)
self.J2PlusBtn.pack(pady=5)

self.J1PlusBtn = tk.Button(self.groupBox3, text="J1 +",


command=self.J1_plus_btn_click)
self.J1PlusBtn.pack(pady=5)

self.J2MinusBtn = tk.Button(self.groupBox3, text="J2 -",


command=self.J2_minus_btn_click)
self.J2MinusBtn.pack(pady=5)
self.title("Form1")
self.geometry("857x706")

self.groupBox1 = ttk.LabelFrame(self, text="Connection")


self.groupBox1.pack()

self.disconnect = ttk.Button(self.groupBox1, text="Disconnect")


self.disconnect.pack(side=tk.LEFT)

self.connect = ttk.Button(self.groupBox1, text="Connect")


self.connect.pack(side=tk.LEFT)

self.comboBox1 = ttk.Combobox(self.groupBox1)
self.comboBox1.pack(side=tk.LEFT)

self.groupBox2 = ttk.LabelFrame(self, text="Serial Port")


self.groupBox2.pack()

self.serialPort1 = None

self.J1Box = ttk.Entry(self.groupBox2)
self.J1Box.pack()

self.groupBox3 = ttk.LabelFrame(self, text="Send Data")


self.groupBox3.pack()

self.sendData = ttk.Button(self.groupBox3, text="Send Data")


self.sendData.pack()

self.groupBox5 = ttk.LabelFrame(self, text="Connection status")


self.groupBox5.pack()

self.comPortStatus = ttk.Label(self.groupBox5, text="OFF", font=("Microsoft


Sans Serif", 20, "bold"), foreground="red")
self.comPortStatus.pack()

self.J1MinusBtn = ttk.Button(self, text="J1 -")


self.J1MinusBtn.pack()

self.J1PlusBtn = ttk.Button(self, text="J1 +")


self.J1PlusBtn.pack()

self.checkJ1 = ttk.Checkbutton(self, text="J1")


self.checkJ1.pack()

self.checkJ6 = ttk.Checkbutton(self, text="J6")


self.checkJ6.pack()

self.checkJ5 = ttk.Checkbutton(self, text="J5")


self.checkJ5.pack()
self.checkJ4 = ttk.Checkbutton(self, text="J4")
self.checkJ4.pack()

self.checkJ3 = ttk.Checkbutton(self, text="J3")


self.checkJ3.pack()

self.checkJ2 = ttk.Checkbutton(self, text="J2")


self.checkJ2.pack()

self.J3Box = ttk.Entry(self)
self.J3Box.pack()

self.J3PlusBtn = ttk.Button(self, text="J3 +")


self.J3PlusBtn.pack()

self.J2Box = ttk.Entry(self)
self.J2Box.pack()

self.J3MinusBtn = ttk.Button(self, text="J3 -")


self.J3MinusBtn.pack()

self.J2PlusBtn = ttk.Button(self, text="J2 +")


self.J2PlusBtn.pack()

self.J2MinusBtn = ttk.Button(self, text="J2 -")


self.J2MinusBtn.pack()

self.J6Box = ttk.Entry(self)
self.J6Box.pack()

self.J5Box = ttk.Entry(self)
self.J5Box.pack()

self.J4Box = ttk.Entry(self)
self.J4Box.pack()

self.J6PlusBtn = ttk.Button(self, text="J6 +")


self.J6PlusBtn.pack()

self.J5PlusBtn = ttk.Button(self, text="J5 +")


self.J5PlusBtn.pack()

self.J4PlusBtn = ttk.Button(self, text="J4 +")


self.J4PlusBtn.pack()

self.J6MinusBtn = ttk.Button(self, text="J6 -")


self.J6MinusBtn.pack()

self.J5MinusBtn = ttk.Button(self, text="J5 -")


self.J5MinusBtn.pack()

self.J4MinusBtn = ttk.Button(self, text="J4 -")


self.J4MinusBtn.pack()

self.Parameters = ttk.LabelFrame(self, text="Parameters")


self.Parameters.pack()

self.accelerationBar = ttk.Scale(self.Parameters, from_=1, to=100)


self.accelerationBar.pack()

self.label2 = ttk.Label(self.Parameters, text="Acceleration")


self.label2.pack()

self.label1 = ttk.Label(self.Parameters, text="Speed")


self.label1.pack()

self.speedBar = ttk.Scale(self.Parameters, from_=1, to=10)


self.speedBar.pack()

self.examplePicture = ttk.Label(self, image=None)


self.examplePicture.pack()

self.groupBox6 = ttk.LabelFrame(self, text="Example photo")


self.groupBox6.pack()

self.groupBox7 = ttk.LabelFrame(self, text="Calibrate joints")


self.groupBox7.pack()

self.calAll = ttk.Button(self.groupBox7, text="Auto calibrate all")


self.calAll.pack()

self.calJ6 = ttk.Button(self.groupBox7, text="Calibrate J6")


self.calJ6.pack()

self.calJ5 = ttk.Button(self.groupBox7, text="Calibrate J5")


self.calJ5.pack()

self.calJ4 = ttk.Button(self.groupBox7, text="Calibrate J4")


self.calJ4.pack()

self.calJ3 = ttk.Button(self.groupBox7, text="Calibrate J3")


self.calJ3.pack()

self.calJ2 = ttk.Button(self.groupBox7, text="Calibrate J2")


self.calJ2.pack()

self.calJ1 = ttk.Button(self.groupBox7, text="Calibrate J1")


self.calJ1.pack()

self.timer1 = None

self.SaveWP1 = ttk.Button(self, text="Save WP1")


self.SaveWP1.pack()

self.SaveWP2 = ttk.Button(self, text="Save WP2")


self.SaveWP2.pack()

self.PLAY = ttk.Button(self, text="PLAY")


self.PLAY.pack()

self.SaveWP3 = ttk.Button(self, text="Save WP3")


self.SaveWP3.pack()

self.disableAll = ttk.Button(self.groupBox7, text="Disable all")


self.disableAll.pack()
def disconnect_click(self):
self.serial_port.close()
messagebox.showinfo("Disconnected", "Serial port disconnected.")

def connect_click(self):
self.serial_port.port = self.comboBox1.get()
self.serial_port.baudrate = 115200
self.serial_port.open()
messagebox.showinfo("Connected", "Serial port connected.")

def enable_all_click(self):
self.checkJ6.select()
self.checkJ5.select()
self.checkJ4.select()
self.checkJ3.select()
self.checkJ2.select()
self.checkJ1.select()

def send_data_click(self):
j1_value = self.J1Box.get()
j2_value = self.J2Box.get()
j3_value = self.J3Box.get()
j4_value = self.J4Box.get()
j5_value = self.J5Box.get()
j6_value = self.J6Box.get()

# Send data to the serial port

def J6_plus_btn_click(self):
pass

def J5_plus_btn_click(self):
pass

def J4_plus_btn_click(self):
pass

def J6_minus_btn_click(self):
pass

def J5_minus_btn_click(self):
pass

def J4_minus_btn_click(self):
pass

def J3_plus_btn_click(self):
pass

def J3_minus_btn_click(self):
pass

def J1_minus_btn_click(self):
pass

def J2_plus_btn_click(self):
pass
def J1_plus_btn_click(self):
pass

def J2_minus_btn_click(self):
pass

if __name__ == "__main__":
app = Form1()
app.mainloop()

You might also like