weiter
This commit is contained in:
parent
0200b8e5e5
commit
5f30bee45f
@ -39,22 +39,28 @@ class LabPip(LabPis):
|
||||
def sendE(self):
|
||||
return f'<G1 P{self.e} F{self.fe}>\n'
|
||||
|
||||
def sendXYZ(self):
|
||||
return f'<G1 X{self.x} Y{self.y} Z{self.z} F{self.fe}>\n'
|
||||
def sendXY(self):
|
||||
print(f'<G1 X{self.x} Y{self.y} F{self.fe}>\n')
|
||||
return f'<G1 X{self.x} Y{self.y} F{self.fe}>\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'<G1 Z0 F{self.fe}>\n')
|
||||
return f'<G1 Z0 F{self.fe}>\n'
|
||||
|
||||
def down(self):
|
||||
return f'<G1 Z{self.z} F{self.fe}>\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):
|
||||
|
||||
123
gui/ser_one.py
123
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('<<ComboboxSelected>>',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'<G28>\n')
|
||||
@ -35,24 +47,77 @@ def homeY():
|
||||
serialObj.write(b'<JY>\n')
|
||||
def homeZ():
|
||||
serialObj.write(b'<JZ>\n')
|
||||
def homeP():
|
||||
serialObj.write(b'<JP>\n')
|
||||
def getPos():
|
||||
serialObj.write(b'<J2>\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"))
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user