1616
1717
1818from motion .head .head_publisher import HeadPublisher
19+ from motion .candy_dispenser .candy_dispenser_conroller import Dispenser
1920
21+ import serial
22+ TIMEOUT = 10
2023import time
2124
2225
2326def menu ():
24- print ('1. h_angle = v_angle = 90' )
25- print ('2. set horizontal angle' )
26- print ('3. set vertical angle' )
27- print ('4. shift horizontal angle' )
28- print ('5. shift vertical angle' )
29- print ('6. exit' )
27+ print ('1. head h_angle = v_angle = 90' )
28+ print ('2. head set horizontal angle' )
29+ print ('3. head set vertical angle' )
30+ print ('4. head shift horizontal angle' )
31+ print ('5. head shift vertical angle' )
32+ print ('6. dispenser rotate angle' )
33+ print ('7. dispenser totate until give candy' )
34+ print ('8. exit' )
3035
3136def im_cap_and_save (name ):
3237 time .sleep (1 )
@@ -39,19 +44,30 @@ def im_cap_and_save(name):
3944 cap = cv2 .VideoCapture (0 )
4045
4146 hp = HeadPublisher ()
42-
47+ dispenser = Dispenser ()
48+ ser = serial .Serial ('/dev/tty*' , 9600 ) #CORRECT!!
49+
4350 while True :
4451 menu ()
4552 ans = input ('>' )
4653 point = int (ans )
47- if point == 6 :
54+ if point == 8 :
4855 break
4956 elif point == 1 :
5057 hp .set_h_angle (90 )
5158 hp .set_v_angle (90 )
5259 im_cap_and_save ('9090.png' )
60+ elif point == 7 : #rotate dispenser servo until give candy
61+ start = time .time ()
62+ while time .time () - start < TIMEOUT :
63+ dispenser .set_angle (360 )
64+ dispenser .set_angle (0 )
65+ if ser .read () == b'1' : #if candy dispensing sensor sent true
66+ print ('candy!' )
67+ break
68+ print ('candy timeout!' )
5369 else :
54- angle = float (input ('\t input angle' ))
70+ angle = float (input ('\t input angle: ' ))
5571 if point == 2 :
5672 hp .set_h_angle (angle )
5773 im_cap_and_save ('set_h_' + str (angle ) + '.png' )
@@ -64,5 +80,7 @@ def im_cap_and_save(name):
6480 elif point == 5 :
6581 hp .shift_v_angle (angle )
6682 im_cap_and_save ('shift_v_' + str (angle ) + '.png' )
83+ elif point == 6 :
84+ dispenser .set_angle (angle )
6785 else :
6886 print ('invalid input' )
0 commit comments