Location of XY Robot in Schematic indicated with Red Box | |
---|---|
![]() |
![]() |
![]() |
![]() |
%%HTML
<iframe width="800" height="600" src="https://www.youtube.com/embed/ZY7oguigeaw?si=GicKcmROvM5wW54X" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
%%HTML
<iframe width="800" height="600" src="https://www.youtube.com/embed/Swz0Y9IQSYM?si=0lKPx28TD1u4yCaH" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
%%HTML
<iframe width="800" height="600ß" src="https://www.youtube.com/embed/3rkkOVA7_hY?si=j4Cj_ArSvgFfxjcT" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
%%HTML
<iframe width="800" height="600" src="https://www.youtube.com/embed/VJpTJnRzS0A?si=T2ip4jd6t5EH4I_d" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
%%HTML
<iframe width="800" height="600" src="https://www.youtube.com/embed/Y0F2rObZfUk?si=zKk_Nwn4RqftdBhV" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
import serial
import time
smallDropletCollectionRobotCOM="COM10"
droplet_collector=serial.Serial(smallDropletCollectionRobotCOM,timeout=1,write_timeout=1)
time.sleep(5)
print(droplet_collector.name)
print(droplet_collector.get_settings())
print(droplet_collector.is_open)
if not droplet_collector.is_open:
droplet_collector.open()
time.sleep(5)
COM10 {'baudrate': 9600, 'bytesize': 8, 'parity': 'N', 'stopbits': 1, 'xonxoff': False, 'dsrdtr': False, 'rtscts': False, 'timeout': 1, 'write_timeout': 1, 'inter_byte_timeout': None} True
class droplet_collection():
in_tube=False
current_time_delay_from_home=1000
at_home=True
def __init__(self,servo_angle1,servo_angle2,time_taken_from_home=1000):
self.servo_angle1=servo_angle1
self.servo_angle2=servo_angle2
self.time_taken_from_home=time_taken_from_home
def goToCoordinates(self):
if droplet_collection.in_tube==False and droplet_collection.at_home==True:
droplet_collector.write(("A"+str(self.servo_angle1)+"|W"+str(self.time_taken_from_home)+"|B"+str(self.servo_angle2)+"\n").encode())
droplet_collection.in_tube=True
droplet_collection.current_time_delay_from_home=self.time_taken_from_home
droplet_collection.at_home=False
elif droplet_collection.in_tube==False and droplet_collection.at_home==False:
time_diff=abs(droplet_collection.current_time_delay_from_home-self.time_taken_from_home)
droplet_collector.write(("A"+str(self.servo_angle1)+"|W"+str(time_diff)+"|B"+str(self.servo_angle2)+"\n").encode())
droplet_collection.in_tube=True
droplet_collection.current_time_delay_from_home=self.time_taken_from_home
droplet_collection.at_home=False
else:
time_diff=abs(droplet_collection.current_time_delay_from_home-self.time_taken_from_home)
droplet_collector.write(("B0|W500|A"+str(self.servo_angle1)+"|W"+str(time_diff)+"|B"+str(self.servo_angle2)+"\n").encode())
droplet_collection.in_tube=True
droplet_collection.current_time_delay_from_home=self.time_taken_from_home
droplet_collection.at_home=False
def goToCoordinatesFast(self):
self.goToCoordinates()
def goToCoordinatesSlowly(self):
if droplet_collection.in_tube==False and droplet_collection.at_home==True:
droplet_collector.write(("X"+str(self.servo_angle1)+"|Y"+str(self.servo_angle2)+"\n").encode())
droplet_collection.in_tube=True
droplet_collection.current_time_delay_from_home=self.time_taken_from_home
droplet_collection.at_home=False
elif droplet_collection.in_tube==False and droplet_collection.at_home==False:
droplet_collector.write(("X"+str(self.servo_angle1)+"|Y"+str(self.servo_angle2)+"\n").encode())
droplet_collection.in_tube=True
droplet_collection.current_time_delay_from_home=self.time_taken_from_home
droplet_collection.at_home=False
else:
#time_diff=abs(droplet_collection.current_time_delay_from_home-self.time_taken_from_home)
droplet_collector.write(("Y0|X"+str(self.servo_angle1)+"|Y"+str(self.servo_angle2)+"\n").encode())
droplet_collection.in_tube=True
droplet_collection.current_time_delay_from_home=self.time_taken_from_home
droplet_collection.at_home=False
def goToCoordinatesKeepTubeUp(self):
if droplet_collection.in_tube==False:
droplet_collector.write(("A"+str(self.servo_angle1)+"\n").encode())
droplet_collection.in_tube=False
droplet_collection.at_home=False
droplet_collection.current_time_delay_from_home=self.time_taken_from_home
else:
droplet_collector.write(("B0|W500|A"+str(self.servo_angle1)+"\n").encode())
droplet_collection.in_tube=False
droplet_collection.at_home=False
droplet_collection.current_time_delay_from_home=self.time_taken_from_home
def goHome(self):
droplet_collection.droplet_collector_go_home()
def droplet_collector_go_home():
if droplet_collection.in_tube==False:
droplet_collector.write(("H\n").encode())
droplet_collection.in_tube=False
droplet_collection.at_home=True
else:
droplet_collector.write(("B0|W500|H\n").encode())
droplet_collection.in_tube=False
droplet_collection.at_home=True
droplet_collection.droplet_collector_go_home()
good_collection_tube=droplet_collection(180,180,1000)
bad_collection_tube=droplet_collection(60,180,350)
time.sleep(5.0)
good_collection_tube.goToCoordinates()
time.sleep(5.0)
bad_collection_tube.goToCoordinates()
time.sleep(5.0)
droplet_collection.droplet_collector_go_home()
time.sleep(5.0)
bad_collection_tube.goToCoordinatesKeepTubeUp()
time.sleep(5.0)
good_collection_tube.goToCoordinatesSlowly()
%%HTML
<iframe width="800" height="600" src="https://www.youtube.com/embed/gi6tJWHJPQo?si=jHh4roSvbA0x1nwC" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
time.sleep(10.0)
droplet_collection.droplet_collector_go_home()
time.sleep(5.0)
droplet_collector.close()