def __init__(self, parent=None):
        super(FaceDection, self).__init__(parent)

        # gui connections
        self.ui = Ui_FaceDetection()
        self.ui.setupUi(self)
        self.ui.speed_dial.sliderMoved.connect(self.set_fan_speed)
        self.ui.horizontal_speed.sliderReleased.connect(self.horizontal_stop)
        self.ui.vertical_speed.sliderReleased.connect(self.vertical_stop)
        self.ui.horizontal_speed.valueChanged.connect(self.set_hor_speed)
        self.ui.vertical_speed.valueChanged.connect(self.set_ver_speed)
        self.ui.serial_select.currentIndexChanged.connect(self.port_select)
        self.ui.command_edit.returnPressed.connect(self.command_send)

        # video and face recognition
        self.faces = []
        self.ui.video.face_callback = self.video_face_callback
        self.ui.video.image_callback = self.video_image_callback

        # serial connection
        self.serial = SerialConnection()
        for port in self.serial.list_ports():
            self.ui.serial_select.addItem(port)
        self.listener_timer = QTimer(self)
        self.listener_timer.timeout.connect(self.serial_read)
        self.listener_timer.start(50)