top of page

Software

In order to control the position of each motor, the control software first takes in a motor state from the GUI and converts those motor states into a number of motor revolutions. The Control software then uses that number of revolutions as the reference for a PID controller and outputs the duty cycle of the PWM driving each individual motor based upon the error between the current motor revolutions count and the reference number of motor revolutions. This active control is on at all times and keeps the position of each motor set throughout the entire operation of the machine. When each motor reaches to within a threshold of their given set state, nominally one tenth of a revolution, this triggers a Boolean release. When all motors give their Boolean release, this is sent across the network to the GUI, which releases it from its waiting state to move to fulfill the next operation. 

The robot has to follow a specific sequence to make drinks of user’s choice in order to prevent splashing liquids onto the table and electronic components. That is, ice has to be dropped first and then followed by cherry and liquids. After the robot completes dropping ice and cherry and pouring drinks to each cup, it will turn the lazy susan (rotating tray) to the position where the cups are originally placed, so that the users know where their own cup is on the table. Moreover, the GUI offers options to the users that they can either pick the drinks on the menu or customizes their own drinks. It is all done by just clicking buttons and entering the desired percent of each liquid, providing a fast and easy way in making drinks.

© 2017 by Nicole Panditi

bottom of page