diff --git a/gui/labrobot.py b/gui/labrobot.py index 5f68d56..d9e8769 100644 --- a/gui/labrobot.py +++ b/gui/labrobot.py @@ -39,22 +39,28 @@ class LabPip(LabPis): def sendE(self): return f'\n' - def sendXYZ(self): - return f'\n' + def sendXY(self): + print(f'\n') + return f'\n' def go_top(self): self.e=self.top return self.sendE() def get_tip(self,l): + self.up() self.x = l[0] self.y = l[1] self.z = l[2] - return self.go_top() + self.sendXYZ() + return self.sendXY() def up(self): - self.z = 0 - return self.sendXYZ() + print(f'\n') + return f'\n' + + def down(self): + return f'\n' + class LabPipBlock(): @@ -84,8 +90,8 @@ class LabPipBlock(): m = self.akt % r # column c = self.akt // r # row self.akt += 1 - x = self.xoffset + (m * self.deltax/self.columns) - y = self.yoffset + (c * self.deltay/self.rows) + x = self.xoffset + (m * self.deltax/(self.columns-1)) + y = self.yoffset + (c * self.deltay/(self.rows)) return x,y,self.z @@ -95,7 +101,7 @@ class LabPipBlock(): #a1 = LabPis(100,100,100,1) #p1 = LabPis() if __name__ == '__main__': - lpb = LabPipBlock(16,1,78,20,5,116,86) + lpb = LabPipBlock(16,1,78,20,5,108,86) pip = LabPip(vol=500) pip.fe =5000 for i in range(20): diff --git a/gui/ser_one.py b/gui/ser_one.py index 058362b..e9dd536 100644 --- a/gui/ser_one.py +++ b/gui/ser_one.py @@ -1,31 +1,43 @@ -from tkinter import * +import tkinter as tk import serial.tools.list_ports import functools +import tkinter.ttk as ttk + +import labrobot as lrb + ports = serial.tools.list_ports.comports() serialObj = serial.Serial() -root = Tk() -root.config(bg='grey') +root = tk.Tk() +root.config(bg='#b7f731') -def initComPort(index): - currentPort = str(ports[index]) - comPortVar = str(currentPort.split(' ')[0]) - serialObj.port = comPortVar - serialObj.baudrate = 9600 + +def serial_ports(): + return serial.tools.list_ports.comports() + +def on_select(event=None): + serialObj.port = cb.get().split(' ')[0] + serialObj.baudrate = 115200 serialObj.open() -for onePort in ports: - comButton = Button(root,text=onePort,font=('Calibri','8'),height=1, width=45,command=functools.partial(initComPort,index=ports.index(onePort))) - comButton.grid(row=ports.index(onePort),column=0) +cb =ttk.Combobox(root,values=serial_ports()) +cb.grid(row=0,column=0,stick="we") +cb.bind('<>',on_select) -dataCanvas = Canvas(root,width=600,height=400, bg='white') -dataCanvas.grid(row=0, column=1,rowspan=100) -vsb = Scrollbar(root,orient='vertical',command= dataCanvas.yview) -vsb.grid(row=0,column=2,rowspan=100,sticky='ns') -dataCanvas.config(yscrollcommand=vsb.set) -dataFrame = Frame(dataCanvas,bg='white') -dataCanvas.create_window((10,0),window=dataFrame,anchor='nw') +scb =tk.Scrollbar(root) +scb.grid(row=1,column=1,rowspan=10,sticky='ns') +txt = tk.Text(root,height=20,width=50) +txt.grid(row=1,column=0,rowspan=10) +scb.config(command=txt.yview) +txt.config(yscrollcommand=scb.set) +txt.tag_configure('small',font=('Verdana',8),foreground='black') + + +## init Labrobot +lpb = lrb.LabPipBlock(15,1,70,50,5,108,86) +pip = lrb.LabPip(vol=1000,top=22) +pip.fe =5000 def homeAll(): serialObj.write(b'\n') @@ -34,25 +46,78 @@ def homeX(): def homeY(): serialObj.write(b'\n') def homeZ(): - serialObj.write(b'\n') + serialObj.write(b'\n') +def homeP(): + serialObj.write(b'\n') +def getPos(): + serialObj.write(b'\n') +def do_gcode(): + s = e1.get() + s = s + '\n' + print(s) + serialObj.write(s.encode('utf-8')) -b1 = Button(root,text='Home All',command=homeAll) -b1.grid(row=0,column=3) -b2 = Button(root,text='Home X',command=homeX) -b2.grid(row=1,column=3) -b3 = Button(root,text='Home Y',command=homeY) -b3.grid(row=2,column=3) -b4 = Button(root,text='Home Z',command=homeZ) -b4.grid(row=3,column=3) +def upTip(): + serialObj.write(pip.up().encode('utf-8')) + +def downTip(): + serialObj.write(pip.down().encode('utf-8')) + +def nextTip(): + upTip() + serialObj.write(pip.get_tip(lpb.next()).encode('utf-8')) + downTip() + + +b1 = tk.Button(root,bg='#000000', + fg='#b7f731', + relief='flat',text='Home All',width=12,command=homeAll) +b1.grid(row=0,column=2,sticky='nw') +b2 = tk.Button(root,bg='#000000', + fg='#b7f731', + relief='flat',text='Home X',width=12,command=homeX) +b2.grid(row=1,column=2,sticky='nw') +b3 = tk.Button(root,bg='#000000', + fg='#b7f731', + relief='flat',text='Home Y',width=12,command=homeY) +b3.grid(row=2,column=2,sticky='nw') +b4 = tk.Button(root,bg='#000000', + fg='#b7f731', + relief='flat',text='Home Z',width=12,command=homeZ) +b4.grid(row=3,column=2,sticky='nw') +b6 = tk.Button(root,bg='#000000', + fg='#b7f731', + relief='flat',text='Home P',width=12,command=homeP) +b6.grid(row=4,column=2,sticky='nw') +b7 = tk.Button(root,bg='#000000', + fg='#b7f731', + relief='flat',text='Get Position',width=12,command=getPos) +b7.grid(row=5,column=2,sticky='nw') + +l1 = tk.Label(root,bg='#000000', + fg='#b7f731', + relief='flat',text="Enter G-Code") +l1.grid(row=0,column=3) + +e1 = tk.Entry(root) +e1.grid(row=0,column=4) +b5 = tk.Button(root,bg='#000000', + fg='#b7f731', + relief='flat',text='Send Code',command=do_gcode) +b5.grid(row=1,column=4,sticky="ne") + +b8 = tk.Button(root,bg='#000000', fg='blue',relief='flat',text='Next Tip',command=nextTip) +b8.grid(row=2,column=4,sticky='ne') def checkSerialPort(): if serialObj.isOpen() and serialObj.in_waiting: recentPacket = serialObj.readline() - recentPacketString = recentPacket.decode('utf').rstrip('\n') - Label(dataFrame,text=recentPacketString).pack() + recentPacketString = recentPacket.decode('utf') + txt.insert('0.1',recentPacketString,'small') + while True: root.update() checkSerialPort() - dataCanvas.config(scrollregion=dataCanvas.bbox("all")) +